Channel Upgrade Graphs Legends

Defines the legends for channel upgrade graph representation schemes used.

This document enumerates the legends for the graphs that depict channel upgrades throughout this site. Using the legends documented here can help to communicate channel upgrade graphs in a standardized way.

Legends

Diagram (e.g)
Description
v0.0.1
Version of the operator which is the head of a channel different versions are available in
v0.0.1
Version of the operator currently installed on cluster
v0.0.1
Operator bundle version which is installable
preview
v0.0.1
Operator bundle channel.
preview (default)
v0.0.2
v0.0.1
Default Operator bundle channel.
v0.0.1
v0.0.4
An upgrade path to replace one operator bundle version for another using the CSV replaces spec. (eg.spec.replaces: exampleoperator.v0.0.1`). More info: here.
v0.0.2,v0.0.3
v0.0.1
v0.0.4
An upgrade path to skip versions in the upgrade path using the CSV skips spec. (eg.spec.skips: exampleoperator.v0.0.2, exampleoperator.v0.0.3). More info: here.
>= 2.0.4 < 3.0.0
v2.0.3
v3.0.1
An upgrade path to skip a range of operator bundle versions using the CSV olm.skipRange annotation. (E.g annotations.olm.skipRange: '>= 2.0.4 < 3.0.0') More info: here.
v0.0.1
v0.0.4
Represent the same replace method describe above but for a future scenario
v0.0.2,v0.0.3
v0.0.1
v0.0.4
Represent the same skips method describe above but for a future scenario
>= 2.0.4 < 3.0.0
v2.0.3
v3.0.1
Represent the same skipRange method describe above but for a future scenario
v0.0.2
label=value
Index image label with its value for an operator bundle version. (eg.LABEL com.vendor.release.versions:=v4.7)

Creating graphs

The graphs are done programmatically via mermaid. You can use its online editor to work with them and check the following examples.

Check the following example:

stable
v0.0.3,v0.0.4
v0.0.2
v0.0.1
v0.0.5
4.6
v0.0.6
4.6

Now, check the code used to generate this example:

flowchart TB
   classDef head fill:#ffbfcf;
   classDef installed fill:#34ebba;
 
   subgraph stable
   A(v0.0.1):::installed --> B(v0.0.2)
   B(v0.0.2) x--x |v0.0.3,v0.0.4| C(v0.0.5 \n fa:fa-tag 4.6):::head
   C -.-> E(v0.0.6 \n fa:fa-tag 4.6)
   end

Usage code

Note that, the graphs requires starts with:

flowchart TB
   classDef head fill:#ffbfcf;
   classDef installed fill:#34ebba;

Following the code semantic with examples which ought to be used to create the Upgrade Graphs Diagrams.

DescriptionCodeExamples
head bundleID(<bundle tag>):::head
v0.0.1
installed bundleID(<bundle tag>):::installed
v0.0.1
installable bundleID(<bundle tag>)
v0.0.1
channelsubgraph <channel name> end
preview
v0.0.1
default channelsubgraph "<channel name> (default)" end
preview (default)
v0.0.2
v0.0.1
replacesID(<bundle tag>) --> ID(<bundle tag>)
v0.0.1
v0.0.4
skipsID(<bundle tag>) x--x | <versions that should be skipped> | ID(<bundle tag>)
v0.0.2,v0.0.3
v0.0.1
v0.0.4
skipRangeID<bundle tag>) o--o | <range> | ID(<bundle tag>)
>= 2.0.4 < 3.0.0
v2.0.3
v3.0.1
future replacesID(<bundle tag>) -.-> ID(<bundle tag>)
v0.0.1
v0.0.4
future skipsID(<bundle tag>) x-.-x | <versions that should be skipped> | ID(<bundle tag>)
v0.0.2,v0.0.3
v0.0.1
v0.0.4
future skipRangeID<bundle tag>) o-.-o | <range> | ID(<bundle tag>)
>= 2.0.4 < 3.0.0
v2.0.3
v3.0.1
Index image labelID(<bundle tag> \n fa:fa-tag <label>=<value>)
v0.0.2
label=value