Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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]).
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <info@stackable.tech>"]
license = "OSL-3.0"
edition = "2024"
Expand Down
4 changes: 2 additions & 2 deletions deploy/helm/opensearch-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
38 changes: 19 additions & 19 deletions deploy/helm/opensearch-operator/crds/crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ 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: {}
description: Configuration that applies to all roles and role groups
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
Expand All @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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)
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
3 changes: 2 additions & 1 deletion docs/antora.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
name: home
version: "nightly"
version: "25.11"
prerelease: false
Original file line number Diff line number Diff line change
Expand Up @@ -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[]
;;
*)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ A basic `values.yaml` file to deploy OpenSearch Dashboards with this chart might
opensearchHosts: https://opensearch.<opensearch-namespace>.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
Expand Down
8 changes: 4 additions & 4 deletions docs/templating_vars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
13 changes: 10 additions & 3 deletions rust/operator-binary/src/controller/validate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@ mod tests {

use super::{ErrorDiscriminants, validate};
use crate::{
built_info,
controller::{ContextNames, ValidatedCluster, ValidatedLogging, ValidatedOpenSearchConfig},
crd::{
NodeRoles,
Expand All @@ -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,
},
Expand Down
8 changes: 4 additions & 4 deletions tests/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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