In Juju, a charm is an operator – software that wraps an application and that contains all of the instructions necessary for deploying, configuring, scaling, integrating, etc., the application on any cloud using Juju.
See more: SDK | List of files in the charm project, SDK | The Juju execution flow for a charm
Charms are publicly available on Charmhub.
Charms are currently of two kinds, depending on the target deployment substrate:
- Machine charms: Charms made to deploy on a bare-metal server, virtual machine, or system container.
- Kubernetes charms: Charms built to deploy on Kubernetes.
Charms are currently developed using Charmcraft and Ops.
See more: SDK Juju | Charm taxonomy , SDK Juju | Charms vs. Kubernetes operators
While the quality of individual charms may vary, charms are intended to implement a general and comprehensive approach for operating applications.
See more: SDK | Charm maturity