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.
How do I install it?
The easiest way to install charmcraft
is by doing
sudo snap install --beta charmcraft
(more options are available as per snap info charmcraft
) but some
people with more esoteric needs not covered by the snap might need to
instead go via pip3 install --user charmcraft
.
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!
How do I run it from source?
git clone https://github.com/canonical/charmcraft.git
cd charmcraft
virtualenv venv
. venv/bin/activate
pip install -r requirements.txt
python -m charmcraft
If you would like to run the tests you can do so with
pip install -r requirements-dev.txt
./run_tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file charmcraft-0.6.0.tar.gz
.
File metadata
- Download URL: charmcraft-0.6.0.tar.gz
- Upload date:
- Size: 47.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a850d993d840a8b5af43d4c61704775e0550c1fa6eca17fcbf080b7c34980773 |
|
MD5 | 346254599e40b6c403fdc89fc70cc2d2 |
|
BLAKE2b-256 | d28cfc58ad31e48a0f71db54746cca5ed7350ac3920c64834ff030482066bd82 |
File details
Details for the file charmcraft-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: charmcraft-0.6.0-py3-none-any.whl
- Upload date:
- Size: 58.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d419821fdb67a7d186e6f5c6bac59f56ae4ce866a9740b95b620e57bf89e4a1 |
|
MD5 | b2073af1019c28b5d81e5af916cf74e6 |
|
BLAKE2b-256 | 14b01f89dcafb86947c358e16eed625a82a2080e3a9099aeb52a510e436cb67b |