Fwd: "Developing and Ubuntu Juju Charm" blog post

Joshua Strobl truthfromlies at gmail.com
Thu Feb 13 18:44:59 UTC 2014

Hey everyone, as Jorge said, I have some feedback, mostly specified in
my blog, but I'll go ahead and summarize it here.

First off, before I begin, just want to say thanks to all the Canonical
employees and those who volunteer that have dedicated time to making
Juju, reviewing charms, authoring charms, etc. Your work and dedication
allowed myself to go from having no charm (hehe) to a charm in two days.

1. I agree that it is time to promote Vagrant. It would have saved me
hours during Charm development if I had saw Vagrant (it was sorta hidden
in the Local section and wasn't promoted as the preferred option since
it's considered "Beta"), rather than resorting to setting up a
VirtualBox with Ubuntu Server and manually FTP'ing new files to my
public server then pulling them down with wget to the local Ubuntu
Server VM.

2. The relations documentation is pretty sparse (as in two or three
pages at most) and to be honest, a bit overwhelming. The same page that
covers relations also covers almost every other aspect of setting up and
beginning development of the charm and it'd be nice to see everything
relating to relations (as well as a better explanation of it), be
dedicated to it's own page and try to differentiate itself from hooks
like start, restart, stop, config-changed and upgrade-charm.

3. Related to #1 (of my points) and #3 of Jorge's, it'd be nice to
emphazise Vagrant as the preferred "local" way of setting up a Juju
container, even if that means hiding away information on doing it in a
VM or using something like Docker (abstraction layer on top of LXCs).

4. The Charm Testing page
(https://juju.ubuntu.com/docs/authors-testing.html) is unnecessarily
complex. Testing should emphasize understanding and analyzing the
agent-state when a Charm is being deployed (unless I'm doing things
wrong, it seems that most of the debugging I did was when I'd juju
deploy my charm), rather than the special testing scripts that are
written up on the current page. In testing, when I noticed that the
agent-state of my Charm was that the install failed (I'm new to bash
scriping), I had no idea where my logs were (naturally I went to
/var/logs) but since it is local, apparently it was in

5. In my blog write-up, I explained the best way I retry testing, which
is to completely destroy the environment, generate a new config, delete
everything inside .juju, switch to local, then bootstrap. It wasn't
until Jorge let me know that there was an easier to do all of that
(using juju quickstart, which isn't even listed as a command at
https://juju.ubuntu.com/docs/commands.html and apparently requires
particular packages) did I even know. So, describing how to easily test
a charm locally without destroying your entire environment over and over
again, in the Charm Testing page would be fantastic.

6. Lastly of my feedback, the Submitting a new Charm (The Juju Charm
Store) page
doesn't provide any information on setting up a Launchpad account,
making sure the person has a GPG fingerprint, SSH key, has signed the
Code of Conduct, etc (I wrote about all that in my blog). It just sorta
assumes they've already done that and proceeds to talk about bzr. While
I did in fact have a Launchpad account already, I still think it would
be nice to have a note at the top of the page that let's people know.

Thanks again, I look forward to the discussion, future Charm authoring
and eventually (if I get enough time) being a part of the Charm reviewers.

- Joshua Strobl

> Some feedback from Josh Strobl:
> http://joshstrobl.blogspot.com/2014/02/developing-ubuntu-juju-charm.html
> I've left some comments: https://plus.google.com/+JoshuaStrobl/posts/UEXzk4THYJs
> Some things I'd like to propose:
> 1. Is it time to "promote" the Vagrant box to a more visible place on
> juju.u.c/install?
> 2. We should expand the relations documentation in general.
> 3. We tell people how to set up a local environment but not how to use
> it for charm development. We need to do things like sharing how to set
> up a shared directory, how to ping pong back and forth with
> debug-hooks and upgrade-charm.
> 4. Should we consider shipping quickstart ootb? It's replaced
> generate-config for me.
> --
> Jorge Castro
> Canonical Ltd.
> http://juju.ubuntu.com/ - Automate your Cloud Infrastructure

More information about the Juju mailing list