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 @@ -25,6 +25,7 @@ All notable changes to this project will be documented in this file.
ListenerClass for the discovery service.
- Configuration parameter `spec.nodes.roleGroups.<role-group-name>.config.discoveryServiceExposed`
added to expose a role-group via the discovery service.
- Add support for OpenSearch 3.4.0 ([#108]).

### Changed

Expand All @@ -43,6 +44,7 @@ All notable changes to this project will be documented in this file.
[#97]: https://github.com/stackabletech/opensearch-operator/pull/97
[#100]: https://github.com/stackabletech/opensearch-operator/pull/100
[#107]: https://github.com/stackabletech/opensearch-operator/pull/107
[#108]: https://github.com/stackabletech/opensearch-operator/pull/108

## [25.11.0] - 2025-11-07

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ kubectl create secret generic opensearch-credentials \

helm install opensearch-dashboards opensearch-dashboards \
--repo https://opensearch-project.github.io/helm-charts \
--version 3.1.0 \
--version 3.4.0 \
--values opensearch-dashboards-values.yaml \
--wait
# end::opensearch-dashboards[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ kubectl create secret generic opensearch-credentials \

helm install opensearch-dashboards opensearch-dashboards \
--repo https://opensearch-project.github.io/helm-charts \
--version 3.1.0 \
--version 3.4.0 \
--values opensearch-dashboards-values.yaml \
--wait
# end::opensearch-dashboards[]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
image:
repository: oci.stackable.tech/sdp/opensearch-dashboards
tag: 3.1.0-stackable0.0.0-dev
tag: 3.4.0-stackable0.0.0-dev
serviceAccount:
create: false
name: simple-opensearch-serviceaccount
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
image:
repository: oci.stackable.tech/sdp/opensearch-dashboards
tag: 3.1.0-stackable{{ versions.opensearch }}
tag: 3.4.0-stackable{{ versions.opensearch }}
serviceAccount:
create: false
name: simple-opensearch-serviceaccount
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
name: simple-opensearch
spec:
image:
productVersion: 3.1.0
productVersion: 3.4.0
nodes:
roleConfig:
discoveryServiceListenerClass: external-stable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ plugins:
<1> Commas in list entries cannot be escaped.
<2> The brackets must be escaped in `configOverrides` as follows: `"[\"role1\", \"role2\", \"role3\"]"`
<3> Indexed flat lists are considered "legacy" in the OpenSearch code.
// see https://github.com/opensearch-project/OpenSearch/blob/3.1.0/server/src/main/java/org/opensearch/common/settings/Settings.java#L1049
// see https://github.com/opensearch-project/OpenSearch/blob/3.4.0/server/src/main/java/org/opensearch/common/settings/Settings.java#L1049

Other types can be set as strings in `configOverrides` because OpenSearch parses them:

Expand Down
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: null # <1>
image: # <2>
repository: oci.stackable.tech/sdp/opensearch-dashboards
tag: 3.1.0-stackable0.0.0-dev
tag: 3.4.0-stackable0.0.0-dev
serviceAccount:
create: false
name: opensearch-serviceaccount # <3>
Expand Down Expand Up @@ -92,7 +92,7 @@ After the values are adjusted according to your deployment, especially `opensear
----
helm install opensearch-dashboards opensearch-dashboards \
--repo https://opensearch-project.github.io/helm-charts \
--version 3.1.0 \
--version 3.4.0 \
--values opensearch-dashboards-values.yaml \
--wait
----
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: null # <1>
image: # <2>
repository: oci.stackable.tech/sdp/opensearch-dashboards
tag: 3.1.0-stackable{{ versions.opensearch }}
tag: 3.4.0-stackable{{ versions.opensearch }}
serviceAccount:
create: false
name: opensearch-serviceaccount # <3>
Expand Down Expand Up @@ -92,7 +92,7 @@ After the values are adjusted according to your deployment, especially `opensear
----
helm install opensearch-dashboards opensearch-dashboards \
--repo https://opensearch-project.github.io/helm-charts \
--version 3.1.0 \
--version 3.4.0 \
--values opensearch-dashboards-values.yaml \
--wait
----
2 changes: 1 addition & 1 deletion docs/modules/opensearch/pages/usage-guide/security.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ metadata:
name: opensearch
spec:
image:
productVersion: 3.1.0
productVersion: 3.4.0
clusterConfig:
tls:
serverSecretClass: tls # <1>
Expand Down
1 change: 1 addition & 0 deletions docs/modules/opensearch/partials/supported-versions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
// Stackable Platform documentation.

- 3.1.0 (LTS)
- 3.4.0
8 changes: 4 additions & 4 deletions rust/operator-binary/src/controller.rs
Original file line number Diff line number Diff line change
Expand Up @@ -506,14 +506,14 @@ mod tests {
fn validated_cluster() -> ValidatedCluster {
ValidatedCluster::new(
ResolvedProductImage {
product_version: "3.1.0".to_owned(),
app_version_label_value: LabelValue::from_str("3.1.0-stackable0.0.0-dev")
product_version: "3.4.0".to_owned(),
app_version_label_value: LabelValue::from_str("3.4.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(),
image: "oci.stackable.tech/sdp/opensearch:3.4.0-stackable0.0.0-dev".to_string(),
image_pull_policy: "Always".to_owned(),
pull_secrets: None,
},
ProductVersion::from_str_unsafe("3.1.0"),
ProductVersion::from_str_unsafe("3.4.0"),
ClusterName::from_str_unsafe("my-opensearch"),
NamespaceName::from_str_unsafe("default"),
uuid!("e6ac237d-a6d4-43a1-8135-f36506110912"),
Expand Down
8 changes: 4 additions & 4 deletions rust/operator-binary/src/controller/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -175,14 +175,14 @@ mod tests {
fn validated_cluster() -> ValidatedCluster {
ValidatedCluster::new(
ResolvedProductImage {
product_version: "3.1.0".to_owned(),
app_version_label_value: LabelValue::from_str("3.1.0-stackable0.0.0-dev")
product_version: "3.4.0".to_owned(),
app_version_label_value: LabelValue::from_str("3.4.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(),
image: "oci.stackable.tech/sdp/opensearch:3.4.0-stackable0.0.0-dev".to_string(),
image_pull_policy: "Always".to_owned(),
pull_secrets: None,
},
ProductVersion::from_str_unsafe("3.1.0"),
ProductVersion::from_str_unsafe("3.4.0"),
ClusterName::from_str_unsafe("my-opensearch"),
NamespaceName::from_str_unsafe("default"),
uuid!("e6ac237d-a6d4-43a1-8135-f36506110912"),
Expand Down
14 changes: 7 additions & 7 deletions rust/operator-binary/src/controller/build/node_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ impl NodeConfig {
pub fn value_as_bool(value: &Value) -> Option<bool> {
value.as_bool().or(
// OpenSearch parses the strings "true" and "false" as boolean, see
// https://github.com/opensearch-project/OpenSearch/blob/3.1.0/libs/common/src/main/java/org/opensearch/common/Booleans.java#L45-L84
// https://github.com/opensearch-project/OpenSearch/blob/3.4.0/libs/common/src/main/java/org/opensearch/common/Booleans.java#L45-L84
value
.as_str()
.and_then(|value| FromStr::from_str(value).ok()),
Expand Down Expand Up @@ -386,7 +386,7 @@ impl NodeConfig {
/// Please read the following sections for an explanation of these restrictions.
///
/// This configuration setting replaces the setting `cluster.initial_master_nodes`, see
/// <https://github.com/opensearch-project/OpenSearch/blob/3.1.0/server/src/main/java/org/opensearch/cluster/coordination/ClusterBootstrapService.java#L79-L93>.
/// <https://github.com/opensearch-project/OpenSearch/blob/3.4.0/server/src/main/java/org/opensearch/cluster/coordination/ClusterBootstrapService.java#L79-L93>.
///
/// This setting is required on nodes with the cluster-manager node role on a multi-node
/// cluster. Otherwise the bootstrapping of the cluster fails and all pods report:
Expand All @@ -396,7 +396,7 @@ impl NodeConfig {
/// error is thrown:
/// > setting [cluster.initial_cluster_manager_nodes] is not allowed when [discovery.type] is set to [single-node]
///
/// see <https://github.com/opensearch-project/OpenSearch/blob/3.1.0/server/src/main/java/org/opensearch/cluster/coordination/ClusterBootstrapService.java#L126-L136>
/// see <https://github.com/opensearch-project/OpenSearch/blob/3.4.0/server/src/main/java/org/opensearch/cluster/coordination/ClusterBootstrapService.java#L126-L136>
///
/// This setting does not seem to have an effect on nodes without the cluster-manager node
/// role. However, as it is recommended (see the Elasticsearch documentation below) to not set
Expand Down Expand Up @@ -534,7 +534,7 @@ mod tests {
}

fn node_config(test_config: TestConfig) -> NodeConfig {
let image: ProductImage = serde_json::from_str(r#"{"productVersion": "3.1.0"}"#)
let image: ProductImage = serde_json::from_str(r#"{"productVersion": "3.4.0"}"#)
.expect("should be a valid ProductImage");

let role_group_name = RoleGroupName::from_str_unsafe("data");
Expand Down Expand Up @@ -584,10 +584,10 @@ mod tests {

let cluster = ValidatedCluster::new(
ResolvedProductImage {
product_version: "3.1.0".to_owned(),
app_version_label_value: LabelValue::from_str("3.1.0-stackable0.0.0-dev")
product_version: "3.4.0".to_owned(),
app_version_label_value: LabelValue::from_str("3.4.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(),
image: "oci.stackable.tech/sdp/opensearch:3.4.0-stackable0.0.0-dev".to_string(),
image_pull_policy: "Always".to_owned(),
pull_secrets: None,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ fn log4j2_console_appender_config(
"PatternLayout".to_owned(),
),
// Same as the default layout pattern of the console appender
// see https://github.com/opensearch-project/OpenSearch/blob/3.1.0/distribution/src/config/log4j2.properties#L17
// see https://github.com/opensearch-project/OpenSearch/blob/3.4.0/distribution/src/config/log4j2.properties#L17
(
"appender.CONSOLE.layout.pattern".to_owned(),
"[%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n".to_owned(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ tests:
{"type": "server", "timestamp": "2025-10-01T12:47:28,363Z", "level": "INFO", "component": "o.o.c.c.JoinHelper", "cluster.name": "opensearch", "node.name": "opensearch-nodes-cluster-manager-0", "message": "failed to join {opensearch-nodes-cluster-manager-0}{sk-r0P_TTYuPqaamTFbjKg}{fIRSMbQYSe2nKQZ_sPn4kg}{10.244.0.20}{10.244.0.20:9300}{m}{shard_indexing_pressure_enabled=true} with JoinRequest{sourceNode={opensearch-nodes-cluster-manager-0}{sk-r0P_TTYuPqaamTFbjKg}{fIRSMbQYSe2nKQZ_sPn4kg}{10.244.0.20}{10.244.0.20:9300}{m}{shard_indexing_pressure_enabled=true}, minimumTerm=0, optionalJoin=Optional[Join{term=1, lastAcceptedTerm=0, lastAcceptedVersion=0, sourceNode={opensearch-nodes-cluster-manager-0}{sk-r0P_TTYuPqaamTFbjKg}{fIRSMbQYSe2nKQZ_sPn4kg}{10.244.0.20}{10.244.0.20:9300}{m}{shard_indexing_pressure_enabled=true}, targetNode={opensearch-nodes-cluster-manager-0}{sk-r0P_TTYuPqaamTFbjKg}{fIRSMbQYSe2nKQZ_sPn4kg}{10.244.0.20}{10.244.0.20:9300}{m}{shard_indexing_pressure_enabled=true}}]}",
"stacktrace": ["org.opensearch.transport.RemoteTransportException: [opensearch-nodes-cluster-manager-0][10.244.0.20:9300][internal:cluster/coordination/join]",
"Caused by: org.opensearch.cluster.coordination.CoordinationStateRejectedException: became follower",
"at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.lambda$$close$$3(JoinHelper.java:648) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.lambda$$close$$3(JoinHelper.java:648) ~[opensearch-3.4.0.jar:3.4.0]",
"at java.base/java.util.HashMap$$Values.forEach(HashMap.java:1073) ~[?:?]",
"at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.close(JoinHelper.java:648) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.cluster.coordination.Coordinator.becomeFollower(Coordinator.java:829) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.cluster.coordination.Coordinator.onFollowerCheckRequest(Coordinator.java:405) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.cluster.coordination.FollowersChecker$$2.doRun(FollowersChecker.java:250) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.common.util.concurrent.ThreadContext$$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:975) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.1.0.jar:3.1.0]",
"at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.close(JoinHelper.java:648) ~[opensearch-3.4.0.jar:3.4.0]",
"at org.opensearch.cluster.coordination.Coordinator.becomeFollower(Coordinator.java:829) ~[opensearch-3.4.0.jar:3.4.0]",
"at org.opensearch.cluster.coordination.Coordinator.onFollowerCheckRequest(Coordinator.java:405) ~[opensearch-3.4.0.jar:3.4.0]",
"at org.opensearch.cluster.coordination.FollowersChecker$$2.doRun(FollowersChecker.java:250) ~[opensearch-3.4.0.jar:3.4.0]",
"at org.opensearch.common.util.concurrent.ThreadContext$$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:975) ~[opensearch-3.4.0.jar:3.4.0]",
"at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.4.0.jar:3.4.0]",
"at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]",
"at java.base/java.util.concurrent.ThreadPoolExecutor$$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]",
"at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]"] }
Expand All @@ -75,14 +75,14 @@ tests:
\n\
org.opensearch.transport.RemoteTransportException: [opensearch-nodes-cluster-manager-0][10.244.0.20:9300][internal:cluster/coordination/join]\n\
Caused by: org.opensearch.cluster.coordination.CoordinationStateRejectedException: became follower\n\
at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.lambda$$close$$3(JoinHelper.java:648) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.lambda$$close$$3(JoinHelper.java:648) ~[opensearch-3.4.0.jar:3.4.0]\n\
at java.base/java.util.HashMap$$Values.forEach(HashMap.java:1073) ~[?:?]\n\
at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.close(JoinHelper.java:648) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.cluster.coordination.Coordinator.becomeFollower(Coordinator.java:829) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.cluster.coordination.Coordinator.onFollowerCheckRequest(Coordinator.java:405) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.cluster.coordination.FollowersChecker$$2.doRun(FollowersChecker.java:250) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.common.util.concurrent.ThreadContext$$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:975) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.1.0.jar:3.1.0]\n\
at org.opensearch.cluster.coordination.JoinHelper$$CandidateJoinAccumulator.close(JoinHelper.java:648) ~[opensearch-3.4.0.jar:3.4.0]\n\
at org.opensearch.cluster.coordination.Coordinator.becomeFollower(Coordinator.java:829) ~[opensearch-3.4.0.jar:3.4.0]\n\
at org.opensearch.cluster.coordination.Coordinator.onFollowerCheckRequest(Coordinator.java:405) ~[opensearch-3.4.0.jar:3.4.0]\n\
at org.opensearch.cluster.coordination.FollowersChecker$$2.doRun(FollowersChecker.java:250) ~[opensearch-3.4.0.jar:3.4.0]\n\
at org.opensearch.common.util.concurrent.ThreadContext$$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:975) ~[opensearch-3.4.0.jar:3.4.0]\n\
at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52) ~[opensearch-3.4.0.jar:3.4.0]\n\
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]\n\
at java.base/java.util.concurrent.ThreadPoolExecutor$$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]\n\
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]",
Expand Down
Loading