Skip to content

chore(tracking): OLM Manifests for SDP Release 25.7.0 #754

@NickLarsenNZ

Description

@NickLarsenNZ

Part of #722.

This is for tracking distributed work. For instructions on how to proceed with each operator, see the description below.

Please follow this list in order at least until the zookeeper-operator before parallelizing.

Operator Maintainer Branch Deploy bundles and Kuttl Tests Pipeline dry-run Cert Pipeline PR Notes
commons @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-commons-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6367
listener @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-listener-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6369 changes needed for olm-deployer, need custom scc
secret @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-secret-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6368 changes needed for olm-deployer, need custom scc
zookeeper @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-zookeeper-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6375
opa @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-opa-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6376
hdfs @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-hdfs-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6377
hive @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-hive-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6378
hbase @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-hbase-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6380
druid @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-druid-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6381
kafka @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-kafka-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6382
nifi @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-nifi-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6383
spark @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-spark-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6384 Added SCC to CSV/clusterrole (needed for historyserver/connect clusterroles)
superset @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-superset-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6385
airflow @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-airflow-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6386
trino @adwk67 https://github.com/stackabletech/openshift-certified-operators/tree/stackable-trino-25.7.0 🟢 🟢 ✔️ redhat-openshift-ecosystem/certified-operators#6387

Description

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):

This issue assumes you are generating OLM manifests for a released SDP version with the intention of certifying it. This means:

  • All operator repositories have the required release branch. These releases have been tested and are generally available.
  • All container images have been published to quay.io

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 repository

    cd $HOME/repo/stackable/openshift-certified-operators
    git switch -c stackable-secret-25.7.0
  • Generate manifests

    ./olm/build-manifests.sh -r 25.7.0 \
    -c $HOME/repo/stackable/openshift-certified-operators \
    -o $HOME/repo/stackable/secret-operator

Options:

  • -r 25.7.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 from the previous version. For secret and listener
  • Replace the contents of the deployment, and cluster role with the template.spec and rules 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

  • Ensure your K8S configuration points to a an OpenShift (or OKD) instance

  • Install the operator from the manifests generated in the previous step

    /olm/build-bundles.sh -r 25.7.0 -o secret -c ~/repo/stackable/openshift-certified-operators -d

Options:

  • -r 25.7.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 cluster

All 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 repository

    cd $HOME/repo/stackable/openshift-certified-operators
    git switch -c stackable-zookeeper-25.7.0
  • Ensure appropriate branch (release-25.7) is checkout out in the ZooKeeper operator

  • Generate manifests

    ./olm/build-manifests.py  \
    --openshift-versions v4.14-v4.16 \
    --repo-certified-operators ~/repo/stackable/openshift-certified-operators \
    --channel 25.7 \
    --release 25.7.0 \
    --replaces 25.3.0 \
    --repo-operator ~/repo/stackable/zookeeper-operator

See ./olm/build-manifests.py --help for possible options.

Install manifests

./olm/build-bundles.sh \
-r 25.7.0 \
-o zookeeper \
-c ~/repo/stackable/openshift-certified-operators \
-d

Test the operator

Run the openshit integration test suite for the operator

cd ~/repo/stackable/zookeeper-operator
/scripts/run-tests --test-suite openshift --skip-operator zookeeper

We use --skip-operator because the operator has already been installed previously.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
Done
Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions