Skip to main content

The main tool to build, upload, and develop in general the Juju charms.

Project description

What is charmcraft?

Charmcraft provides a streamlined, powerful, opinionated, and flexible tool to develop, package, and manage the lifecycle of Juju charm publication, focused particularly on charms written within the Operator Framework.

It is still in heavy, initial development and so a lot is still To Be Done. However it is already useful, and already simplifies the life of the charmer.

What can it do for me today?

It can build your charm! No need for git submodules nor pesky hook symlinks, you can concentrate on your charm being pure python code (plus the required juju metadata), and charmcraft will fill in the boring bits for you.

For example, given a charm that consists exclusively of

my-charm
├── metadata.yaml
├── requirements.txt
└── src/
    └── charm.py

(and assuming ops is in requirements.txt), then running charmcraft build will produce a charm that looks like

my-charm
├── dispatch
├── hooks
│   ├── install -> ../dispatch
│   ├── start -> ../dispatch
│   └── upgrade-charm -> ../dispatch
├── metadata.yaml
├── src/
│   └── charm.py
└── venv/
    ├── ops/
    │   ├── ...
    └── yaml/
        └── ...

which should be all you need to juju deploy the charm!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for charmcraft, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size charmcraft-0.2.0-py3-none-any.whl (21.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size charmcraft-0.2.0.tar.gz (16.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page