From 035cbd1c688999ee385a267b8fb377f6a71a5ad3 Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Wed, 19 Nov 2025 18:05:08 +0100 Subject: [PATCH 1/5] chore: add custom values.yaml for OLM bundles --- olm/build-manifests.py | 9 ++++++++- olm/build-manifests.sh | 14 ++++++++++++-- olm/resources/values/commons-operator/values.yaml | 5 +++++ olm/resources/values/secret-operator/values.yaml | 5 +++++ 4 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 olm/resources/values/commons-operator/values.yaml create mode 100644 olm/resources/values/secret-operator/values.yaml diff --git a/olm/build-manifests.py b/olm/build-manifests.py index bd20885..9f416db 100755 --- a/olm/build-manifests.py +++ b/olm/build-manifests.py @@ -442,7 +442,14 @@ def generate_csv( def generate_helm_templates(args: argparse.Namespace) -> list[dict]: logging.debug(f"start generate_helm_templates for {args.repo_operator}") template_path = args.repo_operator / "deploy" / "helm" / args.repo_operator.name - helm_template_cmd = ["helm", "template", args.op_name, template_path] + # Path to the default values.yaml used in the operator Helm charts. + helm_values_path = template_path / "values.yaml" + # Path to the custom values for OLM. + olm_values_path = pathlib.Path(__file__).parent / "resources" / "values" / args.repo_operator.name / "values.yaml" + helm_template_cmd = ["helm", "template", args.op_name, + "--values", helm_values_path, + "--values", olm_values_path, + template_path] try: logging.debug("start generate_helm_templates") logging.info(f"Running {helm_template_cmd}") diff --git a/olm/build-manifests.sh b/olm/build-manifests.sh index 3dc34b4..1bc71fe 100755 --- a/olm/build-manifests.sh +++ b/olm/build-manifests.sh @@ -38,6 +38,10 @@ OPERATOR="" MANIFESTS_DIR="" METADATA_DIR="" +# Location of the stackable-utils repo. +# Needed to build path to custom OLM values.yaml files. +UTILS_REPO_DIR=$(pwd) + generate_metadata() { # generate metadata @@ -56,7 +60,7 @@ annotations: operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: stackable-${OPERATOR} - com.redhat.openshift.versions: v4.11-v4.19 + com.redhat.openshift.versions: v4.18-v4.20 ANNOS popd @@ -76,7 +80,7 @@ generate_manifests() { fi # expand config map, roles, service account, etc. - helm template "$OPERATOR" "$OP_ROOT/deploy/helm/$OPERATOR" | yq -s '.metadata.name' + helm template "$OPERATOR" --values "$OP_ROOT/deploy/helm/$OPERATOR/values.yaml" --values "$UTILS_REPO_DIR/olm/resources/values/$OPERATOR/values.yaml" "$OP_ROOT/deploy/helm/$OPERATOR" | yq -s '.metadata.name' popd } @@ -110,6 +114,12 @@ parse_inputs() { OPERATOR="$PRODUCT-operator" MANIFESTS_DIR="$OPENSHIFT_ROOT/operators/stackable-$OPERATOR/$RELEASE_VERSION/manifests" METADATA_DIR="$OPENSHIFT_ROOT/operators/stackable-$OPERATOR/$RELEASE_VERSION/metadata" + + if [ "stackable-utils" != $(basename "$UTILS_REPO_DIR") ]; then + echo "ERROR: Looks like you are not calling this script from the base [stackable-utils] repository." + echo "ERROR: This is required to properly reference files under the [resources] folder." + exit 1 + fi } maybe_print_help() { diff --git a/olm/resources/values/commons-operator/values.yaml b/olm/resources/values/commons-operator/values.yaml new file mode 100644 index 0000000..178d23e --- /dev/null +++ b/olm/resources/values/commons-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 1024Mi + requests: + memory: 1024Mi diff --git a/olm/resources/values/secret-operator/values.yaml b/olm/resources/values/secret-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/secret-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi From abe0c21f13453d735c0ebabfd547ca119ea25260 Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:59:07 +0100 Subject: [PATCH 2/5] fixes for the listener op --- olm/build-manifests.sh | 10 ++++++++-- olm/resources/values/listener-operator/values.yaml | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 olm/resources/values/listener-operator/values.yaml diff --git a/olm/build-manifests.sh b/olm/build-manifests.sh index 1bc71fe..7173a58 100755 --- a/olm/build-manifests.sh +++ b/olm/build-manifests.sh @@ -79,8 +79,14 @@ generate_manifests() { cat "$OP_ROOT/deploy/helm/$OPERATOR/crds/crds.yaml" | yq -s '.spec.names.kind' fi - # expand config map, roles, service account, etc. - helm template "$OPERATOR" --values "$OP_ROOT/deploy/helm/$OPERATOR/values.yaml" --values "$UTILS_REPO_DIR/olm/resources/values/$OPERATOR/values.yaml" "$OP_ROOT/deploy/helm/$OPERATOR" | yq -s '.metadata.name' + # Expand the Helm chart to individual files by applying both the default values.yaml + # and the OLM specific values.yaml. + # Each document is saved in file named "{.kind}-{.metadata.name}.yaml" to reduce the number of + # name collisions when multiple objects share the same name. + helm template "$OPERATOR" \ + --values "$OP_ROOT/deploy/helm/$OPERATOR/values.yaml" \ + --values "$UTILS_REPO_DIR/olm/resources/values/$OPERATOR/values.yaml" \ + "$OP_ROOT/deploy/helm/$OPERATOR" | yq -s '(.kind // "kind-unknown") + "-" + (.metadata.name // "name-unknown")' popd } diff --git a/olm/resources/values/listener-operator/values.yaml b/olm/resources/values/listener-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/listener-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi From a529fda33ac5a61ffdc07cafb57be684f571d55a Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:59:07 +0100 Subject: [PATCH 3/5] fixes for the listener op --- .../values/listener-operator/values.yaml | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/olm/resources/values/listener-operator/values.yaml b/olm/resources/values/listener-operator/values.yaml index 2b44159..e81975b 100644 --- a/olm/resources/values/listener-operator/values.yaml +++ b/olm/resources/values/listener-operator/values.yaml @@ -1,5 +1,29 @@ -resources: - limits: - memory: 256Mi - requests: - memory: 256Mi +csiProvisioner: + controllerService: + resources: + limits: + memory: 256Mi + requests: + memory: 256Mi + + externalProvisioner: + resources: + requests: + memory: 128Mi + limits: + memory: 128Mi + +csiNodeDriver: + nodeService: + resources: + limits: + memory: 256Mi + requests: + memory: 256Mi + + nodeDriverRegistrar: + resources: + requests: + memory: 128Mi + limits: + memory: 128Mi From 02ace7eabe45346a0760c8ff47fc2125dda5200a Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:19:23 +0100 Subject: [PATCH 4/5] fix values.yaml for secret op --- .../values/secret-operator/values.yaml | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/olm/resources/values/secret-operator/values.yaml b/olm/resources/values/secret-operator/values.yaml index 2b44159..6b6eb74 100644 --- a/olm/resources/values/secret-operator/values.yaml +++ b/olm/resources/values/secret-operator/values.yaml @@ -1,5 +1,30 @@ -resources: - limits: - memory: 256Mi - requests: - memory: 256Mi +controllerService: + resources: + limits: + memory: 256Mi + requests: + memory: 256Mi + +csiNodeDriver: + nodeService: + resources: + limits: + memory: 256Mi + requests: + memory: 256Mi + + externalProvisioner: + resources: + requests: + memory: 128Mi + limits: + memory: 128Mi + + nodeDriverRegistrar: + resources: + requests: + memory: 128Mi + limits: + memory: 128Mi + + From 0e0071d77c473114e7be2b5299c59c05702846f6 Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Fri, 21 Nov 2025 11:14:20 +0100 Subject: [PATCH 5/5] add values.yaml for all other ops --- olm/build-manifests.py | 27 ++++++++----------- .../values/airflow-operator/values.yaml | 5 ++++ .../values/druid-operator/values.yaml | 5 ++++ .../values/hbase-operator/values.yaml | 5 ++++ .../values/hdfs-operator/values.yaml | 5 ++++ .../values/hive-operator/values.yaml | 5 ++++ .../values/kafka-operator/values.yaml | 5 ++++ .../values/nifi-operator/values.yaml | 5 ++++ olm/resources/values/opa-operator/values.yaml | 5 ++++ .../values/opensearch-operator/values.yaml | 5 ++++ .../values/spark-k8s-operator/values.yaml | 5 ++++ .../values/superset-operator/values.yaml | 5 ++++ .../values/trino-operator/values.yaml | 5 ++++ .../values/zookeeper-operator/values.yaml | 5 ++++ 14 files changed, 76 insertions(+), 16 deletions(-) create mode 100644 olm/resources/values/airflow-operator/values.yaml create mode 100644 olm/resources/values/druid-operator/values.yaml create mode 100644 olm/resources/values/hbase-operator/values.yaml create mode 100644 olm/resources/values/hdfs-operator/values.yaml create mode 100644 olm/resources/values/hive-operator/values.yaml create mode 100644 olm/resources/values/kafka-operator/values.yaml create mode 100644 olm/resources/values/nifi-operator/values.yaml create mode 100644 olm/resources/values/opa-operator/values.yaml create mode 100644 olm/resources/values/opensearch-operator/values.yaml create mode 100644 olm/resources/values/spark-k8s-operator/values.yaml create mode 100644 olm/resources/values/superset-operator/values.yaml create mode 100644 olm/resources/values/trino-operator/values.yaml create mode 100644 olm/resources/values/zookeeper-operator/values.yaml diff --git a/olm/build-manifests.py b/olm/build-manifests.py index 9f416db..5160e86 100755 --- a/olm/build-manifests.py +++ b/olm/build-manifests.py @@ -545,6 +545,7 @@ def quay_image(images: list[tuple[str, str]]) -> list[dict[str, str]]: tag_url = ( f"https://quay.io/api/v1/repository/stackable/{image}/tag?{release_tag}" ) + logging.debug(f"Fetching image manifest from {tag_url}") with urllib.request.urlopen(tag_url) as response: data = json.load(response) if not data["tags"]: @@ -612,25 +613,18 @@ def write_metadata(args: argparse.Namespace) -> None: def main(argv) -> int: - ret = 0 - try: - opts = parse_args(argv[1:]) - logging.basicConfig(encoding="utf-8", level=opts.log_level) - - # logging.debug(f"Options: {opts}") + opts = parse_args(argv[1:]) + logging.basicConfig(encoding="utf-8", level=opts.log_level) - manifests = generate_manifests(opts) + manifests = generate_manifests(opts) - logging.info(f"Removing directory {opts.dest_dir}") - if opts.dest_dir.exists(): - shutil.rmtree(opts.dest_dir) + logging.info(f"Removing directory {opts.dest_dir}") + if opts.dest_dir.exists(): + shutil.rmtree(opts.dest_dir) - write_manifests(opts, manifests) - write_metadata(opts) - except Exception as e: - logging.error(e) - ret = 1 - return ret + write_manifests(opts, manifests) + write_metadata(opts) + return 0 CSV_DISPLAY_NAME = { @@ -644,6 +638,7 @@ def main(argv) -> int: "kafka": "Stackable Operator for Apache Kafka", "nifi": "Stackable Operator for Apache NiFi", "opa": "Stackable Operator for the Open Policy Agent", + "opensearch": "Stackable Operator for OpenSearch", "spark-k8s": "Stackable Operator for Apache Spark", "superset": "Stackable Operator for Apache Superset", "trino": "Stackable Operator for Trino", diff --git a/olm/resources/values/airflow-operator/values.yaml b/olm/resources/values/airflow-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/airflow-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/druid-operator/values.yaml b/olm/resources/values/druid-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/druid-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/hbase-operator/values.yaml b/olm/resources/values/hbase-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/hbase-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/hdfs-operator/values.yaml b/olm/resources/values/hdfs-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/hdfs-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/hive-operator/values.yaml b/olm/resources/values/hive-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/hive-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/kafka-operator/values.yaml b/olm/resources/values/kafka-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/kafka-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/nifi-operator/values.yaml b/olm/resources/values/nifi-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/nifi-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/opa-operator/values.yaml b/olm/resources/values/opa-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/opa-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/opensearch-operator/values.yaml b/olm/resources/values/opensearch-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/opensearch-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/spark-k8s-operator/values.yaml b/olm/resources/values/spark-k8s-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/spark-k8s-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/superset-operator/values.yaml b/olm/resources/values/superset-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/superset-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/trino-operator/values.yaml b/olm/resources/values/trino-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/trino-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi diff --git a/olm/resources/values/zookeeper-operator/values.yaml b/olm/resources/values/zookeeper-operator/values.yaml new file mode 100644 index 0000000..2b44159 --- /dev/null +++ b/olm/resources/values/zookeeper-operator/values.yaml @@ -0,0 +1,5 @@ +resources: + limits: + memory: 256Mi + requests: + memory: 256Mi