diff --git a/CHANGELOG.md b/CHANGELOG.md index 8339dfa1..26e2100d 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 - The lifetime of auto generated TLS certificates is now configurable with the role and roleGroup diff --git a/Cargo.lock b/Cargo.lock index 4e065f48..ce06a5ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2385,7 +2385,7 @@ dependencies = [ [[package]] name = "stackable-zookeeper-operator" -version = "0.0.0-dev" +version = "25.3.0" dependencies = [ "anyhow", "built", diff --git a/Cargo.nix b/Cargo.nix index 039cd6c3..18c99894 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -7523,7 +7523,7 @@ rec { }; "stackable-zookeeper-operator" = rec { crateName = "stackable-zookeeper-operator"; - version = "0.0.0-dev"; + version = "25.3.0"; edition = "2021"; crateBin = [ { diff --git a/Cargo.toml b/Cargo.toml index ba02cb31..53eaa87b 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/zookeeper-operator/Chart.yaml b/deploy/helm/zookeeper-operator/Chart.yaml index 884bd34c..8311e304 100644 --- a/deploy/helm/zookeeper-operator/Chart.yaml +++ b/deploy/helm/zookeeper-operator/Chart.yaml @@ -1,8 +1,8 @@ --- apiVersion: v2 name: zookeeper-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 ZooKeeper home: https://github.com/stackabletech/zookeeper-operator maintainers: diff --git a/deploy/helm/zookeeper-operator/crds/crds.yaml b/deploy/helm/zookeeper-operator/crds/crds.yaml index 1ecc3a6a..9a3d9569 100644 --- a/deploy/helm/zookeeper-operator/crds/crds.yaml +++ b/deploy/helm/zookeeper-operator/crds/crds.yaml @@ -23,7 +23,7 @@ spec: description: Auto-generated derived type for ZookeeperClusterSpec via `CustomResource` properties: spec: - description: A ZooKeeper cluster stacklet. This resource is managed by the Stackable operator for Apache ZooKeeper. 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/zookeeper/). + description: A ZooKeeper cluster stacklet. This resource is managed by the Stackable operator for Apache ZooKeeper. 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/zookeeper/). properties: clusterConfig: default: @@ -36,7 +36,7 @@ spec: properties: authentication: default: [] - description: Authentication settings for ZooKeeper like mTLS authentication. Read more in the [authentication usage guide](https://docs.stackable.tech/home/nightly/zookeeper/usage_guide/authentication). + description: Authentication settings for ZooKeeper like mTLS authentication. Read more in the [authentication usage guide](https://docs.stackable.tech/home/25.3/zookeeper/usage_guide/authentication). items: properties: authenticationClass: @@ -62,7 +62,7 @@ spec: * external-unstable: Use a NodePort 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 @@ -71,27 +71,27 @@ spec: default: quorumSecretClass: tls serverSecretClass: tls - description: TLS encryption settings for ZooKeeper (server, quorum). Read more in the [encryption usage guide](https://docs.stackable.tech/home/nightly/zookeeper/usage_guide/encryption). + description: TLS encryption settings for ZooKeeper (server, quorum). Read more in the [encryption usage guide](https://docs.stackable.tech/home/25.3/zookeeper/usage_guide/encryption). nullable: true properties: quorumSecretClass: default: tls description: |- - The [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) to use for internal quorum communication. Use mutual verification between Zookeeper Nodes (mandatory). This setting controls: - Which cert the servers should use to authenticate themselves against other servers - Which ca.crt to use when validating the other server + The [SecretClass](https://docs.stackable.tech/home/25.3/secret-operator/secretclass) to use for internal quorum communication. Use mutual verification between Zookeeper Nodes (mandatory). This setting controls: - Which cert the servers should use to authenticate themselves against other servers - Which ca.crt to use when validating the other server Defaults to `tls` type: string serverSecretClass: default: tls description: |- - The [SecretClass](https://docs.stackable.tech/home/nightly/secret-operator/secretclass) to use for client connections. This setting controls: - If TLS encryption is used at all - Which cert the servers should use to authenticate themselves against the client + The [SecretClass](https://docs.stackable.tech/home/25.3/secret-operator/secretclass) to use for client connections. This setting controls: - If TLS encryption is used at all - Which cert the servers should use to authenticate themselves against the client Defaults to `tls`. nullable: true 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 type: object @@ -99,7 +99,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 @@ -120,7 +120,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` @@ -159,7 +159,7 @@ spec: type: string type: object servers: - 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: @@ -176,7 +176,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) @@ -213,7 +213,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: @@ -403,20 +403,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: [] @@ -439,7 +439,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: @@ -458,7 +458,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 @@ -489,7 +489,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) @@ -526,7 +526,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: @@ -716,20 +716,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: [] @@ -752,7 +752,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: @@ -860,7 +860,7 @@ spec: `ZookeeperZnode` is *not* designed to manage the contents of this ZNode. Instead, it should be used to create a chroot for an installation of an application to work inside. Initializing the contents is the responsibility of the application. - You can learn more about this in the [Isolating clients with ZNodes usage guide](https://docs.stackable.tech/home/nightly/zookeeper/usage_guide/isolating_clients_with_znodes). + You can learn more about this in the [Isolating clients with ZNodes usage guide](https://docs.stackable.tech/home/25.3/zookeeper/usage_guide/isolating_clients_with_znodes). properties: clusterRef: default: 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/zookeeper/examples/getting_started/code/getting_started.sh b/docs/modules/zookeeper/examples/getting_started/code/getting_started.sh index 6f8b6cfc..0ff22c0c 100755 --- a/docs/modules/zookeeper/examples/getting_started/code/getting_started.sh +++ b/docs/modules/zookeeper/examples/getting_started/code/getting_started.sh @@ -21,27 +21,27 @@ case "$1" in "helm") echo "Adding 'stackable-dev' 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 zookeeper-operator stackable-dev/zookeeper-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 zookeeper-operator stackable-stable/zookeeper-operator --version 25.3.0 # end::helm-install-operators[] ;; "stackablectl") 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 \ - zookeeper=0.0.0-dev + commons=25.3.0 \ + secret=25.3.0 \ + listener=25.3.0 \ + zookeeper=25.3.0 # end::stackablectl-install-operators[] ;; *) @@ -70,7 +70,7 @@ zkCli_ls() { # tag::zkcli-ls[] kubectl run my-pod \ --stdin --tty --quiet --restart=Never \ - --image oci.stackable.tech/sdp/zookeeper:3.9.3-stackable0.0.0-dev -- \ + --image oci.stackable.tech/sdp/zookeeper:3.9.3-stackable25.3.0 -- \ bin/zkCli.sh -server simple-zk-server-default:2282 ls / > /dev/null && \ kubectl logs my-pod && \ kubectl delete pods my-pod diff --git a/docs/modules/zookeeper/examples/getting_started/code/install_output.txt b/docs/modules/zookeeper/examples/getting_started/code/install_output.txt index dedac3a2..d1689e60 100644 --- a/docs/modules/zookeeper/examples/getting_started/code/install_output.txt +++ b/docs/modules/zookeeper/examples/getting_started/code/install_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 zookeeper=0.0.0-dev operator +Installed commons=25.3.0 operator +Installed secret=25.3.0 operator +Installed listener=25.3.0 operator +Installed zookeeper=25.3.0 operator diff --git a/docs/templating_vars.yaml b/docs/templating_vars.yaml index b711ca78..9abcbebb 100644 --- a/docs/templating_vars.yaml +++ b/docs/templating_vars.yaml @@ -1,9 +1,9 @@ --- 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 - zookeeper: 0.0.0-dev + commons: 25.3.0 + secret: 25.3.0 + listener: 25.3.0 + zookeeper: 25.3.0 diff --git a/tests/release.yaml b/tests/release.yaml index f82aac67..ad0f5ed4 100644 --- a/tests/release.yaml +++ b/tests/release.yaml @@ -7,10 +7,10 @@ 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