<br><br>On Monday, March 28, 2016, Ian Booth <<a href="mailto:ian.booth@canonical.com">ian.booth@canonical.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey Antonio<br>
<br>
I must apologise - the changes didn't make beta3 due to all the work needed to<br>
migrate the CI scripts to test the new hosted model functionality; we ran out of<br>
time to be able to QA the local bundle changes.<br>
<br>
I expect this work will be done for beta4.</blockquote><div><br></div><div>Completely understood. I'll retest with Beta 4. Thanks for the update.</div><div><br></div><div>-Antonio</div><div><span></span> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 29/03/16 11:04, Antonio Rosales wrote:<br>
> + Juju list for others awareness<br>
><br>
><br>
> On Thu, Mar 10, 2016 at 1:53 PM, Ian Booth <<a href="javascript:;" onclick="_e(event, 'cvml', 'ian.booth@canonical.com')">ian.booth@canonical.com</a>> wrote:<br>
>> Thanks Rick. Trivial change to make. This work should be in beta3 due next week.<br>
>> The work includes dropping support for local repositories in favour of path<br>
>> based local charm and bundle deployment.<br>
><br>
> Ian,<br>
> First thanks for working on this feature. Second, I tried this for a<br>
> local ppc64el deploy which is behind a firewall, and thus local charms<br>
> are good way forward. I may have got the syntax incorrect and thus<br>
> wanted to confirm here. What I did was is at:<br>
> <a href="http://paste.ubuntu.com/15547725/" target="_blank">http://paste.ubuntu.com/15547725/</a><br>
> Specifically, I set the the charm path to something like:<br>
> charm: /home/ubuntu/charms/trusty/apache-hadoop-compute-slave<br>
> However, I got the following error:<br>
> ERROR cannot deploy bundle: cannot resolve URL<br>
> "/home/ubuntu/charms/trusty/apache-hadoop-compute-slave": charm or<br>
> bundle URL has invalid form:<br>
> "/home/ubuntu/charms/trusty/apache-hadoop-compute-slave"<br>
><br>
> This is on the latest beta3:<br>
> 2.0-beta3-xenial-ppc64el<br>
><br>
> Any suggestions?<br>
><br>
> -thanks,<br>
> Antonio<br>
><br>
><br>
>><br>
>> On 10/03/16 23:37, Rick Harding wrote:<br>
>>> Thanks Ian, after thinking about it I think what we want to do is really<br>
>>> #2. The reasoning I think is:<br>
>>><br>
>>> 1) we want to make things consistent. The CLI experience is present a charm<br>
>>> and override series with --series=<br>
>>> 2) more consistent, if you do it with local charms you can always do it<br>
>>> 3) we want to encourage folks to drop series from the charmstore urls and<br>
>>> worry less about series over time. Just deploy X and let the charm author<br>
>>> pick the default best series. I think we should encourage this in the error<br>
>>> message for #2. "Please remove the series section of the charm url" or the<br>
>>> like when we error on the conflict, pushing users to use the series<br>
>>> override.<br>
>>><br>
>>> Uros, Francesco, this brings up a point that I think for multi-series<br>
>>> charms we want the deploy cli snippets to start to drop the series part of<br>
>>> the url as often as we can. If the url doesn't have the series specified,<br>
>>> e.g. <a href="http://jujucharms.com/mysql" target="_blank">jujucharms.com/mysql</a> then the cli command should not either. Right now<br>
>>> I know we add the series/revision info and such. Over time we want to try<br>
>>> to get to as simple a command as possible.<br>
>>><br>
>>> On Thu, Mar 10, 2016 at 7:23 AM Ian Booth <<a href="javascript:;" onclick="_e(event, 'cvml', 'ian.booth@canonical.com')">ian.booth@canonical.com</a>> wrote:<br>
>>><br>
>>>> I've implemented option 1:<br>
>>>><br>
>>>> error if Series attribute is used at all with a store charm URL<br>
>>>><br>
>>>> Trivial to change if needed.<br>
>>>><br>
>>>> On 10/03/16 12:58, Ian Booth wrote:<br>
>>>>> Yeah, agreed having 2 ways to specify store series can be suboptimal.<br>
>>>>> So we have 2 choices:<br>
>>>>><br>
>>>>> 1. error if Series attribute is used at all with a store charm URL<br>
>>>>> 2. error if the Series attribute is used and conflicts<br>
>>>>><br>
>>>>> Case 1<br>
>>>>> ------<br>
>>>>><br>
>>>>> Errors:<br>
>>>>><br>
>>>>> Series: trusty<br>
>>>>> Charm: cs:mysql<br>
>>>>><br>
>>>>> Series: trusty<br>
>>>>> Charm: cs:trusty/mysql<br>
>>>>><br>
>>>>> Ok:<br>
>>>>><br>
>>>>> Series: trusty<br>
>>>>> Charm: ./mysql<br>
>>>>><br>
>>>>><br>
>>>>> Case 2<br>
>>>>> ------<br>
>>>>><br>
>>>>> Ok:<br>
>>>>><br>
>>>>> Series: trusty<br>
>>>>> Charm: cs:mysql<br>
>>>>><br>
>>>>> Series: trusty<br>
>>>>> Charm: cs:trusty/mysql<br>
>>>>><br>
>>>>> Series: trusty<br>
>>>>> Charm: ./mysql<br>
>>>>><br>
>>>>> Errors:<br>
>>>>><br>
>>>>> Series: xenial<br>
>>>>> Charm: cs:trusty/mysql<br>
>>>>><br>
>>>>><br>
>>>>> On 10/03/16 12:51, Rick Harding wrote:<br>
>>>>>> Bah maybe you're right. I want to sleep on it. It's kind of ugh either<br>
>>>> way.<br>
>>>>>><br>
>>>>>> On Wed, Mar 9, 2016, 9:50 PM Rick Harding <<a href="javascript:;" onclick="_e(event, 'cvml', 'rick.harding@canonical.com')">rick.harding@canonical.com</a>><br>
>>>>>> wrote:<br>
>>>>>><br>
>>>>>>> I think there's already rules for charmstore charms. it uses the<br>
>>>> default<br>
>>>>>>> if not specified. I totally agree that for local charms we have to have<br>
>>>>>>> this. For remote charms though this is providing the user two ways to<br>
>>>> do<br>
>>>>>>> the same thing<br>
>>>>>>><br>
>>>>>>> On Wed, Mar 9, 2016, 9:46 PM Ian Booth <<a href="javascript:;" onclick="_e(event, 'cvml', 'ian.booth@canonical.com')">ian.booth@canonical.com</a>><br>
>>>> wrote:<br>
>>>>>>><br>
>>>>>>>> If the charm store charm defines a series in the URL, then we will<br>
>>>>>>>> consider it<br>
>>>>>>>> an error to specify a different series using the attribute. But charm<br>
>>>>>>>> store URLs<br>
>>>>>>>> are not required to have a series, so we can use the attribute in that<br>
>>>>>>>> case. It<br>
>>>>>>>> also allows users to easily switch between store and local charms<br>
>>>> during<br>
>>>>>>>> development just by replacing "./" with "cs:"<br>
>>>>>>>><br>
>>>>>>>> nova-compute:<br>
>>>>>>>> series: xenial<br>
>>>>>>>> charm: ./nova-compute<br>
>>>>>>>><br>
>>>>>>>> nova-compute:<br>
>>>>>>>> series: xenial<br>
>>>>>>>> charm: cs:nova-compute<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>> On 10/03/16 12:21, Rick Harding wrote:<br>
>>>>>>>>> I'm not sure we want to make this attribute apply to charmstore<br>
>>>> charms.<br>
>>>>>>>>> We've an established practice of the charmstore url being the series<br>
>>>>>>>>> information. It gives the user a chance to have conflicting<br>
>>>> information<br>
>>>>>>>> if<br>
>>>>>>>>> the charmstore url is cs:trusty/nova-compute and the series<br>
>>>> attribute is<br>
>>>>>>>>> set to xenial. I think we should toss an error to a bundle that has<br>
>>>>>>>> series:<br>
>>>>>>>>> specified for a charmstore based charm value (or non-local value<br>
>>>>>>>> whichever<br>
>>>>>>>>> way you want to think about it)<br>
>>>>>>>>><br>
>>>>>>>>> On Wed, Mar 9, 2016 at 6:29 PM Ian Booth <<a href="javascript:;" onclick="_e(event, 'cvml', 'ian.booth@canonical.com')">ian.booth@canonical.com</a>><br>
>>>>>>>> wrote:<br>
>>>>>>>>><br>
>>>>>>>>>> One additional enhancement we need for bundles concerns specifying<br>
>>>>>>>> series<br>
>>>>>>>>>> for<br>
>>>>>>>>>> multi-series charms, in particular local charms now that the local<br>
>>>> repo<br>
>>>>>>>>>> will be<br>
>>>>>>>>>> going away.<br>
>>>>>>>>>><br>
>>>>>>>>>> Consider:<br>
>>>>>>>>>><br>
>>>>>>>>>> A new multi-series charm may have a URL which does not specify the<br>
>>>>>>>> series.<br>
>>>>>>>>>> In<br>
>>>>>>>>>> that case, the series used will be the default specified in the<br>
>>>> charm<br>
>>>>>>>>>> metadata<br>
>>>>>>>>>> or the latest LTS. But we want to allow people to choose their own<br>
>>>>>>>> series<br>
>>>>>>>>>> also.<br>
>>>>>>>>>><br>
>>>>>>>>>> So we need a new (optional) Series attribute in the bundle metadata.<br>
>>>>>>>>>><br>
>>>>>>>>>> bundle.yaml<br>
>>>>>>>>>> series: trusty<br>
>>>>>>>>>> services:<br>
>>>>>>>>>> nova-compute:<br>
>>>>>>>>>> series: xenial <------ new<br>
>>>>>>>>>> charm: ./nova-compute<br>
>>>>>>>>>> num_units: 2<br>
>>>>>>>>>><br>
>>>>>>>>>> or with a charm store charm<br>
>>>>>>>>>><br>
>>>>>>>>>> bundle.yaml<br>
>>>>>>>>>> series: trusty<br>
>>>>>>>>>> services:<br>
>>>>>>>>>> nova-compute:<br>
>>>>>>>>>> series: xenial <------ new<br>
>>>>>>>>>> charm: cs:nova-compute<br>
>>>>>>>>>> num_units: 2<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> Note: the global series in the bundle still applies if series is not<br>
>>>>>>>>>> otherwise<br>
>>>>>>>>>> known.<br>
>>>>>>>>>> The new series attribute is per charm.<br>
>>>>>>>>>><br>
>>>>>>>>>> So in the case above, cs:nova-compute may ordinarily be deployed on<br>
>>>>>>>> trusty<br>
>>>>>>>>>> (the<br>
>>>>>>>>>> default series in that charm's metadata). But the bundle requires<br>
>>>> the<br>
>>>>>>>>>> xenial<br>
>>>>>>>>>> version. With the charm store URL, we can currently use<br>
>>>>>>>>>> cs:xenial/nova-compute<br>
>>>>>>>>>> but that's not the case for local charms deployed out of a<br>
>>>> directory.<br>
>>>>>>>> We<br>
>>>>>>>>>> need a<br>
>>>>>>>>>> way to allow the series to be specified in that latter case.<br>
>>>>>>>>>><br>
>>>>>>>>>> We'll look to make the changes in core initially and can followup<br>
>>>> later<br>
>>>>>>>>>> with the<br>
>>>>>>>>>> GUI etc. The attribute is optional and only really affects bundles<br>
>>>> with<br>
>>>>>>>>>> local<br>
>>>>>>>>>> charms.<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> On 09/03/16 09:53, Ian Booth wrote:<br>
>>>>>>>>>>> So to clarify what we'll do. We'll support the same syntax in<br>
>>>> bundle<br>
>>>>>>>>>> files as we<br>
>>>>>>>>>>> do for deploy.<br>
>>>>>>>>>>><br>
>>>>>>>>>>> Deploys charm store charms:<br>
>>>>>>>>>>><br>
>>>>>>>>>>> $ juju deploy cs:wordpress<br>
>>>>>>>>>>> $ juju deploy wordpress<br>
>>>>>>>>>>><br>
>>>>>>>>>>> Deploys a local charm from a directory:<br>
>>>>>>>>>>><br>
>>>>>>>>>>> $ juju deploy ./charms/wordpress<br>
>>>>>>>>>>> $ juju deploy ./wordpress<br>
>>>>>>>>>>><br>
>>>>>>>>>>> So below deploys a local nova-compute charm in a directory<br>
>>>> co-located<br>
>>>>>>>>>> with the<br>
>>>>>>>>>>> bundle.yaml file.<br>
>>>>>>>>>>><br>
>>>>>>>>>>> series: trusty<br>
>>>>>>>>>>> services:<br>
>>>>>>>>>>> nova-compute:<br>
>>>>>>>>>>> charm: ./nova-compute<br>
>>>>>>>>>>> num_units: 2<br>
>>>>>>>>>>><br>
>>>>>>>>>>> This one deploys a charm store charm:<br>
>>>>>>>>>>><br>
>>>>>>>>>>> series: trusty<br>
>>>>>>>>>>> services:<br>
>>>>>>>>>>> nova-compute:<br>
>>>>>>>>>>> charm: nova-compute<br>
>>>>>>>>>>> num_units: 2<br>
>>>>>>>>>>><br>
>>>>>>>>>>><br>
>>>>>>>>>>><br>
>>>>>>>>>>> On 09/03/16 03:59, Rick Harding wrote:<br>
>>>>>>>>>>>> Long term we want to have a pattern when the bundle is a directory<br>
>>>>>>>> with<br>
>>>>>>>>>>>> local charms in a directory next to the bundles.yaml file. We<br>
>>>> could<br>
>>>>>>>> not<br>
>>>>>>>>>> do<br>
>>>>>>>>>>>> this cleanly before the multi-series charms that are just getting<br>
>>>> out<br>
>>>>>>>>>> the<br>
>>>>>>>>>>>> door. I think that bundles with local charms will be suboptimal<br>
>>>>>>>> until we<br>
>>>>>>>>>>>> can get those bits to line up.<br>
>>>>>>>>>>>><br>
>>>>>>>>>>>> I don't think we want to be doing the file based urls, but to<br>
>>>> build a<br>
>>>>>>>>>>>> pattern that's reusable and makes sense across systems. Creating a<br>
>>>>>>>>>> standard<br>
>>>>>>>>>>>> pattern I think is the best path forward.<br>
>>>>>>>>>>>><br>
>>>>>>>>>>>> On Tue, Mar 8, 2016 at 12:26 PM Martin Packman <<br>
>>>>>>>>>> <a href="javascript:;" onclick="_e(event, 'cvml', 'martin.packman@canonical.com')">martin.packman@canonical.com</a>><br>
>>>>>>>>>>>> wrote:<br>
>>>>>>>>>>>><br>
>>>>>>>>>>>>> On 05/03/2016, Ian Booth <<a href="javascript:;" onclick="_e(event, 'cvml', 'ian.booth@canonical.com')">ian.booth@canonical.com</a>> wrote:<br>
>>>>>>>>>>>>>>><br>
>>>>>>>>>>>>>>> How will bundles work which reference local charms? Will this<br>
>>>>>>>> work as<br>
>>>>>>>>>>>>>>> expected where nova-compute is a directory at the same level<br>
>>>> as a<br>
>>>>>>>>>> bundle<br>
>>>>>>>>>>>>>>> file?<br>
>>>>>>>>>>>>>>><br>
>>>>>>>>>>>>>>> ```<br>
>>>>>>>>>>>>>>> series: trusty<br>
>>>>>>>>>>>>>>> services:<br>
>>>>>>>>>>>>>>> nova-compute:<br>
>>>>>>>>>>>>>>> charm: ./nova-compute<br>
>>>>>>>>>>>>>>> num_units: 2<br>
>>>>>>>>>>>>>>> ```<br>
>>>>>>>>>>>>>>><br>
>>>>>>>>>>>>>><br>
>>>>>>>>>>>>>> The above will work but not until a tweak is made to bundle<br>
>>>>>>>>>> deployment to<br>
>>>>>>>>>>>>>> interpret a path on disk rather than a url. It's a small change.<br>
>>>>>>>> This<br>
>>>>>>>>>>>>> would<br>
>>>>>>>>>>>>>> be done as part of the work to remove the local repo support.<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> Can we keep interpreting the the reference in the bundle as a<br>
>>>> url,<br>
>>>>>>>> but<br>
>>>>>>>>>>>>> start supporting file urls? That seems neater than treating the<br>
>>>> cs:<br>
>>>>>>>>>>>>> prefix as magic not-a-filename.<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> The catch is that there's no sane way of referencing locations<br>
>>>>>>>> outside<br>
>>>>>>>>>>>>> a base url.<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> charm: file:nova-compute<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> Works as a reference to a dir inside the base location, but:<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> charm: file:../nova-compute<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> Will not work as a reference to a sibling directory. And absolute<br>
>>>>>>>> file<br>
>>>>>>>>>>>>> paths are pretty useless across machines.<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> Martin<br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>>> --<br>
>>>>>>>>>>>>> Juju-dev mailing list<br>
>>>>>>>>>>>>> <a href="javascript:;" onclick="_e(event, 'cvml', 'Juju-dev@lists.ubuntu.com')">Juju-dev@lists.ubuntu.com</a><br>
>>>>>>>>>>>>> Modify settings or unsubscribe at:<br>
>>>>>>>>>>>>> <a href="https://lists.ubuntu.com/mailman/listinfo/juju-dev" target="_blank">https://lists.ubuntu.com/mailman/listinfo/juju-dev</a><br>
>>>>>>>>>>>>><br>
>>>>>>>>>>>><br>
>>>>>>>>>>>><br>
>>>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>><br>
>>>>>>>><br>
>>>>>>><br>
>>>>>><br>
>>>>><br>
>>>><br>
>>><br>
>><br>
>> --<br>
>> Juju-dev mailing list<br>
>> <a href="javascript:;" onclick="_e(event, 'cvml', 'Juju-dev@lists.ubuntu.com')">Juju-dev@lists.ubuntu.com</a><br>
>> Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/juju-dev" target="_blank">https://lists.ubuntu.com/mailman/listinfo/juju-dev</a><br>
><br>
><br>
><br>
</blockquote><br><br>-- <br>-Thanks<br>Antonio<br>