N0 The Charmed Operator Lifecycle Manager

The Charmed Operator Lifecycle Manager (OLM) is a hybrid-cloud application management and orchestration system for Day 0 to Day 2 operations. Deploy, configure, scale, integrate, maintain and manage Kubernetes native, container-native and VM-native applications – and the relations between them.

Charmed operator (packaged as a “charm”) encapsulate a single application and all the code and know-how it takes to operate it, such as how to combine and work with other related applications or how to upgrade it. Charms are programmed to understand a single application, its operations, and its potential to communicate or integrate with other applications. A charm defines and enables the channels by which applications connect.

There are four main steps - expressed by four commands - that compose the core of Juju’s operations. This is the backbone of even the most complex deployments and offer a robust foundation for Day 2 operations.

1. Register a new cloud:

     juju bootstrap <my-cloud>

2. Create a model:

     juju add-model <my-model>

3. Deploy applications:
(as many as you want)

     juju deploy <application foo>
     juju deploy <application bar>

4. Relate applications:

     juju relate <application foo> <application bar>


Level Path Navlink
0 welcome-to-juju-docs Get started
1 get-started-on-kubernetes Get started on Kubernetes
1 get-started-on-a-localhost Get started on a localhost
1 installing-juju Installing Juju
1 tutorials Tutorials
0 cloud-setup Cloud Setup
1 adding-clouds Adding clouds
1 credentials Credentials
1 controllers Controllers
1 Cloud specific guides:
1    Kubernetes
2 microk8s MicroK8s
2 azure-kubernetes-service-(azure-aks) Azure Kubernetes Service (Azure AKS)
2 google-kubernetes-engine-(gke) Google Kubernetes Engine (GKE)
2 amazon-elastic-kubernetes-service-(amazon-eks) Amazon Elastic Kubernetes Service (Amazon EKS)
2 other-clusters Other clusters
1    Localhost
2 lxd LXD
1    Private cloud
2 openstack OpenStack
2 vmware-vsphere VMware vSphere
2 maas MAAS
2 manual-setup Manual setup
1    Public cloud
2 amazon-aws Amazon AWS
2 azure Azure
2 google-gce Google GCE
2 oracle-oci Oracle OCI
2 rackspace Rackspace
0 deploying-applications Deploying Applications
1 constraints Constraints
1 advanced-application-deployment Advanced application deployment
0 integrating-applications Integrating applications
1 cross-model-relations Cross model relations
0 Operations Tasks
1 accessing-individual-machines-with-ssh Accessing individual machines with SSH
1 working-with-actions Working with actions
1 collecting-juju-metrics Collecting Juju metrics
1 accessing-juju’s-web-interface Accessing Juju’s web interface
1 defining-and-using-persistent-storage Defining and using persistent storage
1 removing-things Removing things
0 System Administration Tasks
1 upgrading Upgrading
1 controller-backups Controller backups
1 high-availability-juju-controller High-availability Juju Controller
1 working-with-multiple-users Working with multiple users
1 working-offline Working offline
1 migrating-models Migrating Models
1 cloud-image-metadata Cloud Image Metadata
0 quick-reference Quick Reference
1 clouds Clouds
1 controllers Controllers
1 credentials Credentials
1 models Models
1 constraints Constraints
1 applications-and-charmed-operators Applications and charmed operators
1 fan-container-networking Fan container networking
1 high-availability High-availability
1 network-spaces Network Spaces
1 relations Relations
1 status-values Status values
1 constraints Constraints
1 commands Commands
1 environment-variables Environment variables
1 glossary Glossary
0 troubleshooting Troubleshooting
1 juju-logs Juju logs
0 Community and Help


Mapping table
Path Location

Juju FAQ

Juju Project

What is Juju?

Juju is an open source application modelling tool that allows you to deploy, configure, scale and operate cloud infrastructures quickly and efficiently on public clouds such as AWS, GCE, and Azure along with private ones such as MAAS, OpenStack, and VSphere.
Its store allows access to a wide range of best practice solutions which you can deploy with a single command. You can use Juju from the command line or through its powerful graphical representation of the model in the GUI.

Visit the docs to install Juju

How does it compare to Puppet and Chef?

Puppet and Chef are great tools for configuration management.

Juju provides a higher level of abstraction, supplying the tools to manage the full scope of operations beyond deployment and configuration management, regardless of the machine on which it runs.

One of the main advantages of Juju is its dynamic configuration ability, which allows you to re-configure services on the fly, add, remove, or change relationships between services, and scale in or out with ease, sharing the operational knowledge and making the most of the wider community.

What is application modelling?

Application modelling is a simple way of describing what software should actually do, specified from the top down (services and how they relate) rather than built from the bottom up, making for a clean and portable expression of intent rather than a complicated recipe. Juju delivers the tools to describe your model and then to turn it into reality in a repeatable fashion on any cloud or computing resource.

All the operational hard work is automated, connecting your services so they can work together and provision the appropriate machines. You can scale up, scale down, or even re-deploy the same model on another cloud.

View how to start modelling with Juju as a Service [video]

What are bundles?

Bundles are ready-to-run collections of applications which have been modelled to work together — this can include particular configurations and relations between the software to be deployed.

Bundles may also be optimised for different deployment scenarios of the same software — for example, a scale-out production ready version like Charmed Kubernetes, or a development friendly test version like Kubernetes Core.


What are charms?

Charms are collections of scripts that contain all the operations necessary to deploy, configure, scale, and maintain cloud applications easily with Juju. Charms encapsulate a single application and all the code and know-how it takes to operate it, such us how to combine and work with other related applications or how to upgrade it.

Learn more about charms

How do I know charms are safe to use?

Charms deployed from the charm store are community vetted and open source (even though the software they encapsulate may not be).

‘Recommended’ charms have also met additional criteria and have been vetted by the Juju Charmers team.

What kind of applications can I deploy?

Charms are available for hundreds of common and popular cloud-oriented applications such as Kubernetes, Apache Hadoop, Big Data solutions, OpenStack, or even your own software, with new ones being added every day.

Check out the public charm store for an up to the minute list of charms ›

Can I develop a charm for my own software?

Yes! You can integrate your existing Chef, Puppet, Docker or other scripts with custom charms for your own use, or make use of the Juju store and the existing ecosystem of charm developers to package and promote your application to a wider audience. There are tools and documentation to help you get started.

Learn more about writing charms


What is JAAS?

JAAS is Juju as a Service, managed by Canonical, the makers of Ubuntu. It introduces a common controller that operates all the machines in your running models.

JAAS enables you to quickly build, configure, manage and deploy your applications to the public cloud directly from your browser or the command line. It also allows you to share your models and easily collaborate with other users.

Visit the docs to get started with JAAS ›

What is the difference between Juju and JAAS?

Juju as a Service (JAAS) is a hosted service for using Juju to operate your applications. JAAS is the fastest way to operate your workloads on supported clouds with the fewest instances required. You can use JAAS alongside your other self-hosted Juju infrastructure with the same CLI and GUI.

Juju is a full release. JAAS is currently in public beta.

Try the JAAS beta ›

Are Juju and JAAS free to use?

Juju is free to use. It is an open source application that you install on your own hardware.

JAAS is a hosted service. During the beta period, it is free to use.

You will incur a separate fee from your cloud provider for any resources used. Calculators for AWS, GCE and Azure can help you understand these charges.

Under “how does it compare to Puppet and Chef” it might also be worth expanding the scope to provisioning tools like Terraform/Pulumi and highlighting it has the same core capability to provision underlying cloud resources, but also includes Day 1…n capabilities through charms too :slight_smile:

That’s a good point! I am not entirely sure why we picked specifically Puppet and Chef but it might be the case of creating a new question about provisioning tools.

Seems like you volunteered yourself there mate :upside_down_face: :upside_down_face: :upside_down_face:

This seems to be an appropriate workflow for a starting visitor. Each of these questions should get a short answer, with a link to the appropriate section to dig deeper.

Please organize the page into this format.

1 Like

packaged as “Charms”

1 Like

Charmed Operator Collection

Charmed Operator SDK Documentation

1 Like