You’ve initialised your charm and configured all the necessary files. This document shows you how you can now pack your charm. You can again do this with Charmcraft.
With a correct
metadata.yaml and with
requirements.txt, packing your charm is as easy as running the following inside your charm directory:
$ charmcraft pack Created 'my-new-charm.charm'.
In older docs you might find this given as
charmcraft build. This is an alias maintained for backwards compatibility.
This will fetch any dependencies, compile any modules, check that all the key files are in place, and produce a compressed archive with the operator code and metadata as the charm.
The charm is just a zipfile with metadata and the operator code itself:
$ unzip -l my-new-charm.charm Archive: my-new-charm.charm Length Date Time Name --------- ---------- ----- ---- 221 2020-11-15 08:10 metadata.yaml [...] 25304 2020-11-15 08:14 venv/yaml/__pycache__/scanner.cpython-38.pyc --------- ------- 812617 84 files
When the charm is packed, a series of analysis and lintings will happen, you may receive warnings and even errors to help improving the quality of the charm. To find out more, see Analyzers and linters.