From ff9c64c936466e18b61212904062cc7a08fba9c5 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 16 Jul 2026 16:28:24 +0200 Subject: [PATCH] chore: Release 26.7.0-rc1 Signed-off-by: Techassi --- CHANGELOG.md | 2 + Cargo.lock | 2 +- Cargo.nix | 2 +- Cargo.toml | 2 +- deploy/helm/hive-operator/Chart.yaml | 4 +- docs/antora.yml | 3 +- .../getting_started/getting_started.sh | 16 ++--- .../install-operator-output.txt | 8 +-- .../examples/getting_started/release.yaml | 8 +-- docs/templating_vars.yaml | 8 +-- extra/crds.yaml | 72 +++++++++---------- tests/release.yaml | 14 ++-- .../templates/kuttl/upgrade/30-assert.yaml.j2 | 4 +- .../templates/kuttl/upgrade/31-assert.yaml.j2 | 4 +- 14 files changed, 76 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ded1e44c..914667d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [26.7.0-rc1] - 2026-07-16 + ### Added - BREAKING: Add required CLI argument and env var to set the image repository used to construct final product image names: `IMAGE_REPOSITORY` (`--image-repository`), eg. `oci.example.org/my/namespace` ([#702]). diff --git a/Cargo.lock b/Cargo.lock index 3a873926..dbd3c3a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3038,7 +3038,7 @@ dependencies = [ [[package]] name = "stackable-hive-operator" -version = "0.0.0-dev" +version = "26.7.0-rc1" dependencies = [ "anyhow", "built", diff --git a/Cargo.nix b/Cargo.nix index 7d3c42ac..61226c43 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -9990,7 +9990,7 @@ rec { }; "stackable-hive-operator" = rec { crateName = "stackable-hive-operator"; - version = "0.0.0-dev"; + version = "26.7.0-rc1"; edition = "2024"; crateBin = [ { diff --git a/Cargo.toml b/Cargo.toml index f9c4df01..88c33fac 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 = "26.7.0-rc1" authors = ["Stackable GmbH "] license = "OSL-3.0" edition = "2024" diff --git a/deploy/helm/hive-operator/Chart.yaml b/deploy/helm/hive-operator/Chart.yaml index 52296097..f56f685c 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: "26.7.0-rc1" +appVersion: "26.7.0-rc1" description: The Stackable Operator for Apache Hive home: https://github.com/stackabletech/hive-operator maintainers: diff --git a/docs/antora.yml b/docs/antora.yml index d522680b..931469da 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -1,3 +1,4 @@ --- name: home -version: "nightly" +version: "26.7" +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 308ffb65..294ed0d1 100755 --- a/docs/modules/hive/examples/getting_started/getting_started.sh +++ b/docs/modules/hive/examples/getting_started/getting_started.sh @@ -29,10 +29,10 @@ case "$1" in "helm") echo "Installing Operators with Helm" # tag::helm-install-operators[] -helm install --wait commons-operator oci://oci.stackable.tech/sdp-charts/commons-operator --version 0.0.0-dev -helm install --wait secret-operator oci://oci.stackable.tech/sdp-charts/secret-operator --version 0.0.0-dev -helm install --wait listener-operator oci://oci.stackable.tech/sdp-charts/listener-operator --version 0.0.0-dev -helm install --wait hive-operator oci://oci.stackable.tech/sdp-charts/hive-operator --version 0.0.0-dev +helm install --wait commons-operator oci://oci.stackable.tech/sdp-charts/commons-operator --version 26.7.0-rc1 +helm install --wait secret-operator oci://oci.stackable.tech/sdp-charts/secret-operator --version 26.7.0-rc1 +helm install --wait listener-operator oci://oci.stackable.tech/sdp-charts/listener-operator --version 26.7.0-rc1 +helm install --wait hive-operator oci://oci.stackable.tech/sdp-charts/hive-operator --version 26.7.0-rc1 # 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=26.7.0-rc1 \ + secret=26.7.0-rc1 \ + listener=26.7.0-rc1 \ + hive=26.7.0-rc1 # 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..e9a32bab 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=26.7.0-rc1 operator +Installed secret=26.7.0-rc1 operator +Installed listener=26.7.0-rc1 operator +Installed hive=26.7.0-rc1 operator diff --git a/docs/modules/hive/examples/getting_started/release.yaml b/docs/modules/hive/examples/getting_started/release.yaml index 0bb5223f..e803daa7 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: 26.7.0-rc1 hive: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 listener: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 secret: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 diff --git a/docs/templating_vars.yaml b/docs/templating_vars.yaml index 231a9385..ee372775 100644 --- a/docs/templating_vars.yaml +++ b/docs/templating_vars.yaml @@ -3,9 +3,9 @@ helm: repo_name: sdp-charts repo_url: oci.stackable.tech versions: - commons: 0.0.0-dev - secret: 0.0.0-dev - listener: 0.0.0-dev - hive: 0.0.0-dev + commons: 26.7.0-rc1 + secret: 26.7.0-rc1 + listener: 26.7.0-rc1 + hive: 26.7.0-rc1 minio: 5.4.0 postgresql: 16.5.0 diff --git a/extra/crds.yaml b/extra/crds.yaml index 09afc814..64574df8 100644 --- a/extra/crds.yaml +++ b/extra/crds.yaml @@ -24,7 +24,7 @@ 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/). + [operator documentation](https://docs.stackable.tech/home/26.7/hive/). properties: clusterConfig: description: |- @@ -32,7 +32,7 @@ spec: 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/hive/usage-guide/security). + description: Settings related to user [authentication](https://docs.stackable.tech/home/26.7/hive/usage-guide/security). nullable: true properties: kerberos: @@ -53,20 +53,20 @@ spec: authorization: description: |- Authorization options for Hive. - Learn more in the [Hive authorization usage guide](https://docs.stackable.tech/home/nightly/hive/usage-guide/security#authorization). + Learn more in the [Hive authorization usage guide](https://docs.stackable.tech/home/26.7/hive/usage-guide/security#authorization). nullable: true properties: opa: description: |- - Configure the OPA stacklet [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery) + Configure the OPA stacklet [discovery ConfigMap](https://docs.stackable.tech/home/26.7/concepts/service_discovery) and the name of the Rego package containing your authorization rules. - Consult the [OPA authorization documentation](https://docs.stackable.tech/home/nightly/concepts/opa) + Consult the [OPA authorization documentation](https://docs.stackable.tech/home/26.7/concepts/opa) to learn how to deploy Rego authorization rules with OPA. nullable: true properties: configMapName: description: |- - The [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery) + The [discovery ConfigMap](https://docs.stackable.tech/home/26.7/concepts/service_discovery) for the OPA stacklet that should be used for authorization requests. type: string package: @@ -83,9 +83,9 @@ spec: properties: configMap: description: |- - Name of the [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery) + Name of the [discovery ConfigMap](https://docs.stackable.tech/home/26.7/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 + See also the [Stackable Operator for HDFS](https://docs.stackable.tech/home/26.7/hdfs/) to learn more about setting up an HDFS cluster. maxLength: 253 minLength: 1 @@ -204,7 +204,7 @@ spec: 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. + S3Connection object. Read the [S3 concept documentation](https://docs.stackable.tech/home/26.7/concepts/s3) to learn more. nullable: true oneOf: - required: @@ -215,7 +215,7 @@ spec: inline: description: |- S3 connection definition as a resource. - Learn more on the [S3 concept documentation](https://docs.stackable.tech/home/nightly/concepts/s3). + Learn more on the [S3 concept documentation](https://docs.stackable.tech/home/26.7/concepts/s3). properties: accessStyle: default: VirtualHosted @@ -230,14 +230,14 @@ spec: 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) + In the most cases a [SecretClass](https://docs.stackable.tech/home/26.7/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). + [Scope](https://docs.stackable.tech/home/26.7/secret-operator/scope) of the + [SecretClass](https://docs.stackable.tech/home/26.7/secret-operator/secretclass). nullable: true properties: listenerVolumes: @@ -270,7 +270,7 @@ spec: type: array type: object secretClass: - description: '[SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) providing the requested secrets.' + description: '[SecretClass](https://docs.stackable.tech/home/26.7/secret-operator/secretclass) providing the requested secrets.' type: string required: - secretClass @@ -329,7 +329,7 @@ spec: properties: secretClass: description: |- - Name of the [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) which will provide the CA certificate. + Name of the [SecretClass](https://docs.stackable.tech/home/26.7/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 @@ -354,9 +354,9 @@ spec: type: object vectorAggregatorConfigMapName: description: |- - Name of the Vector aggregator [discovery ConfigMap](https://docs.stackable.tech/home/nightly/concepts/service_discovery). + Name of the Vector aggregator [discovery ConfigMap](https://docs.stackable.tech/home/26.7/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) + Follow the [logging tutorial](https://docs.stackable.tech/home/26.7/tutorials/logging-vector-aggregator) to learn how to configure log aggregation with Vector. maxLength: 253 minLength: 1 @@ -371,7 +371,7 @@ spec: reconciliationPaused: false stopped: false description: |- - [Cluster operations](https://docs.stackable.tech/home/nightly/concepts/operations/cluster_operations) + [Cluster operations](https://docs.stackable.tech/home/26.7/concepts/operations/cluster_operations) properties, allow stopping the product instance as well as pausing reconciliation. properties: reconciliationPaused: @@ -406,7 +406,7 @@ spec: 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) + Consult the [Product image selection documentation](https://docs.stackable.tech/home/26.7/concepts/product_image_selection) for details. properties: custom: @@ -465,7 +465,7 @@ spec: 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). + [Roles and role group concept documentation](https://docs.stackable.tech/home/26.7/concepts/roles-and-role-groups). nullable: true properties: cliOverrides: @@ -484,7 +484,7 @@ spec: podAntiAffinity: null description: |- These configuration settings control - [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). + [Pod placement](https://docs.stackable.tech/home/26.7/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) @@ -516,7 +516,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/26.7/concepts/logging). properties: containers: description: Log configuration per container. @@ -801,7 +801,7 @@ spec: 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) + [config overrides documentation](https://docs.stackable.tech/home/26.7/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. properties: @@ -826,7 +826,7 @@ spec: `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) + [environment variable overrides documentation](https://docs.stackable.tech/home/26.7/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 @@ -837,7 +837,7 @@ spec: 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) + Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/26.7/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: @@ -866,7 +866,7 @@ spec: [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#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) + [Pod overrides documentation](https://docs.stackable.tech/home/26.7/concepts/overrides#pod-overrides) for more information. type: object x-kubernetes-preserve-unknown-fields: true @@ -880,7 +880,7 @@ spec: properties: listenerClass: default: cluster-internal - description: This field controls which [ListenerClass](https://docs.stackable.tech/home/nightly/listener-operator/listenerclass.html) is used to expose the metastore. + description: This field controls which [ListenerClass](https://docs.stackable.tech/home/26.7/listener-operator/listenerclass.html) is used to expose the metastore. maxLength: 253 minLength: 1 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ @@ -896,7 +896,7 @@ spec: 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). + [allowed Pod disruptions documentation](https://docs.stackable.tech/home/26.7/concepts/operations/pod_disruptions). properties: enabled: default: true @@ -936,7 +936,7 @@ spec: podAntiAffinity: null description: |- These configuration settings control - [Pod placement](https://docs.stackable.tech/home/nightly/concepts/operations/pod_placement). + [Pod placement](https://docs.stackable.tech/home/26.7/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) @@ -968,7 +968,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/26.7/concepts/logging). properties: containers: description: Log configuration per container. @@ -1253,7 +1253,7 @@ spec: 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) + [config overrides documentation](https://docs.stackable.tech/home/26.7/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. properties: @@ -1278,7 +1278,7 @@ spec: `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) + [environment variable overrides documentation](https://docs.stackable.tech/home/26.7/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 @@ -1289,7 +1289,7 @@ spec: 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) + Please read on the [JVM argument overrides documentation](https://docs.stackable.tech/home/26.7/concepts/overrides#jvm-argument-overrides) for details on the usage. properties: add: @@ -1318,7 +1318,7 @@ spec: [PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#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) + [Pod overrides documentation](https://docs.stackable.tech/home/26.7/concepts/overrides#pod-overrides) for more information. type: object x-kubernetes-preserve-unknown-fields: true @@ -1342,7 +1342,7 @@ spec: names it `default`. Read the - [roles and role groups concept documentation](https://docs.stackable.tech/home/nightly/concepts/roles-and-role-groups) + [roles and role groups concept documentation](https://docs.stackable.tech/home/26.7/concepts/roles-and-role-groups) for more details. type: object required: @@ -1356,7 +1356,7 @@ spec: List entries are arbitrary YAML objects, which need to be valid Kubernetes objects. - Read the [Object overrides documentation](https://docs.stackable.tech/home/nightly/concepts/overrides#object-overrides) + Read the [Object overrides documentation](https://docs.stackable.tech/home/26.7/concepts/overrides#object-overrides) for more information. items: type: object diff --git a/tests/release.yaml b/tests/release.yaml index 225e77af..94c2d9ad 100644 --- a/tests/release.yaml +++ b/tests/release.yaml @@ -7,16 +7,16 @@ releases: description: Integration test products: commons: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 secret: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 listener: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 zookeeper: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 hdfs: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 hive: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 opa: - operatorVersion: 0.0.0-dev + operatorVersion: 26.7.0-rc1 diff --git a/tests/templates/kuttl/upgrade/30-assert.yaml.j2 b/tests/templates/kuttl/upgrade/30-assert.yaml.j2 index 409bcd1e..479dee60 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] }}-stackable26.7.0-rc1" {% else %} - app.kubernetes.io/version: "{{ test_scenario['values']['hive-old'] }}-stackable0.0.0-dev" + app.kubernetes.io/version: "{{ test_scenario['values']['hive-old'] }}-stackable26.7.0-rc1" {% 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..2da8d76e 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] }}-stackable26.7.0-rc1" {% else %} - app.kubernetes.io/version: "{{ test_scenario['values']['hive-new'] }}-stackable0.0.0-dev" + app.kubernetes.io/version: "{{ test_scenario['values']['hive-new'] }}-stackable26.7.0-rc1" {% endif %} status: readyReplicas: 1