Juju Resources (a tool / library)

Cory Johns cory.johns at canonical.com
Wed Feb 11 16:25:28 UTC 2015


Hi all,

(cross-posting to juju & juju-dev)

I've created a tool / library for organizing and managing resources
(binary blobs, tarballs, Python packages, and, eventually, apt
packages) required by a charm.  The idea is to be an interim tool, and
a test-bed for the resource features that have been discussed for the
future in Juju core.

It is available on GitHub [1] and PyPI [2], and the full documentation
is on PythonHosted.org [3].

The goals of this project are:

  * Organize all external resource dependencies into a single
resources.yaml file
  * Provide easy, consistent interfaces to manage, install, and mirror resources
  * CLI and Python bindings
  * Enforce best practices, such as cryptographic hash validation

I asked around to see if there was an existing proposal for a
resources.yaml file format, but couldn't find one.  If someone is
aware of an existing spec / proposal, I'd prefer to match that as much
as possible.

The current version is fully functional, and is currently being used
in the framework refactor of the Apache Hadoop charms (e.g., [4]).

Note that I created this separately from Charm Helpers primarily
because I wanted to use it to bootstrap CH, but this also makes it
easier to use in Bash charms.

My next step is to add apt-get support, but that will requiring
cleaning up the mirror server (possibly converting it to use squid,
but I may want to keep it self-contained), and learning a bit more
about how the apt proxy settings work.  Advice here is appreciated.


[1] https://github.com/juju-solutions/jujuresources
[2] https://pypi.python.org/pypi/jujuresources
[3] http://pythonhosted.org/jujuresources/
[4] https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk



More information about the Juju mailing list