breaking change: repository structure, deploy interface

William Reade william.reade at canonical.com
Thu Sep 29 02:10:31 UTC 2011


Hi all

The good news is that I'm just about to merge a branch which brings us a
significant step closer to using remote charm repositories.

The bad news is that is requires you to make two changes which are not
compatible with Juju's current implementation, as follows:


* Repository structure

Local repositories are no longer flat: they require subdivision by
Ubuntu series codename. In practice, you should be able to:

(1) create a directory called "oneiric" in your current repository, and
move all your charms inside
(2) if you're not running oneiric locally, add "default-series: oneiric"
to your environment config file

...and keep everything running as it was before. For example, if you had
a charm at:

  /path/to/repo/mycharm

...it should end up at:

  /path/to/repo/oneiric/mycharm

Note that, if you currently depend upon an EC2 default-image-id running
a series other than oneiric, you may prefer to replace the series name
in the instructions above with that series, for consistency's sake.


* Deploy command interface

More detail is required when specifying a charm. In practice, you should
be able to:

(1) prepend "local:" to the charm name

...and keep everything running as it was before (assuming you've made
changes to your repository (and possibly environments.yaml) as described
above). For example,

  bin/juju deploy --repository=examples mysql

...would become:

  bin/juju deploy --repository=examples local:mysql


* Further details, for interested readers

(1) You can explicitly specify the collection, if necessary:

  bin/juju deploy --repository=examples local:oneiric/mysql

...and you will, in the near future, have additional options for
specifying charms, but these changes won't land quite yet; more details
will be forthcoming when they are merged.

(2) An environment's "default-series" setting (which will default to the
local machine's current series, if left unspecified) will control:

* the charm collection within the repository that will be searched for
charms, if it's not specified explicitly
* on EC2, the series that will run on new instances, unless overridden
by the "default-image-id" setting

I hope this is all clear, and not too desperately inconvenient. We don't
expect this work to break anything else after this.

Cheers
William




More information about the Juju mailing list