You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For many projects, users may not need much information beyond the information in the [Overview](/docs/overview/), so this section is **optional**. However if there are areas where your users will need a more detailed understanding of a given term or feature in order to do anything useful with your project (or to not make mistakes when using it) put that information in this section. For example, you may want to add some conceptual pages if you have a large project with many components and a complex architecture.
14
15
15
-
Remember to focus on what the user needs to know, not just what you think is interesting about your project! If they don’t need to understand your original design decisions to use or contribute to the project, don’t put them in, or include your design docs in your repo and link to them. Similarly, most users will probably need to know more about how features work when in use rather than how they are implemented. Consider a separate architecture page for more detailed implementation and system design information that potential project contributors can consult.
16
+
## CustomResourceDefinitions (CRDs)
17
+
18
+
The following [CustomResourceDefinitions](https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/) are defined by the OLM.
19
+
20
+
### ClusterServiceVersion
21
+
22
+
**Definition**: The ClusterServiceVersion represents a particular version of a ClusterService and its operator. It includes metadata such as name, description, version, repository link, labels, icon, etc. It declares `owned`/`required` CRDs, cluster requirements, and install strategy that tells OLM how to create required resources and set up the operator as a [deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/).
23
+
24
+
**Aliases**: CSV(s)
25
+
26
+
### CatalogSources
27
+
28
+
**Definition**: The CatalogSource represents a repository of bundles, which are collections of resources that must contain [CSVs](#ClusterServiceVersion), [CRDs](#CustomResourceDefinitions), and package definitions. There are multiple implementations of a CatalogSource backend, the current recommendation is to use a [registry image](#Index).
29
+
30
+
**Aliases**: CatSrc(s)
31
+
32
+
### InstallPlans
33
+
34
+
**Definition**: The InstallPlan defines a set of resources to be created in order to install or upgrade to a specific version of a ClusterService defined by a CSV.
35
+
36
+
**Aliases**: IP(s)
37
+
38
+
### OperatorGroups
39
+
40
+
**Definition**: The OperatorGroup selects a set of target namespaces in which to generate required RBAC access for its member Operators.
41
+
42
+
**Aliases**: OG(s)
43
+
44
+
### OperatorSources
45
+
46
+
**Definition**: The OperatorSources are a way of pointing to external app registry namespaces that contain a catalog of operators. Applying an OperatorSource to a cluster makes the operators in that OperatorSource available for installation in that cluster.
47
+
48
+
**Aliases**: OpSrc(s)
49
+
50
+
### Subscriptions
51
+
52
+
**Definition**: 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 OLM will manage and upgrade the operator to ensure the latest version is always running in the cluster.
53
+
54
+
**Aliases**: Subs(s)
55
+
56
+
## OLM Concepts
57
+
58
+
### Bundle
59
+
60
+
**Definition**: A collection of Operator [CSV](#ClusterServiceVersion), manifests, and metadata which together form a unique version of an Operator that can be installed onto the cluster.
61
+
62
+
### Bundle Image
63
+
64
+
**Definition**: An image of a bundle is built from operator manifests and contains exactly one [bundle](#Bundle). The bundle images are stored and distributed by OCI spec container registries such as Quay.io or DockerHub.
65
+
66
+
### Channel
67
+
68
+
**Definition**: The channel defines a stream of updates for an operator and is used to roll out updates for subscribers. The head points at the latest version of that channel. For example, a stable channel would have all stable versions of an operator arranged from the earliest to the latest. An operator can have several channels, and a subscription binding to a certain channel would only look for updates in that channel.
69
+
70
+
### Channel Head
71
+
72
+
**Definition**: Head refers to the latest known update in a particular [channel](#Channel).
73
+
74
+
### Catalog Image
75
+
76
+
**Definition**: A catalog image is a containerized datastore that describes a set of operator and update metadata that can be installed onto a cluster via OLM.
77
+
78
+
**Aliases**: OPM Index
79
+
80
+
### Dependency
81
+
82
+
**Definition**: An Operator may have a dependency on another Operator being present in the cluster. For example, the Vault Operator has a dependency on the Etcd Operator for its data persistence layer. OLM resolves these dependencies by ensuring all specified versions of Operators and CRDs are installed on the cluster during the installation phase. This dependency is resolved by finding and installing an Operator in a Catalog that satisfies the required CRD API, and not related to [packages](#Packages)/[bundles](#Bundles).
83
+
84
+
**Aliases**: Operator Dependency, GVK Dependency, API Dependency, Required CRD
85
+
86
+
### Index
87
+
88
+
**Definition**: The Index refers to an image of a database (a database snapshot) that contains information about Operator bundles including CSVs, CRDs, etc of all versions. This index can host a history of used operators on a cluster and be maintained by adding or removing operators.
**Definition**: A package is a directory that encloses all released history of an Operator with each version contained
95
+
in the bundle format. A released version of an Operator is described in a ClusterServiceVersion manifest alongside the CustomResourceDefinitions.
96
+
97
+
### Registry
98
+
99
+
**Definition**: A database which stores [Bundle Images](#Bundle-Image) of Operators, each with all of its latest/historical versions in all [channels](#Channel).
100
+
101
+
### Upgrade Graph
102
+
103
+
**Definition**: An upgrade graph links versions of [CSV](#ClusterServiceVersions) together, similar to the upgrade graph of any other packaged software. Operators can be installed sequentially, or certain versions can be skipped. The update graph is expected to grow only at the head with newer versions being added. This is automatically resolved as part
-[go](https://golang.org/dl/) version `v1.12+`.
13
+
-[docker](https://docs.docker.com/install/) version `17.03`+.
14
+
- Alternatively [podman](https://github.com/containers/libpod/blob/master/install.md)`v1.2.0+` or [buildah](https://github.com/containers/buildah/blob/master/install.md)`v1.7+`
Learn more about available releases [here](https://github.com/operator-framework/operator-lifecycle-manager/releases).
30
30
31
-
## Install From Git Repository Master Branch
32
31
33
-
You can install OLM from the master branch of the [operator-framework/operator-lifecycle-manager](https://github.com/operator-framework/operator-lifecycle-manager/) repository with the following:
You can also clone the entire git repository and use the [Makefile](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/Makefile) for deploying OLM locally on [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/) for development purposes.
32
+
To deploy OLM locally on a [minikube cluster](https://kubernetes.io/docs/tasks/tools/install-minikube/) for development work, use the `run-local` target in the [Makefile](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/Makefile).
Copy file name to clipboardExpand all lines: content/en/docs/Overview/_index.md
+16-17Lines changed: 16 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -3,18 +3,16 @@ title: "Overview"
3
3
linkTitle: "Overview"
4
4
weight: 1
5
5
description: >
6
-
This page introduces you to OLM and why we use it
6
+
This page introduces you to OLM and what you can achieve with it
7
7
---
8
8
9
-
## What is it?
9
+
## What is OLM?
10
10
11
-
Operator Lifecycle Manager (OLM) helps users install, update, and manage the lifecycle of all Operators and their associated services running across their clusters. It is part of the Operator Framework, an open source toolkit designed to manage Kubernetes native applications (Operators) in an effective, automated, and scalable way.
11
+
[Operator Lifecycle Manager (OLM)](https://github.com/operator-framework/operator-lifecycle-manager)is a component of the [Operator Framework](https://github.com/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.
12
12
13
-
The OLM runs by default in OpenShift Container Platform 4.3, which aids cluster administrators in installing, upgrading, and granting access to Operators running on their cluster. The OpenShift Container Platform web console provides management screens for cluster administrators to install Operators, as well as grant specific projects access to use the catalog of Operators available on the cluster.
13
+
Read more in the [introduction blog post](https://operatorhub.io/what-is-an-operator).
14
14
15
-
For developers, a self-service experience allows provisioning and configuring instances of databases, monitoring, and big data services without having to be subject matter experts, because the Operator has that knowledge baked into it.
16
-
17
-
## Why would i use OLM?
15
+
## Why do I want OLM?
18
16
19
17
### Over-the-Air Updates and Catalogs
20
18
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.
@@ -29,22 +27,23 @@ OLM advertises installed Operators and their services into the namespaces of ten
29
27
Operators must claim ownership of their APIs. OLM will prevent conflicting Operators owning the same APIs being installed, ensuring cluster stability.
30
28
31
29
### Declarative UI controls
32
-
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.
33
-
34
-
## Why do I want it?
30
+
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.
35
31
36
-
Help your user know if your project will help them. Useful information can include:
32
+
## What is it good for?
33
+
34
+
What types of problems does your project solve? What are the benefits of using it?
37
35
38
-
***What is it good for?**: What types of problems does your project solve? What are the benefits of using it?
36
+
## What is it not good for?
37
+
38
+
For example, point out situations that might intuitively seem suited for your project, but aren't for some reason. Also mention known limitations, scaling issues, or anything else that might let your users know if the project is not for them.
39
39
40
-
***What is it not good for?**: For example, point out situations that might intuitively seem suited for your project, but aren't for some reason. Also mention known limitations, scaling issues, or anything else that might let your users know if the project is not for them.
40
+
## What is it *not yet* good for?
41
41
42
-
***What is it *not yet* good for?**: Highlight any useful features that are coming soon.
42
+
Highlight any useful features that are coming soon.
43
43
44
44
## Where should I go next?
45
45
46
46
Give your users next steps from the Overview. For example:
47
47
48
-
*[Getting Started](/Installation/): Get started with $project
49
-
*[Examples](/examples/): Check out some example code!
50
-
48
+
*[Getting Started](/docs/getting-started/): Get started with $project
49
+
*[Examples](/docs/examples/): Check out some example code!
0 commit comments