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
Copy file name to clipboardExpand all lines: content/en/docs/best-practices/channel-naming.md
+26-24Lines changed: 26 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,13 +27,13 @@ is a diagram that shows the relationship of operator versions to channels:
27
27
28
28
In the diagram above you can see the following:
29
29
30
-
- A catalog index named “redhat:v4.6”, this catalog is built by a cluster administrator typically
30
+
- A catalog index named “vendor:v4.6”, this catalog is built by a cluster administrator typically
31
31
- There are 2 operator packages found in the catalog, myoperator and otheroperator.
32
32
- The myoperator has 3 bundles (1.0.0, 1.0.1, 1.0.2). Versions 1.0.0 and 1.0.1 are in multiple channels (fast, stable). Whereas version 1.0.2 is only in the fast channel.
33
-
- The otheroperator has 2 bundles specifying 2 different channels (preview, stable). Version 1.4.0 specifies it is within 2 channels, stable and preview.
33
+
- The otheroperator has 2 bundles specifying 2 different channels (candidate, stable). Version 1.4.0 specifies it is within 2 channels, stable and candidate.
34
34
35
35
36
-
Here is the view of another catalog, “redhat:v4.7”, that shows you can change
36
+
Here is the view of another catalog, “vendor:v4.7”, that shows you can change
37
37
the upgrade path for an operator by what operator bundles are contained
38
38
within the catalog:
39
39
@@ -45,15 +45,15 @@ Operator authors define the channels they intend to use by creating labels withi
This example shows that you are defining the preview channel to be used for
56
+
This example shows that you are defining the candidate channel to be used for
57
57
this operator bundle. Operator bundles are loaded into an Operator Index
58
58
image using the opm command. It is important to note that by specifying a
59
59
channel value like this, you are essentially creating a channel which can
@@ -73,8 +73,8 @@ also used if you create a Subscription that doesn’t specify a channel.
73
73
74
74
If your operator bundles do not specify a default channel, a default channel
75
75
will be picked by OLM based on the lexical ordering of the channels you have
76
-
specified. For example, if your bundles specified channels of preview and
77
-
stable, then preview would be picked based solely on the names chosen and
76
+
specified. For example, if your bundles specified channels of candidate and
77
+
stable, then candidate would be picked based solely on the names chosen and
78
78
character ordering (e.g. ‘p’ comes before ‘s’). Dependency resolution is
79
79
described in more detail here.
80
80
@@ -90,19 +90,19 @@ metadata:
90
90
name: sample-subscription
91
91
namespace: my-operators
92
92
spec:
93
-
channel: preview
93
+
channel: candidate
94
94
name: sampleoperator
95
95
source: sample-operator
96
96
sourceNamespace: my-operators
97
97
```
98
98
99
-
The Subscription is providing hints to OLM which are used to determine exactly which version of an operator will get deployed onto the cluster, in this example OLM will look for an operator to deploy that belongs to the preview channel within a specified catalog index source.
99
+
The Subscription is providing hints to OLM which are used to determine exactly which version of an operator will get deployed onto the cluster, in this example OLM will look for an operator to deploy that belongs to the candidate channel within a specified catalog index source.
100
100
101
101
Note that exactly which operator version is deployed can depend on more than what you specify in the Subscription. On initial install, OLM will always attempt to install whatever is the head of the specified channel by default. Settings within the operator’s CSV also are used by OLM to determine exactly which operator version OLM will deploy or upgrade.
102
102
103
103
## NAMING
104
104
105
-
Channel names are used to imply what form of upgrade you want to offer for your operator. For example, you might have an operator that has a preview or alpha version which is not supported as well as a version where support is offered.
105
+
Channel names are used to imply what form of upgrade you want to offer for your operator. For example, you might have an operator that has a candidate or alpha version which is not supported as well as a version where support is offered.
106
106
107
107
The names you choose are notional and up to you to decide, however, picking good channel names requires some basic guidance. What is described below are different channel naming conventions that are commonly used by the operator community to denote different operator upgrade use cases.
108
108
@@ -119,17 +119,19 @@ The names you choose are notional and up to you to decide, however, picking good
119
119
120
120
#### Example 1
121
121
122
-
| Channel Name | Purpose |
123
-
| :------------- | :----------- |
124
-
|preview| Pre-release operators that would typically not have support offered and might be considered experimental. |
125
-
| fast | Released, supported operators which are still being monitored to assess stability/quality prior to promoting them as stable. Generally used by early adopters or for testing in pre-production environments. |
126
-
| stable | Released, supported operators that have been observed to be stable through usage by consumers of the fast channel.\||
122
+
| Channel Name | Purpose | Supported |
123
+
| :------------- | :----------- | :----------- |
124
+
|candidate| Pre-release operators that would typically not have support offered and might be considered experimental. Release candidates contain all the features of the product but are not supported. Use release candidate versions to test feature acceptance and assist in qualifying the next version of Operator. A release candidate is any build that is available in the candidate channel, including ones that do not contain a pre-release version such as `-rc` in their names. After a version is available in the candidate channel, it goes through more quality checks. If it meets the quality standard, it is promoted to the `fast` or `stable` channels. Because of this strategy, if a specific release is available in both the `candidate` channel and in the `fast` or `stable` channels, it is a supported version. The `candidate` channel can include release versions from which there are no recommended updates in any channel. | No|
125
+
| fast | Released, supported operators which are still being monitored to assess stability/quality prior to promoting them as stable. Generally used by early adopters or for testing in pre-production environments. The `fast` channel ought to be updated with new and previous minor versions of the Operator as soon as it declares the given version as a general availability release. As such, these releases are fully supported, are production quality, and have performed well while available as a release candidate in the `candidate` channel from where they were promoted. Some time after a release appears in the `fast` channel, it is added to the `stable` channel. If you adopted the `fast` and/or `candidate` channel then, releases never should appear in the `stable` channel before they appears in the `fast` and/or `candidate`. Please, make sure you understand the [CHANNEL PROMOTION](/docs/best-practices/channel-naming/#channel-promotion). | Yes |
126
+
| stable | Released, supported operators that have been observed to be stable through usage by consumers of the fast channel. While the fast channel contains releases as soon as their are published with a support statement, releases are added to the stable channel after a delay in this case. During this delay, data could to be collected, for example, to ensure the stability of the release. | Yes|
127
127
128
128
With the above channel naming convention, you are always moving end users to
129
-
the latest versions of your operator. For example you could create a
130
-
version 1.1.1 that is considered fast, adding it to the fast channel. Users
129
+
the latest versions of your operator. For example, you could create a
130
+
version `1.1.1` that is considered fast, adding it to th fast channel. Users
131
131
can experiment with that fast version, but the stable version for example
132
-
1.2.0 would be added only to the stable channel.
132
+
`1.2.0` would be added only to the stable channel.
133
+
134
+
**NOTE** The above terminology and support statements are very similar to the channels of distribution used by Kubernetes, (e.g [here](https://cloud.google.com/kubernetes-engine/docs/concepts/release-channels)), and popular vendors such as OpenShift (e.g [here](https://docs.openshift.com/container-platform/4.7/updating/updating-cluster-between-minor.html)). In this way, by adopting it you will bring a better and more intuitive understanding for the maintainers, users and community.
133
135
134
136
#### Example 2
135
137
@@ -143,7 +145,7 @@ recommended above but with major/minor version information applied as follows:
143
145
144
146
| Channels for 1.3 | Channels for 2.4 |
145
147
| :------------- | :----------- |
146
-
|preview-1.3 |preview-2.4 |
148
+
|candidate-1.3 |candidate-2.4 |
147
149
| fast-1.3 | fast-2.4 |
148
150
| stable-1.3 | stable-2.4 \||
149
151
@@ -157,22 +159,22 @@ channels by the operand version as follows:
157
159
158
160
| Channels for Postgres 12 | Channels for Postgres 13 |
159
161
| :------------- | :----------- |
160
-
|preview-pg-12 |preview-pg-13 |
162
+
|candidate-pg-12 |candidate-pg-13 |
161
163
| fast-pg-12 | fast-pg-13 |
162
-
| stable-pg-12 | stable-pg-13 \||
164
+
| stable-pg-12 | stable-pg-13 ||
163
165
164
166
In this example, subscribers know which database version they are subscribing
165
167
to and don’t necessarily care which operator version is being used, but will
166
168
likely just want the latest operator version in that channel. As with the
167
169
previous naming convention examples, we start the channel name with
168
-
preview/fast/stable to denote the maturity level of the operator. Using all
170
+
candidate/fast/stable to denote the maturity level of the operator. Using all
169
171
3 naming prefixes is optional, you might only want to support a stable channel.
170
172
171
173
# CHANNEL PROMOTION
172
174
173
175
Channel promotion is the notion of moving an operator from one channel to
174
176
another. For example, consider the case where you have an operator version
175
-
1.0.1 which is found in a preview channel, then you might decide to offer
177
+
1.0.1 which is found in a candidate channel, then you might decide to offer
176
178
support for that version and want to move it to a stable channel.
177
179
178
180
Today, channel promotion is achieved by creating a new operator version
0 commit comments