diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ccb0ef..61e6c12 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.11.0-rc1] - 2025-11-06 + ### Added - Add end-of-support checker which can be controlled with environment variables and CLI arguments ([#38]). diff --git a/Cargo.lock b/Cargo.lock index a90f194..4f91313 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2522,7 +2522,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-opensearch-operator" -version = "0.0.0-dev" +version = "25.11.0-rc1" dependencies = [ "built", "clap", diff --git a/Cargo.nix b/Cargo.nix index b04229e..62aaa76 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -8189,7 +8189,7 @@ rec { }; "stackable-opensearch-operator" = rec { crateName = "stackable-opensearch-operator"; - version = "0.0.0-dev"; + version = "25.11.0-rc1"; edition = "2024"; crateBin = [ { diff --git a/Cargo.toml b/Cargo.toml index dd9b180..416aa4a 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.11.0-rc1" authors = ["Stackable GmbH "] license = "OSL-3.0" edition = "2024" diff --git a/deploy/helm/opensearch-operator/Chart.yaml b/deploy/helm/opensearch-operator/Chart.yaml index 7fe3094..79439bb 100644 --- a/deploy/helm/opensearch-operator/Chart.yaml +++ b/deploy/helm/opensearch-operator/Chart.yaml @@ -1,8 +1,8 @@ --- apiVersion: v2 name: opensearch-operator -version: "0.0.0-dev" -appVersion: "0.0.0-dev" +version: "25.11.0-rc1" +appVersion: "25.11.0-rc1" description: The Stackable Operator for OpenSearch home: https://github.com/stackabletech/opensearch-operator maintainers: diff --git a/deploy/helm/opensearch-operator/crds/crds.yaml b/deploy/helm/opensearch-operator/crds/crds.yaml index 12f3da0..586ab83 100644 --- a/deploy/helm/opensearch-operator/crds/crds.yaml +++ b/deploy/helm/opensearch-operator/crds/crds.yaml @@ -26,7 +26,7 @@ spec: description: |- An OpenSearch cluster stacklet. This resource is managed by the Stackable operator for OpenSearch. 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/opensearch/). + generates in the [operator documentation](https://docs.stackable.tech/home/25.11/opensearch/). properties: clusterConfig: default: {} @@ -34,9 +34,9 @@ spec: properties: 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/25.11/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/25.11/tutorials/logging-vector-aggregator) to learn how to configure log aggregation with Vector. maxLength: 253 minLength: 1 @@ -48,7 +48,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/25.11/concepts/operations/cluster_operations) properties, allow stopping the product instance as well as pausing reconciliation. properties: reconciliationPaused: @@ -83,7 +83,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/25.11/concepts/product_image_selection) for details. properties: custom: @@ -135,7 +135,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/25.11/concepts/roles-and-role-groups). properties: cliOverrides: additionalProperties: @@ -153,7 +153,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/25.11/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) @@ -196,7 +196,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.11/concepts/logging). properties: containers: additionalProperties: @@ -290,7 +290,7 @@ spec: Roles of the OpenSearch node. Consult the [node roles - documentation](https://docs.stackable.tech/home/nightly/opensearch/usage-guide/node-roles) for details. + documentation](https://docs.stackable.tech/home/25.11/opensearch/usage-guide/node-roles) for details. items: enum: - cluster_manager @@ -413,7 +413,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/25.11/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 @@ -425,7 +425,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/25.11/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 @@ -436,7 +436,7 @@ spec: [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) + [Pod overrides documentation](https://docs.stackable.tech/home/25.11/concepts/overrides#pod-overrides) for more information. type: object x-kubernetes-preserve-unknown-fields: true @@ -458,7 +458,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/25.11/concepts/operations/pod_disruptions). properties: enabled: default: true @@ -501,7 +501,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/25.11/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) @@ -544,7 +544,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.11/concepts/logging). properties: containers: additionalProperties: @@ -638,7 +638,7 @@ spec: Roles of the OpenSearch node. Consult the [node roles - documentation](https://docs.stackable.tech/home/nightly/opensearch/usage-guide/node-roles) for details. + documentation](https://docs.stackable.tech/home/25.11/opensearch/usage-guide/node-roles) for details. items: enum: - cluster_manager @@ -761,7 +761,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/25.11/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 @@ -773,7 +773,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/25.11/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 @@ -784,7 +784,7 @@ spec: [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) + [Pod overrides documentation](https://docs.stackable.tech/home/25.11/concepts/overrides#pod-overrides) for more information. type: object x-kubernetes-preserve-unknown-fields: true diff --git a/docs/antora.yml b/docs/antora.yml index d522680..5e6e676 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -1,3 +1,4 @@ --- name: home -version: "nightly" +version: "25.11" +prerelease: false diff --git a/docs/modules/opensearch/examples/getting_started/getting_started.sh b/docs/modules/opensearch/examples/getting_started/getting_started.sh index 3bccc1f..614212d 100755 --- a/docs/modules/opensearch/examples/getting_started/getting_started.sh +++ b/docs/modules/opensearch/examples/getting_started/getting_started.sh @@ -23,20 +23,20 @@ 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 opensearch-operator oci://oci.stackable.tech/sdp-charts/opensearch-operator --version 0.0.0-dev +helm install --wait commons-operator oci://oci.stackable.tech/sdp-charts/commons-operator --version 25.11.0-rc1 +helm install --wait secret-operator oci://oci.stackable.tech/sdp-charts/secret-operator --version 25.11.0-rc1 +helm install --wait listener-operator oci://oci.stackable.tech/sdp-charts/listener-operator --version 25.11.0-rc1 +helm install --wait opensearch-operator oci://oci.stackable.tech/sdp-charts/opensearch-operator --version 25.11.0-rc1 # 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 \ - opensearch=0.0.0-dev + commons=25.11.0-rc1 \ + secret=25.11.0-rc1 \ + listener=25.11.0-rc1 \ + opensearch=25.11.0-rc1 # end::stackablectl-install-operators[] ;; *) diff --git a/docs/modules/opensearch/examples/getting_started/install_output.txt b/docs/modules/opensearch/examples/getting_started/install_output.txt index 52cd670..0f38b82 100644 --- a/docs/modules/opensearch/examples/getting_started/install_output.txt +++ b/docs/modules/opensearch/examples/getting_started/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 opensearch=0.0.0-dev operator +Installed commons=25.11.0-rc1 operator +Installed secret=25.11.0-rc1 operator +Installed listener=25.11.0-rc1 operator +Installed opensearch=25.11.0-rc1 operator diff --git a/docs/modules/opensearch/pages/usage-guide/opensearch-dashboards.adoc b/docs/modules/opensearch/pages/usage-guide/opensearch-dashboards.adoc index 632fe64..7964377 100644 --- a/docs/modules/opensearch/pages/usage-guide/opensearch-dashboards.adoc +++ b/docs/modules/opensearch/pages/usage-guide/opensearch-dashboards.adoc @@ -13,7 +13,7 @@ A basic `values.yaml` file to deploy OpenSearch Dashboards with this chart might opensearchHosts: https://opensearch..svc.cluster.local:9200 # <1> image: repository: oci.stackable.tech/sdp/opensearch-dashboards # <2> - tag: 3.1.0-stackable0.0.0-dev + tag: 3.1.0-stackable25.11.0-rc1 serviceAccount: # <3> create: false name: opensearch-serviceaccount diff --git a/docs/templating_vars.yaml b/docs/templating_vars.yaml index 91114a9..a24196f 100644 --- a/docs/templating_vars.yaml +++ b/docs/templating_vars.yaml @@ -3,7 +3,7 @@ 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 - opensearch: 0.0.0-dev + commons: 25.11.0-rc1 + secret: 25.11.0-rc1 + listener: 25.11.0-rc1 + opensearch: 25.11.0-rc1 diff --git a/rust/operator-binary/src/controller/validate.rs b/rust/operator-binary/src/controller/validate.rs index e3dd839..c23ff48 100644 --- a/rust/operator-binary/src/controller/validate.rs +++ b/rust/operator-binary/src/controller/validate.rs @@ -270,6 +270,7 @@ mod tests { use super::{ErrorDiscriminants, validate}; use crate::{ + built_info, controller::{ContextNames, ValidatedCluster, ValidatedLogging, ValidatedOpenSearchConfig}, crd::{ NodeRoles, @@ -294,9 +295,15 @@ mod tests { Some(ValidatedCluster::new( ResolvedProductImage { product_version: "3.1.0".to_owned(), - app_version_label_value: LabelValue::from_str("3.1.0-stackable0.0.0-dev") - .expect("should be a valid label value"), - image: "oci.stackable.tech/sdp/opensearch:3.1.0-stackable0.0.0-dev".to_string(), + app_version_label_value: LabelValue::from_str(&format!( + "3.1.0-stackable{pkg_version}", + pkg_version = built_info::PKG_VERSION + )) + .expect("should be a valid label value"), + image: format!( + "oci.stackable.tech/sdp/opensearch:3.1.0-stackable{pkg_version}", + pkg_version = built_info::PKG_VERSION + ), image_pull_policy: "Always".to_owned(), pull_secrets: None, }, diff --git a/tests/release.yaml b/tests/release.yaml index c877cd4..58367b2 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.11.0-rc1 secret: - operatorVersion: 0.0.0-dev + operatorVersion: 25.11.0-rc1 listener: - operatorVersion: 0.0.0-dev + operatorVersion: 25.11.0-rc1 opensearch: - operatorVersion: 0.0.0-dev + operatorVersion: 25.11.0-rc1