Getting Started
Install OLM in a kubernetes cluster.
Operator Lifecycle Manager (OLM) is a component of the Operator Framework, an open source toolkit to manage Kubernetes native applications, called Operators, in an effective, automated, and scalable way. OLM extends Kubernetes to provide a declarative way to install, manage, and upgrade Operators and their dependencies in a cluster.
Read more in the introduction blog post.
Kubernetes clusters are being kept up to date using elaborate update mechanisms today, more often automatically and in the background. Operators, being cluster extensions, should follow that. OLM has a concept of catalogs from which Operators are available to install and being kept up to date. In this model OLM allows maintainers granular authoring of the update path and gives commercial vendors a flexible publishing mechanism using channels.
With OLMs packaging format Operators can express dependencies on the platform and on other Operators. They can rely on OLM to respect these requirements as long as the cluster is up. In this way, OLMs dependency model ensures Operators stay working during their long lifecycle across multiple updates of the platform or other Operators.
OLM advertises installed Operators and their services into the namespaces of tenants. They can discover which managed services are available and which Operator provides them. Administrators can rely on catalog content projected into a cluster, enabling discovery of Operators available to install.
Operators must claim ownership of their APIs. OLM will prevent conflicting Operators owning the same APIs being installed, ensuring cluster stability.
Operators can behave like managed service providers. Their user interface on the command line are APIs. For graphical consoles OLM annotates those APIs with descriptors that drive the creation of rich interfaces and forms for users to interact with the Operator in a natural, cloud-like way.
This packaging mechanism helps to simplify the multiple steps involved in deploying an Operator. OLM fulfills the necessary metadata for visualizing them in compatible UIs including installation instructions and API hints in the form of CRD descriptors. It helps cluster admin and developers to manage the lifecycle of all Operators and their associated services running across their clusters.
Using OLM eliminates the need for developers and cluster admins to have to worry about managing dependencies when developing one or more Operators. OLM offers dependency resolution and upgrades the lifecycle of running operators. This functionality helps Operator developers to resolve the problems related to dependency management.
Operator developers may need to use one or more APIs for the operator installation and OLM helps solve this use case by verifying that all of the required APIs are available for the operator. OLM will attempt to find an operator that owns those missing required APIs and install it. If there are no operator that satisfy the required APIs, then OLM won’t install the main operator.
The OperatorGroups
will do the following:
A ClusterServiceVersion (CSV)
represents a particular operator version that is running on a cluster. It includes metadata such as name, description, version, repository link, labels, icon, etc.
A CatalogSource
represents a store of operator bundles and metadata that OLM can query to discover and install operators and their dependencies.
An OperatorCondition
is a CustomResourceDefinition that creates a communication between OLM and an operator it manages. Operators may write to the Status.Conditions
array to modify the OLM operator management.
A Subscription
represents an intention to install an operator. Subscriptions are Custom Resources that relate an operator to a CatalogSource. Subscriptions describe which channel of an operator package to subscribe to and whether to perform updates automatically or manually. If set to automatic the Subscription ensures that OLM will manage and upgrade the operator, verifying the latest version is always running in the cluster.
An InstallPlan
defines a set of resources to be created in order to install or upgrade to a specific version of an operator.
An OperatorGroup
is an OLM resource that provides rudimentary multitenant configuration to OLM installed operators.
Install OLM in a kubernetes cluster.
Configuring and installing operators with OLM
This section is the knowledge base for all concepts, glossary, etc that are associated with OLM
Best practices, conventions and recommendations to work with OLM
A list of jargon used in the context of OLM, along with their definitions.
How to contribute to the docs