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>

Navigation

[details=Navigation]

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 Install Juju
1 tutorials Tutorials
0 cloud-setup Cloud Setup
1 adding-clouds Add clouds
1 credentials Add credentials
1 create-controllers Create a controller
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 Oracle
2 rackspace Rackspace
0 deploying-applications Deploy Applications
1 constraints Constraints
1 advanced-application-deployment Advanced application deployment
0 integrating-applications Integrate 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 Access Juju’s web interface
1 using-the-juju-web-cli Using the Juju Web CLI
1 defining-and-using-persistent-storage Define and use persistent storage
1 removing-things Remove things
0 System Administration Tasks
1 upgrading Upgrading
2 upgrading-client Upgrading Juju CLI
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 applications-and-charmed-operators Applications and charmed operators
1 fan-container-networking Fan container networking
1 high-availability High-availability Applications
1 network-spaces Network Spaces
1 relations Relations
1 status-values Status values
1 commands Commands
1 environment-variables Environment variables
1 glossary Glossary
0 troubleshoot Troubleshoot
1 juju-logs Juju logs
0 Get Help
1 discourse Community Discourse
1 chat Community Chat

Redirects

Mapping table
Path Location
/t/charm-bundles/1058 /docs/sdk
/t/juju-resources/1074 /docs/sdk
/t/writing-a-kubernetes-v1-charm-updated/3976 /docs/sdk
/t/charm-writing/1260 /docs/sdk
/t/tools/1181 /docs/sdk
/t/hook-tools/1163 /docs/sdk
/t/charm-metadata/1043 /docs/sdk
/t/bundle-reference/1158 /docs/sdk
/t/deploying-advanced-applications /t/advanced-application-deployment
/docs/olm/community-help http://discourse.charmhub.io/
/docs/contact-us http://discourse.charmhub.io/
/docs/olm/community-help http://discourse.charmhub.io/

Question for @anthonydillon, @nottrobin & @pmatulis - would changing the title of this post impact negatively downstream? If it’s being pinned globally, I believe it should be inviting. (Also, why is it being pinned globally?)

“Juju documentation” makes it hard to know whether it’s worth clicking on. If it’s changed to “Need help? Links to Juju’s documentation”.

The introduction should also be more welcoming, in my opinion. It reads to me as “you’ve come to the wrong place”:

Yes, you can happily change the title, that won’t have any impact on the system.

The thinking behind it being pinned is that it provides effectively the navigation table for the documentation system. But I don’t think it needs to be pinned globally, that seems like a mistake.

But I consider it very much your call whether it’s the right decision to pin it at all. You can happily unpin it, again without having any impact on the documentation system.

The content above the “Navigation” title is also currently not used by the docs site, so you can change it to whatever you like for the time being. However, in other documentation sets - docs.snapcraft.io and the soon-to-be created maas.io/docs, the content above the “Navigation” title in that topic forms the content of the docs homepage, so we might want to move this way in Juju too before too long.

Does that all make sense?

Thanks for the response Robin. I’ll pin this thread to the #docs category, rather than globally. That way it can still be useful as an index for people writing documentation.

1 Like

Heads up, the following pages under the Reference section are missing actual links:

  • Juju commands
  • Environment variables

FYI, I very much like this page pinned to the Docs category. Helps me a lot. :slight_smile:

This currently links to Getting started with Juju - the same target as “Getting started on traditional infrastructure” which is highly confusing until you notice it.

As a minimum it should probably link to Using Kubernetes with Juju and be moved lower (because that document references Getting started with Juju as a prerequisite)

Thanks for raising this @doismellburning. I will get this addressed very shortly :slight_smile:

Edit: updated

I found these 404 broken links:

That’s strange… I must have edited the index incorrectly. I will take a look now.

Edit: the problem was that I had edited the titles of those URLs. Discourse is not sensitive to these changes (it only cares about the post ID).

relate link is broken
(4. Relate applications:)
I believe it should point to Managing relations