Charmcraft¶
Charmcraft is the command-line tool for initializing, packaging, and publishing Juju charms.
For new projects, Charmcraft generates all the necessary files, which can be tailored to an app by modifying the YAML and Ops-powered Python inside. With extensions, Charmcraft adapts the template content to languages and frameworks such as Django, Express, and Go. Then, with a few commands, charm authors can package the charm and publish it to Charmhub.
With Charmcraft, developers can bypass boilerplate steps and focus on the content of their charms. Additionally, its integration with tools and platforms such as Ops and Charmhub provide a complete charm development experience.
Charmcraft is for platform engineers, site reliability engineers, and systems administrators looking to charm an application for their Juju deployment.
In this documentation¶
Installation and setup |
|
Vocabulary and syntax |
Configure package information • Commands • charmcraft.yaml • Part keys |
Platform compatibility |
|
Software integration |
|
12-factor web apps |
Tutorials • Initialization • Configuration • Integration • Usage • Extensions |
Debugging |
|
Distribution |
Publish a charm • Manage names • Manage tracks • Manage channels • Manage revisions |
How this documentation is organized¶
The Charmcraft documentation embodies the Diátaxis framework.
The tutorials are lessons that steps through the main process of packaging a charm.
How-to guides contain directions for crafting charms.
References describe the structure and function of the individual components in Charmcraft.
Explanations aid in understanding the concepts and relationships of Charmcraft as a system.
Project and community¶
Charmcraft is a member of the Canonical family. It’s an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.