diff --git a/CHANGELOG.md b/CHANGELOG.md index 87a12d4d..1a557903 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [25.3.0] - 2025-03-21 + ### Added - Run a `containerdebug` process in the background of each Hive container to collect debugging information ([#554]). diff --git a/Cargo.lock b/Cargo.lock index 25ed8b9e..a1258518 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2539,7 +2539,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-hive-operator" -version = "0.0.0-dev" +version = "25.3.0" dependencies = [ "anyhow", "built", diff --git a/Cargo.nix b/Cargo.nix index e8d9dd2e..fab25a14 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -8083,7 +8083,7 @@ rec { }; "stackable-hive-operator" = rec { crateName = "stackable-hive-operator"; - version = "0.0.0-dev"; + version = "25.3.0"; edition = "2021"; crateBin = [ { diff --git a/Cargo.toml b/Cargo.toml index fa79b82f..7cc43c39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["rust/operator-binary"] resolver = "2" [workspace.package] -version = "0.0.0-dev" +version = "25.3.0" authors = ["Stackable GmbH "] license = "OSL-3.0" edition = "2021" diff --git a/deploy/helm/hive-operator/Chart.yaml b/deploy/helm/hive-operator/Chart.yaml index 52296097..39e1bbb2 100644 --- a/deploy/helm/hive-operator/Chart.yaml +++ b/deploy/helm/hive-operator/Chart.yaml @@ -1,8 +1,8 @@ --- apiVersion: v2 name: hive-operator -version: "0.0.0-dev" -appVersion: "0.0.0-dev" +version: "25.3.0" +appVersion: "25.3.0" description: The Stackable Operator for Apache Hive home: https://github.com/stackabletech/hive-operator maintainers: diff --git a/deploy/helm/hive-operator/crds/crds.yaml b/deploy/helm/hive-operator/crds/crds.yaml index f0ca0792..d7df0880 100644 --- a/deploy/helm/hive-operator/crds/crds.yaml +++ b/deploy/helm/hive-operator/crds/crds.yaml @@ -23,13 +23,13 @@ spec: description: Auto-generated derived type for HiveClusterSpec via `CustomResource` properties: spec: - description: A Hive cluster stacklet. This resource is managed by the Stackable operator for Apache Hive. Find more information on how to use it and the resources that the operator generates in the [operator documentation](https://docs.stackable.tech/home/nightly/hive/). + description: A Hive cluster stacklet. This resource is managed by the Stackable operator for Apache Hive. Find more information on how to use it and the resources that the operator generates in the [operator documentation](https://docs.stackable.tech/home/25.3/hive/). properties: clusterConfig: description: Hive metastore settings that affect all roles and role groups. The settings in the `clusterConfig` are cluster wide settings that do not need to be configurable at role or role group level. properties: authentication: - description: Settings related to user [authentication](https://docs.stackable.tech/home/nightly/usage-guide/security). + description: Settings related to user [authentication](https://docs.stackable.tech/home/25.3/usage-guide/security). nullable: true properties: kerberos: @@ -72,7 +72,7 @@ spec: nullable: true properties: configMap: - description: Name of the [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery) providing information about the HDFS cluster. See also the [Stackable Operator for HDFS](https://docs.stackable.tech/home/nightly/hdfs/) to learn more about setting up an HDFS cluster. + description: Name of the [discovery ConfigMap](https://docs.stackable.tech/home/25.3/concepts/service_discovery) providing information about the HDFS cluster. See also the [Stackable Operator for HDFS](https://docs.stackable.tech/home/25.3/hdfs/) to learn more about setting up an HDFS cluster. type: string required: - configMap @@ -88,14 +88,14 @@ spec: * external-stable: Use a LoadBalancer service - This is a temporary solution with the goal to keep yaml manifests forward compatible. In the future, this setting will control which [ListenerClass](https://docs.stackable.tech/home/nightly/listener-operator/listenerclass.html) will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change. + This is a temporary solution with the goal to keep yaml manifests forward compatible. In the future, this setting will control which [ListenerClass](https://docs.stackable.tech/home/25.3/listener-operator/listenerclass.html) will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change. enum: - cluster-internal - external-unstable - external-stable type: string s3: - description: S3 connection specification. This can be either `inline` or a `reference` to an S3Connection object. Read the [S3 concept documentation](https://docs.stackable.tech/home/nightly/concepts/s3) to learn more. + description: S3 connection specification. This can be either `inline` or a `reference` to an S3Connection object. Read the [S3 concept documentation](https://docs.stackable.tech/home/25.3/concepts/s3) to learn more. nullable: true oneOf: - required: @@ -104,7 +104,7 @@ spec: - reference properties: inline: - description: S3 connection definition as a resource. Learn more on the [S3 concept documentation](https://docs.stackable.tech/home/nightly/concepts/s3). + description: S3 connection definition as a resource. Learn more on the [S3 concept documentation](https://docs.stackable.tech/home/25.3/concepts/s3). properties: accessStyle: default: VirtualHosted @@ -114,11 +114,11 @@ spec: - VirtualHosted type: string credentials: - description: If the S3 uses authentication you have to specify you S3 credentials. In the most cases a [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) providing `accessKey` and `secretKey` is sufficient. + description: If the S3 uses authentication you have to specify you S3 credentials. In the most cases a [SecretClass](https://docs.stackable.tech/home/25.3/secret-operator/secretclass) providing `accessKey` and `secretKey` is sufficient. nullable: true properties: scope: - description: '[Scope](https://docs.stackable.tech/home/nightly/secret-operator/scope) of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass).' + description: '[Scope](https://docs.stackable.tech/home/25.3/secret-operator/scope) of the [SecretClass](https://docs.stackable.tech/home/25.3/secret-operator/secretclass).' nullable: true properties: listenerVolumes: @@ -143,7 +143,7 @@ spec: type: array type: object secretClass: - description: '[SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) containing the LDAP bind credentials.' + description: '[SecretClass](https://docs.stackable.tech/home/25.3/secret-operator/secretclass) containing the LDAP bind credentials.' type: string required: - secretClass @@ -198,7 +198,7 @@ spec: - secretClass properties: secretClass: - description: Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. Note that a SecretClass does not need to have a key but can also work with just a CA certificate, so if you got provided with a CA cert but don't have access to the key you can still use this method. + description: Name of the [SecretClass](https://docs.stackable.tech/home/25.3/secret-operator/secretclass) which will provide the CA certificate. Note that a SecretClass does not need to have a key but can also work with just a CA certificate, so if you got provided with a CA cert but don't have access to the key you can still use this method. type: string webPki: description: Use TLS and the CA certificates trusted by the common web browsers to verify the server. This can be useful when you e.g. use public AWS S3 or other public available services. @@ -218,7 +218,7 @@ spec: type: string type: object vectorAggregatorConfigMapName: - description: Name of the Vector aggregator [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery). It must contain the key `ADDRESS` with the address of the Vector aggregator. Follow the [logging tutorial](https://docs.stackable.tech/home/nightly/tutorials/logging-vector-aggregator) to learn how to configure log aggregation with Vector. + description: Name of the Vector aggregator [discovery ConfigMap](https://docs.stackable.tech/home/25.3/concepts/service_discovery). It must contain the key `ADDRESS` with the address of the Vector aggregator. Follow the [logging tutorial](https://docs.stackable.tech/home/25.3/tutorials/logging-vector-aggregator) to learn how to configure log aggregation with Vector. nullable: true type: string required: @@ -228,7 +228,7 @@ spec: default: reconciliationPaused: false stopped: false - description: '[Cluster operations](https://docs.stackable.tech/home/nightly/concepts/operations/cluster_operations) properties, allow stopping the product instance as well as pausing reconciliation.' + description: '[Cluster operations](https://docs.stackable.tech/home/25.3/concepts/operations/cluster_operations) properties, allow stopping the product instance as well as pausing reconciliation.' properties: reconciliationPaused: default: false @@ -249,7 +249,7 @@ spec: description: |- Specify which image to use, the easiest way is to only configure the `productVersion`. You can also configure a custom image registry to pull from, as well as completely custom images. - Consult the [Product image selection documentation](https://docs.stackable.tech/home/nightly/concepts/product_image_selection) for details. + Consult the [Product image selection documentation](https://docs.stackable.tech/home/25.3/concepts/product_image_selection) for details. properties: custom: description: Overwrite the docker image. Specify the full docker image name, e.g. `oci.stackable.tech/sdp/superset:1.4.1-stackable2.1.0` @@ -288,7 +288,7 @@ spec: type: string type: object metastore: - description: This struct represents a role - e.g. HDFS datanodes or Trino workers. It has a key-value-map containing all the roleGroups that are part of this role. Additionally, there is a `config`, which is configurable at the role *and* roleGroup level. Everything at roleGroup level is merged on top of what is configured on role level. There is also a second form of config, which can only be configured at role level, the `roleConfig`. You can learn more about this in the [Roles and role group concept documentation](https://docs.stackable.tech/home/nightly/concepts/roles-and-role-groups). + description: This struct represents a role - e.g. HDFS datanodes or Trino workers. It has a key-value-map containing all the roleGroups that are part of this role. Additionally, there is a `config`, which is configurable at the role *and* roleGroup level. Everything at roleGroup level is merged on top of what is configured on role level. There is also a second form of config, which can only be configured at role level, the `roleConfig`. You can learn more about this in the [Roles and role group concept documentation](https://docs.stackable.tech/home/25.3/concepts/roles-and-role-groups). nullable: true properties: cliOverrides: @@ -305,7 +305,7 @@ spec: nodeSelector: null podAffinity: null podAntiAffinity: null - description: These configuration settings control [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). + description: These configuration settings control [Pod placement](https://docs.stackable.tech/home/25.3/concepts/operations/pod_placement). properties: nodeAffinity: description: Same as the `spec.affinity.nodeAffinity` field on the Pod, see the [Kubernetes docs](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node) @@ -337,7 +337,7 @@ spec: default: containers: {} enableVectorAgent: null - description: Logging configuration, learn more in the [logging concept documentation](https://docs.stackable.tech/home/nightly/concepts/logging). + description: Logging configuration, learn more in the [logging concept documentation](https://docs.stackable.tech/home/25.3/concepts/logging). properties: containers: additionalProperties: @@ -513,20 +513,20 @@ spec: type: string type: object default: {} - description: The `configOverrides` can be used to configure properties in product config files that are not exposed in the CRD. Read the [config overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#config-overrides) and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product. + description: The `configOverrides` can be used to configure properties in product config files that are not exposed in the CRD. Read the [config overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#config-overrides) and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product. type: object envOverrides: additionalProperties: type: string default: {} - description: '`envOverrides` configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the [environment variable overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#env-overrides) for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.' + description: '`envOverrides` configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the [environment variable overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#env-overrides) for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.' type: object jvmArgumentOverrides: default: add: [] remove: [] removeRegex: [] - description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#jvm-argument-overrides) for details on the usage. + description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: default: [] @@ -549,7 +549,7 @@ spec: type: object podOverrides: default: {} - description: In the `podOverrides` property you can define a [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) to override any property that can be set on a Kubernetes Pod. Read the [Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides) for more information. + description: In the `podOverrides` property you can define a [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) to override any property that can be set on a Kubernetes Pod. Read the [Pod overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#pod-overrides) for more information. type: object x-kubernetes-preserve-unknown-fields: true roleConfig: @@ -568,7 +568,7 @@ spec: 1. If PodDisruptionBudgets are created by the operator 2. The allowed number of Pods to be unavailable (`maxUnavailable`) - Learn more in the [allowed Pod disruptions documentation](https://docs.stackable.tech/home/nightly/concepts/operations/pod_disruptions). + Learn more in the [allowed Pod disruptions documentation](https://docs.stackable.tech/home/25.3/concepts/operations/pod_disruptions). properties: enabled: default: true @@ -599,7 +599,7 @@ spec: nodeSelector: null podAffinity: null podAntiAffinity: null - description: These configuration settings control [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). + description: These configuration settings control [Pod placement](https://docs.stackable.tech/home/25.3/concepts/operations/pod_placement). properties: nodeAffinity: description: Same as the `spec.affinity.nodeAffinity` field on the Pod, see the [Kubernetes docs](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node) @@ -631,7 +631,7 @@ spec: default: containers: {} enableVectorAgent: null - description: Logging configuration, learn more in the [logging concept documentation](https://docs.stackable.tech/home/nightly/concepts/logging). + description: Logging configuration, learn more in the [logging concept documentation](https://docs.stackable.tech/home/25.3/concepts/logging). properties: containers: additionalProperties: @@ -807,20 +807,20 @@ spec: type: string type: object default: {} - description: The `configOverrides` can be used to configure properties in product config files that are not exposed in the CRD. Read the [config overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#config-overrides) and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product. + description: The `configOverrides` can be used to configure properties in product config files that are not exposed in the CRD. Read the [config overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#config-overrides) and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product. type: object envOverrides: additionalProperties: type: string default: {} - description: '`envOverrides` configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the [environment variable overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#env-overrides) for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.' + description: '`envOverrides` configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the [environment variable overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#env-overrides) for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.' type: object jvmArgumentOverrides: default: add: [] remove: [] removeRegex: [] - description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#jvm-argument-overrides) for details on the usage. + description: Allows overriding JVM arguments. Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: default: [] @@ -843,7 +843,7 @@ spec: type: object podOverrides: default: {} - description: In the `podOverrides` property you can define a [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) to override any property that can be set on a Kubernetes Pod. Read the [Pod overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#pod-overrides) for more information. + description: In the `podOverrides` property you can define a [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core) to override any property that can be set on a Kubernetes Pod. Read the [Pod overrides documentation](https://docs.stackable.tech/home/25.3/concepts/overrides#pod-overrides) for more information. type: object x-kubernetes-preserve-unknown-fields: true replicas: diff --git a/docs/antora.yml b/docs/antora.yml index d522680b..5a23776d 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -1,3 +1,4 @@ --- name: home -version: "nightly" +version: "25.3" +prerelease: false diff --git a/docs/modules/hive/examples/getting_started/getting_started.sh b/docs/modules/hive/examples/getting_started/getting_started.sh index 5f412fdc..63b72b64 100755 --- a/docs/modules/hive/examples/getting_started/getting_started.sh +++ b/docs/modules/hive/examples/getting_started/getting_started.sh @@ -24,19 +24,19 @@ cd "$(dirname "$0")" case "$1" in "helm") -echo "Adding 'stackable-dev' Helm Chart repository" +echo "Adding 'stackable-stable' Helm Chart repository" # tag::helm-add-repo[] -helm repo add stackable-dev https://repo.stackable.tech/repository/helm-dev/ +helm repo add stackable-stable https://repo.stackable.tech/repository/helm-stable/ # end::helm-add-repo[] echo "Updating Helm repo" helm repo update echo "Installing Operators with Helm" # tag::helm-install-operators[] -helm install --wait commons-operator stackable-dev/commons-operator --version 0.0.0-dev -helm install --wait secret-operator stackable-dev/secret-operator --version 0.0.0-dev -helm install --wait listener-operator stackable-dev/listener-operator --version 0.0.0-dev -helm install --wait hive-operator stackable-dev/hive-operator --version 0.0.0-dev +helm install --wait commons-operator stackable-stable/commons-operator --version 25.3.0 +helm install --wait secret-operator stackable-stable/secret-operator --version 25.3.0 +helm install --wait listener-operator stackable-stable/listener-operator --version 25.3.0 +helm install --wait hive-operator stackable-stable/hive-operator --version 25.3.0 # end::helm-install-operators[] echo "Install minio for S3" @@ -75,10 +75,10 @@ if false; then echo "Installing Operators with stackablectl" # tag::stackablectl-install-operators[] stackablectl operator install \ - commons=0.0.0-dev \ - secret=0.0.0-dev \ - listener=0.0.0-dev \ - hive=0.0.0-dev + commons=25.3.0 \ + secret=25.3.0 \ + listener=25.3.0 \ + hive=25.3.0 # end::stackablectl-install-operators[] fi diff --git a/docs/modules/hive/examples/getting_started/install-operator-output.txt b/docs/modules/hive/examples/getting_started/install-operator-output.txt index ec5f72ad..06b992a2 100644 --- a/docs/modules/hive/examples/getting_started/install-operator-output.txt +++ b/docs/modules/hive/examples/getting_started/install-operator-output.txt @@ -1,4 +1,4 @@ -Installed commons=0.0.0-dev operator -Installed secret=0.0.0-dev operator -Installed listener=0.0.0-dev operator -Installed hive=0.0.0-dev operator +Installed commons=25.3.0 operator +Installed secret=25.3.0 operator +Installed listener=25.3.0 operator +Installed hive=25.3.0 operator diff --git a/docs/modules/hive/examples/getting_started/release.yaml b/docs/modules/hive/examples/getting_started/release.yaml index 0bb5223f..06597fda 100644 --- a/docs/modules/hive/examples/getting_started/release.yaml +++ b/docs/modules/hive/examples/getting_started/release.yaml @@ -5,10 +5,10 @@ releases: description: Demo / Test release for Hive getting started guide products: commons: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 hive: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 listener: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 secret: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 diff --git a/docs/templating_vars.yaml b/docs/templating_vars.yaml index 0dac15ec..2521f715 100644 --- a/docs/templating_vars.yaml +++ b/docs/templating_vars.yaml @@ -1,11 +1,11 @@ --- helm: - repo_name: stackable-dev - repo_url: https://repo.stackable.tech/repository/helm-dev/ + repo_name: stackable-stable + repo_url: https://repo.stackable.tech/repository/helm-stable/ versions: - commons: 0.0.0-dev - secret: 0.0.0-dev - listener: 0.0.0-dev - hive: 0.0.0-dev + commons: 25.3.0 + secret: 25.3.0 + listener: 25.3.0 + hive: 25.3.0 minio: 5.4.0 postgresql: 16.5.0 diff --git a/tests/release.yaml b/tests/release.yaml index 5ab0aeca..5edbb44a 100644 --- a/tests/release.yaml +++ b/tests/release.yaml @@ -7,14 +7,14 @@ releases: description: Integration test products: commons: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 secret: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 listener: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 zookeeper: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 hdfs: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 hive: - operatorVersion: 0.0.0-dev + operatorVersion: 25.3.0 diff --git a/tests/templates/kuttl/upgrade/30-assert.yaml.j2 b/tests/templates/kuttl/upgrade/30-assert.yaml.j2 index 425e834d..201c28ea 100644 --- a/tests/templates/kuttl/upgrade/30-assert.yaml.j2 +++ b/tests/templates/kuttl/upgrade/30-assert.yaml.j2 @@ -10,9 +10,9 @@ metadata: labels: {% if test_scenario['values']['hive-old'].find(",") > 0 %} # Yes, this *might* not work with custom images, I'm sorry! - app.kubernetes.io/version: "{{ test_scenario['values']['hive-old'].split(',')[0] }}-stackable0.0.0-dev" + app.kubernetes.io/version: "{{ test_scenario['values']['hive-old'].split(',')[0] }}-stackable25.3.0" {% else %} - app.kubernetes.io/version: "{{ test_scenario['values']['hive-old'] }}-stackable0.0.0-dev" + app.kubernetes.io/version: "{{ test_scenario['values']['hive-old'] }}-stackable25.3.0" {% endif %} status: readyReplicas: 1 diff --git a/tests/templates/kuttl/upgrade/31-assert.yaml.j2 b/tests/templates/kuttl/upgrade/31-assert.yaml.j2 index 558c4d0e..0438fcc9 100644 --- a/tests/templates/kuttl/upgrade/31-assert.yaml.j2 +++ b/tests/templates/kuttl/upgrade/31-assert.yaml.j2 @@ -10,9 +10,9 @@ metadata: labels: {% if test_scenario['values']['hive-old'].find(",") > 0 %} # Yes, this *might* not work with custom images, I'm sorry! - app.kubernetes.io/version: "{{ test_scenario['values']['hive-new'].split(',')[0] }}-stackable0.0.0-dev" + app.kubernetes.io/version: "{{ test_scenario['values']['hive-new'].split(',')[0] }}-stackable25.3.0" {% else %} - app.kubernetes.io/version: "{{ test_scenario['values']['hive-new'] }}-stackable0.0.0-dev" + app.kubernetes.io/version: "{{ test_scenario['values']['hive-new'] }}-stackable25.3.0" {% endif %} status: readyReplicas: 1