This is a list of steps you can follow to generate, install and test Operator Lifecycle Management (OLM) manifests for the Stackable Data Platform.
The manigest generation is fully automated for all operators except two: the secret and the listener operator. These two required manual intervention.
OLM manifests can be generated at any time and for any version of the operators (including 0.0.0-dev) but it's specially needed after a platform release, to certify the new operator versions.
To generate manifests for a released version of the SDP, ensure that you checkout the appropriate branch of the operator repository and the openshift operator repository.
Pre-requisites
In addition to the usual development tools like git and Python you need to clone the following repositories, idealy in the same location (this guide assumes $HOME/repo/stackable):
Operators
TODO
Description
Part of: https://github.com/stackabletech/issues/issues/647
This is a list of steps you can follow to generate, install and test Operator Lifecycle Management (OLM) manifests for the Stackable Data Platform.
The manigest generation is fully automated for all operators except two: the
secret
and thelistener
operator. These two required manual intervention.OLM manifests can be generated at any time and for any version of the operators (including
0.0.0-dev
) but it's specially needed after a platform release, to certify the new operator versions.To generate manifests for a released version of the SDP, ensure that you checkout the appropriate branch of the operator repository and the openshift operator repository.
Pre-requisites
In addition to the usual development tools like
git
andPython
you need to clone the following repositories, idealy in the same location (this guide assumes$HOME/repo/stackable
):This issue assumes you are generating OLM manifests for a released SDP version with the intention of certifying it. This means:
Secret and listener operator
Generate manifests
[ ] Update the supported OpenShift version range in the function generate_metadata()
[ ] Create release branch (from
main
) in the openshift operator repositorycd $HOME/repo/stackable/openshift-certified-operators git switch -c stackable-secret-24.3.0
[ ] Generate manifests
./olm/build-manifests.sh -r 24.3.0 \ -c $HOME/repo/stackable/openshift-certified-operators \ -o $HOME/repo/stackable/secret-operator
Options:
-r 24.3.0
is the SDP release-c $HOME/repo/stackable/openshift-certified-operators
the location of the openshift operator repository-o $HOME/repo/stackable/secret-operator
the location of the secret op[ ] Copy the cluster service version file from the previous version.
[ ] Copy the operator manifests file fro the previous version. For secret and listener
[ ] Replace the contents of the deployment, and cluster role with the
template.spec
andrules
from the newly generated files.[ ] Remove the unused generated files : service account, operator cluster role (not the product cluster role), role binding, deployment.
[ ] Remove all Helm labels in all remaining files (including all labels from the cluster role).
[ ] Check or update the metadata/dependencies.yaml
[ ] Update image tags and hashes with quay.io versions
[ ] Commit & push your changes
Install manifests
[ ] Install the operator from the manifests generated in the previous step
/olm/build-bundles.sh -r 24.3.0 -o secret -c ~/repo/stackable/openshift-certified-operators -d
Options:
-r 24.3.0
version of the operator to install-o secret
name of the operator to install-c ~/repo/stackable/openshift-certified-operators
location of the openshift operator repository-d
deploy to the clusterAll other operators
These operators shouldn't require any manual editing of the manifests but a visual check is recommended.
The steps are illustrated only once for the ZooKeeper operator but a list of all operators to work on is added below.
Generate manifests
[ ] Create release branch (from
main
) in the openshift operator repositorycd $HOME/repo/stackable/openshift-certified-operators git switch -c stackable-zookeeper-24.3.0
[ ] Ensure appropriate branch (
release-24.3
) is checkout out in the ZooKeeper operator[ ] Generate manifests
./olm/build-manifests.py \ --openshift-versions 'v4.11-v4.15' \ --release 24.3.0 \ --repo-operator ~/repo/stackable/zookeeper-operator
See
./olm/build-manifests.py --help
for possible options.Install manifests
Test the operator
Run the openshit integration test suite for the operator
We use
--skip-release
because the operator has already been installed previously.