The Charmed Operator Lifecycle Manager (OLM) is a platform for orchestrating applications—prepackaged in a special format called Charmed Operators (‘charms’)—in the cloud. It is a component of the Charmed Operator Framework Juju and it consists of the command line tool Juju (juju
).
The OLM provides a declarative way to install, provision, maintain, update, upgrade, and connect applications on and across Kubernetes clusters, containers, virtual machines, and bare metal machines.
As such, the OLM makes it simple, intuitive, and efficient to manage the full lifecycle of complex applications in hybrid cloud.
For system operators and DevOps who manage applications in the cloud, Juju’s OLM simplifies code; for CIOs, it helps align code with business decisions.
For a collection of existing charms, see Charmhub. To build your own charm, see the Charmed Operator Software Development Kit (SDK).
In this documentation
Tutorials Get started - a hands-on introduction to the Juju OLM for new users |
How-to guides Step-by-step guides covering key operations and common tasks |
Explanation Concepts - discussion and clarification of key topics |
Reference Technical information - specifications, APIs, architecture |
Project and community
The Juju OLM is an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.
- Learn about the Roadmap & Releases
- Read our Code of Conduct
- Join the Mattermost community chat
- Join the Discourse community forum
- Report a bug on Launchpad
- Contribute on Github
- Visit the Juju careers page
Navigation
Navigation
Level | Path | Navlink |
---|---|---|
0 | Juju OLM documentation | |
0 | tutorials | Tutorials |
get-started-on-a-localhost | Get started on a localhost | |
get-started-on-kubernetes | Get started on Kubernetes | |
0 | how-to | How-to guides |
set-up-the-juju-olm | Set up the Juju OLM | |
Set up your test environment | ||
create-an-ubuntu-virtual-machine-with-multipass | Create an Ubuntu virtual machine with Multipass | |
Set up the OLM | ||
installing-juju | Install the Juju client | |
set-up-your-cloud | Connect the Juju client to your cloud | |
Kubernetes | ||
microk8s | MicroK8s | |
azure-kubernetes-service-(azure-aks) | Microsoft AKS | |
google-kubernetes-engine-(gke) | Google GCE | |
amazon-elastic-kubernetes-service-(amazon-eks) | Amazon EKS | |
Localhost | ||
manage-a-lxd-cloud | LXD | |
lxd | Connect the Juju client to your LXD cloud | |
use-lxd-clustering | Use LXD clustering | |
use-the-localhost-cloud-offline | Use the localhost cloud offline | |
Private cloud | ||
openstack | OpenStack | |
vmware-vsphere | VMware vSphere | |
maas | MAAS | |
manual-setup | Manual setup | |
Public cloud | ||
amazon-aws | Amazon AWS | |
azure | Microsoft Azure | |
google-gce | Google GCE | |
oracle | Oracle | |
equinix-metal | Equinix Metal | |
install-snaps-offline | Install snaps offline | |
configure-juju-for-offline-usage | Configure Juju for offline usage | |
manage-the-client | Manage the Juju client | |
use-the-client | Use the client | |
back-up-the-juju-client | Back up the Juju client | |
upgrade-the-juju-client | Upgrade the Juju client | |
manage-the-juju-dashboard | Manage the Juju dashboard | |
accessing-the-dashboard | Access the dashboard | |
upgrade-the-dashboard | Upgrade the dashboard | |
manage-clouds | Manage clouds | |
adding-clouds | Add a cloud | |
remove-a-cloud | Remove a cloud | |
define-instance-tags | Define instance tags in a cloud | |
troubleshoot-clouds | Troubleshoot a cloud | |
manage-credentials | Manage credentials | |
add-credentials | Add a cloud credential to the Juju client | |
list-credentials | List credentials | |
set-the-default-credential-for-a-cloud | Set the default credential for a cloud | |
relate-a-credential-to-a-model | Relate a credential to a model | |
query-a-credential-related-to-a-model | Query a credential related to a model | |
update-a-credential | Update a credential | |
remove-a-credential | Remove a credential | |
manage-controllers | Manage controllers | |
create-a-controller | Create a controller | |
configure-a-controller | Configure a controller | |
set-constraints-for-a-controller | Set constraints for a controller | |
log-in-to-a-controller | Log in to a controller | |
controller-backups | Back up a controller | |
high-availability-juju-controller | Make a controller highly available | |
remove-a-controller | Remove a controller | |
collecting-juju-metrics | Collect metrics about a controller | |
remove-a-user-from-a-controller | Remove a user from a controller | |
manage-models | Manage models | |
add-a-model | Add a model | |
get-information-about-a-model | Get information about a model | |
configure-a-model | Configure a model | |
set-constraints-for-a-model | Set constraints for a model | |
switch-to-a-different-model | Switch to a different model | |
working-with-multiple-users | Share a model | |
migrate-a-model | Migrate a model | |
upgrade-models | Upgrade a model | |
troubleshoot-model-upgrades | Troubleshoot model upgrades | |
remove-a-model | Remove a model | |
disabling-commands | Disable commands | |
manage-applications | Manage applications | |
deploy-a-charm-from-charmhub | Deploy an application from Charmhub | |
deploy-an-application-from-a-local-charm | Deploy an application from your local filesystem | |
deploy-to-a-lxd-container | Deploy to a LXD container | |
deploy-an-application-with-a-specific-series | Deploy an application with a specific series | |
deploy-to-a-specific-machine | Deploy to a specific machine | |
deploy-to-a-specific-availability-zone | Deploy to a specific availability zone | |
deploy-to-a-network-space | Deploy to a network space | |
trust-an-application-with-a-credential | Trust an application with a credential | |
expose-a-deployed-application | Expose a deployed application | |
configure-an-application | Configure an application | |
control-application-network-ingress | Control application network ingress | |
set-constraints-for-an-application | Set constraints for an application | |
upgrade-applications | Upgrade an application | |
use-lxd-profiles | Tailor your application for a LXD cloud | |
deploy-charms-offline | Deploy an application offline | |
debug-charm-hooks | Debug charm hooks | |
scale-an-application | Scale an application | |
remove-an-application | Remove an application | |
working-with-actions | Work with actions | |
manage-machines | Manage machines | |
accessing-individual-machines-with-ssh | Access individual machines with SSH | |
set-constraints-for-a-machine | Set constraints for a machine | |
upgrade-a-machines-series | Upgrade a machine’s series | |
remove-a-machine | Remove a machine | |
manage-units | Manage units | |
remove-a-unit | Remove a unit | |
manage-storage | Manage storage | |
defining-and-using-persistent-storage | Define and use persistent storage | |
remove-storage | Remove storage | |
manage-relations | Manage relations | |
simple-same-model-relations | Simple (same-model) relations | |
add-a-relation | Add a simple relation | |
remove-a-relation | Remove a simple relation | |
cross-model-relations | Cross-model relations | |
create-an-offer | Create an offer | |
view-an-offers-details | View an offer’s details | |
control-access-to-an-offer | Control access to an offer | |
find-an-offer-to-use | Find an offer to use | |
relate-to-an-offer | Relate to an offer | |
allow-traffic-from-a-related-application | Allow traffic from a related application | |
inspect-relations-to-an-offer | Inspect relations to an offer | |
suspend-and-resume-a-relation | Suspend and resume a relation | |
remove-a-relation | Remove a relation | |
remove-an-offer | Remove an offer | |
UNPACK THE NEXT FEW DOCS INTO THE BINS ABOVE | ||
Troubleshoot | ||
troubleshooting | Gather information for troubleshooting | |
troubleshoot-additions | Troubleshoot additions | |
troubleshoot-removals | Troubleshoot removals | |
manage-constraints | Manage constraints | |
working-offline | Work offline | |
additional-how-to-guides | Additional how-to guides | |
cloud-image-metadata | How to configure your OpenStack cloud image metadata | |
deploy-postgres-on-ubuntu-server | Deploy, install and manage a high-availability PostgreSQL cluster on Ubuntu Server | |
deploy-rabbitmq-cluster-on-ubuntu-server | Deploy and configure a multi-node RabbitMQ cluster on Ubuntu Server | |
get-started-charmed-kubernetes | Get started with Charmed Kubernetes 1 | |
using-gitlab-as-a-container-registry | Using GitLab as a container registry for Kubernetes | |
streaming-hadoop-analysis | Streaming Data Analytics with Apache Hadoop | |
charmed-kubernetes-kata-containers | Ensuring security and isolation in Charmed Kubernetes with Kata Containers | |
get-started-hadoop-spark | Get started with Hadoop Spark 2 | |
kubeapps-on-canonical-kubernetes | Install Kubeapps on your Kubernetes cluster | |
deploying-storageos-on-kubernetes | Deploying StorageOS on Charmed Kubernetes | |
charmed-osm-get-started | Getting started with Charmed OSM 1 | |
monitor-elasticsearch-with-elasticsearch-and-kibana | Set up remote Elasticsearch monitoring of an Elasticsearch cluster | |
lma-light | Deploy the COS Lite observability stack on MicroK8s | |
0 | reference | Reference |
Tools | ||
commands | CLI commands | |
juju-cheatsheet—all-commands | juju cheatsheet - all commands |
|
juju-cheatsheet—common-tasks | juju cheatsheet - common tasks |
|
juju-actions | actions | |
juju-add-cloud | add-cloud | |
juju-add-credential | add-credential | |
juju-add-k8s | add-k8s | |
juju-add-machine | add-machine | |
juju-add-model | add-model | |
juju-add-relation | add-relation | |
juju-add-space | add-space | |
juju-add-ssh-key | add-ssh-key | |
juju-add-storage | add-storage | |
juju-add-subnet | add-subnet | |
juju-add-unit | add-unit | |
juju-add-user | add-user | |
juju-agree | agree | |
juju-agreements | agreements | |
juju-attach | attach | |
juju-attach-resource | attach-resource | |
juju-attach-storage | attach-storage | |
juju-autoload-credentials | autoload-credentials | |
juju-bind | bind | |
juju-bootstrap | bootstrap | |
juju-budget | budget | |
juju-cached-images | cached-images | |
juju-cancel-action | cancel-action | |
juju-cancel-task | cancel-task | |
juju-change-user-password | change-user-password | |
juju-charm | charm | |
juju-charm-resources | charm-resources | |
juju-clouds | clouds | |
juju-collect-metrics | collect-metrics | |
juju-config | config | |
juju-consume | consume | |
juju-controller-config | controller-config | |
juju-controllers | controllers | |
juju-create-backup | create-backup | |
juju-create-storage-pool | create-storage-pool | |
juju-create-wallet | create-wallet | |
juju-credentials | credentials | |
juju-dashboard | dashboard | |
juju-debug-code | debug-code | |
juju-debug-hook | debug-hook | |
juju-debug-hooks | debug-hooks | |
juju-debug-log | debug-log | |
juju-default-credential | default-credential | |
juju-default-region | default-region | |
juju-deploy | deploy | |
juju-destroy-controller | destroy-controller | |
juju-destroy-model | destroy-model | |
juju-detach-storage | detach-storage | |
juju-diff-bundle | diff-bundle | |
juju-disable-command | disable-command | |
juju-disable-user | disable-user | |
juju-disabled-commands | disabled-commands | |
juju-download | download | |
juju-download-backup | download-backup | |
juju-enable-command | enable-command | |
juju-enable-destroy-controller | enable-destroy-controller | |
juju-enable-ha | enable-ha | |
juju-enable-user | enable-user | |
juju-exec | exec | |
juju-export-bundle | export-bundle | |
juju-expose | expose | |
juju-find | find | |
juju-find-offers | find-offers | |
juju-firewall-rules | firewall-rules | |
juju-get-constraints | get-constraints | |
juju-get-model-constraints | get-model-constraints | |
juju-grant | grant | |
juju-grant-cloud | grant-cloud | |
juju-gui | gui | |
juju-help | help | |
juju-help-tool | help-tool | |
juju-hook-tool | hook-tool | |
juju-hook-tools | hook-tools | |
juju-import-filesystem | import-filesystem | |
juju-import-ssh-key | import-ssh-key | |
juju-info | info | |
juju-kill-controller | kill-controller | |
juju-list-actions | list-actions | |
juju-list-agreements | list-agreements | |
juju-list-cached-images | list-cached-images | |
juju-list-charm-resources | list-charm-resources | |
juju-list-clouds | list-clouds | |
juju-list-controllers | list-controllers | |
juju-list-credentials | list-credentials | |
juju-list-disabled-commands | list-disabled-commands | |
juju-list-firewall-rules | list-firewall-rules | |
juju-list-machines | list-machines | |
juju-list-models | list-models | |
juju-list-offers | list-offers | |
juju-list-payloads | list-payloads | |
juju-list-plans | list-plans | |
juju-list-regions | list-regions | |
juju-list-resources | list-resources | |
juju-list-spaces | list-spaces | |
juju-list-ssh-keys | list-ssh-keys | |
juju-list-storage | list-storage | |
juju-list-storage-pools | list-storage-pools | |
juju-list-subnets | list-subnets | |
juju-list-users | list-users | |
juju-list-wallets | list-wallets | |
juju-login | login | |
juju-logout | logout | |
juju-machines | machines | |
juju-metrics | metrics | |
juju-migrate | migrate | |
juju-model-config | model-config | |
juju-model-default | model-default | |
juju-model-defaults | model-defaults | |
juju-models | models | |
juju-move-to-space | move-to-space | |
juju-offer | offer | |
juju-offers | offers | |
juju-payloads | payloads | |
juju-plans | plans | |
juju-refresh | refresh | |
juju-regions | regions | |
juju-register | register | |
juju-relate | relate | |
juju-reload-spaces | reload-spaces | |
juju-remove-application | remove-application | |
juju-remove-cached-images | remove-cached-images | |
juju-remove-cloud | remove-cloud | |
juju-remove-consumed-application | remove-consumed-application | |
juju-remove-credential | remove-credential | |
juju-remove-k8s | remove-k8s | |
juju-remove-machine | remove-machine | |
juju-remove-offer | remove-offer | |
juju-remove-relation | remove-relation | |
juju-remove-saas | remove-saas | |
juju-remove-space | remove-space | |
juju-remove-ssh-key | remove-ssh-key | |
juju-remove-storage | remove-storage | |
juju-remove-storage-pool | remove-storage-pool | |
juju-remove-unit | remove-unit | |
juju-remove-user | remove-user | |
juju-rename-space | rename-space | |
juju-resolve | resolve | |
juju-resolved | resolved | |
juju-resources | resources | |
juju-resume-relation | resume-relation | |
juju-retry-provisioning | retry-provisioning | |
juju-revoke | revoke | |
juju-revoke-cloud | revoke-cloud | |
juju-run | run | |
juju-run-action | run-action | |
juju-scale-application | scale-application | |
juju-scp | scp | |
juju-set-constraints | set-constraints | |
juju-set-credential | set-credential | |
juju-set-default-credential | set-default-credential | |
juju-set-default-region | set-default-region | |
juju-set-firewall-rule | set-firewall-rule | |
juju-set-meter-status | set-meter-status | |
juju-set-model-constraints | set-model-constraints | |
juju-set-plan | set-plan | |
juju-set-series | set-series | |
juju-set-wallet | set-wallet | |
juju-show-action-output | show-action-output | |
juju-show-action-status | show-action-status | |
juju-show-cloud | show-cloud | |
juju-show-controller | show-controller | |
juju-show-credential | show-credential | |
juju-show-credentials | show-credentials | |
juju-show-machine | show-machine | |
juju-show-model | show-model | |
juju-show-offer | show-offer | |
juju-show-space | show-space | |
juju-show-status | show-status | |
juju-show-status-log | show-status-log | |
juju-show-storage | show-storage | |
juju-show-units | show-units | |
juju-show-user | show-user | |
juju-show-wallet | show-wallet | |
juju-sla | sla | |
juju-spaces | spaces | |
juju-ssh | ssh | |
juju-ssh-keys | ssh-keys | |
juju-status | status | |
juju-storage | storage | |
juju-storage-pools | storage-pools | |
juju-subnets | subnets | |
juju-suspend-relation | suspend-relation | |
juju-switch | switch | |
juju-sync-agent-binaries | sync-agent-binaries | |
juju-sync-tools | sync-tools | |
juju-trust | trust | |
juju-unexpose | unexpose | |
juju-unregister | unregister | |
juju-update-clouds | update-clouds | |
juju-update-credential | update-credential | |
juju-update-credentials | update-credentials | |
juju-update-k8s | update-k8s | |
juju-update-public-clouds | update-public-clouds | |
juju-update-storage-pool | update-storage-pool | |
juju-upgrade-charm | upgrade-charm | |
juju-upgrade-controller | upgrade-controller | |
juju-upgrade-dashboard | upgrade-dashboard | |
juju-upgrade-gui | upgrade-gui | |
juju-upgrade-juju | upgrade-juju | |
juju-upgrade-model | upgrade-model | |
juju-upgrade-series | upgrade-series | |
juju-users | users | |
juju-version | version | |
juju-wallets | wallets | |
juju-whoami | whoami | |
Plugin commands | ||
juju-backups | backups | |
juju-list-backups | list-backups | |
juju-remove-backup | remove-backup | |
juju-restore-backup | restore-backup | |
juju-show-backup | show-backup | |
juju-upload-backup | upload-backup | |
entities | Tools, entities, and processes | |
action | Action | |
agents | Agent | |
applications | Application | |
applications-and-charmed-operators | Applications and charmed operators | |
bootstrapping | Bootstraping | |
bundles | Bundle | |
charmed-operators | Charmed operator (‘charm’) | |
clouds | Cloud | |
constraints | Constraint | |
controllers | Controller | |
credentials | Credential | |
the-juju-dashboard | Dashboard (as in “the Juju dashboard”) | |
endpoints | Endpoint | |
high-availability | High-availability | |
the-juju-client | juju (the Juju CLI tool, the Juju client)
|
|
leaders | Leader | |
juju-logs | Logs | |
machines | Machine | |
models | Model | |
placement-directive | Placement directive | |
plugins | Plugin | |
plugins-wait-for | The wait-for plugin
|
|
list-of-available-plugins | List of available plugins | |
relations | Relation | |
removing-things | Removing things | |
network-spaces | Network spaces | |
storage | Storage | |
subnet | Subnet | |
telemetry-and-juju | Telemetry | |
units | Unit | |
upgrading | Upgrading things | |
user | User | |
user-types-and-abilities | User types and abilities | |
the-juju-web-cli | Web CLI | |
glossary | Other terms | |
Other reference | ||
environment-variables | Environment variables | |
fan-container-networking | Fan container networking | |
offline-mode-strategies | Offline mode strategies | |
status-values | Status values | |
supported-features | Supported features | |
0 | explanation | Explanation |
application-modelling | Application modelling | |
roadmap | Roadmap & Releases | |
Redirects
Mapping table
Location | Path |
---|---|
/docs/olm/basic-concepts | /docs/olm/reference |
/docs/olm/quick-reference | /docs/olm/basic-concepts |
/docs/olm/manage-relations | /docs/olm/relations |
/docs/olm/manage-controllers | /docs/olm/controllers |
/docs/olm/manage-clouds | /docs/olm/clouds |
/docs/olm/manage-models | /docs/olm/models |
/docs/olm/the-juju-web-cli | /docs/olm/using-the-juju-web-cli |
/docs/olm/the-juju-dashboard | /docs/olm/using-the-dashboard |
/docs/olm/constraints | /docs/olm/about-constraints |
/docs/olm/user-types-and-abilities | /docs/olm/about-user-types-and-abilities |
/docs/olm/manage-the-client | /docs/olm/upgrading-client |
/docs/olm/migrate-a-model | /docs/olm/migrating-models |
/docs/olm/configure-a-model | /docs/olm/configuring-models |
/docs/olm/additional-how-to-guides | /docs/olm/other-tutorials |
/docs/sdk | /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 |
/t/advanced-application-deployment | /t/deploying-advanced-applications |
http://discourse.charmhub.io/ | /docs/olm/community-help |
http://discourse.charmhub.io/ | /docs/contact-us |
http://discourse.charmhub.io/ | /docs/olm/community-help |
/docs/olm/accessing-the-dashboard | /docs/olm/accessing-juju’s-web-interface |