From 12cf277b60fd89e406370be56c39617e645a7aba Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 21 Jan 2026 13:47:05 +0100 Subject: [PATCH 1/8] docs: Update supported versions for 26.3 --- docs/modules/druid/partials/supported-versions.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/druid/partials/supported-versions.adoc b/docs/modules/druid/partials/supported-versions.adoc index 30139c92..3dc1d95a 100644 --- a/docs/modules/druid/partials/supported-versions.adoc +++ b/docs/modules/druid/partials/supported-versions.adoc @@ -2,6 +2,6 @@ // This is a separate file, since it is used by both the direct Druid documentation, and the overarching // Stackable Platform documentation. -- 34.0.0 -- 33.0.0 (deprecated) +- 35.0.1 +- 34.0.0 (deprecated) - 30.0.1 (LTS) From 4a10655cc4402be4bb69f8e187d97c651ec48af1 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 21 Jan 2026 13:48:17 +0100 Subject: [PATCH 2/8] test: Add 35.0.1, remove 33.0.0 from test definition --- tests/test-definition.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-definition.yaml b/tests/test-definition.yaml index 473459b0..6bc0c2fe 100644 --- a/tests/test-definition.yaml +++ b/tests/test-definition.yaml @@ -14,13 +14,13 @@ dimensions: - name: druid values: - 30.0.1 - - 33.0.0 - 34.0.0 + - 35.0.1 # To use a custom image, add a comma and the full name after the product version # - 30.0.0,oci.stackable.tech/sdp/druid:30.0.0-stackable0.0.0-dev - name: druid-latest values: - - 34.0.0 + - 35.0.1 # To use a custom image, add a comma and the full name after the product version # - 30.0.0,oci.stackable.tech/sdp/druid:30.0.0-stackable0.0.0-dev - name: zookeeper From 50407cbe556bb9df0eeb25c52be70bcc4b4cff1b Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 21 Jan 2026 13:49:18 +0100 Subject: [PATCH 3/8] chore: Update Druid version from 34.0.0 to 35.0.1 --- docs/modules/druid/examples/getting_started/druid.yaml | 2 +- docs/modules/druid/examples/getting_started/druid.yaml.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/druid/examples/getting_started/druid.yaml b/docs/modules/druid/examples/getting_started/druid.yaml index e7762c54..7106458b 100644 --- a/docs/modules/druid/examples/getting_started/druid.yaml +++ b/docs/modules/druid/examples/getting_started/druid.yaml @@ -5,7 +5,7 @@ metadata: name: simple-druid spec: image: - productVersion: 34.0.0 + productVersion: 35.0.1 clusterConfig: zookeeperConfigMapName: simple-druid-znode deepStorage: diff --git a/docs/modules/druid/examples/getting_started/druid.yaml.j2 b/docs/modules/druid/examples/getting_started/druid.yaml.j2 index e7762c54..7106458b 100644 --- a/docs/modules/druid/examples/getting_started/druid.yaml.j2 +++ b/docs/modules/druid/examples/getting_started/druid.yaml.j2 @@ -5,7 +5,7 @@ metadata: name: simple-druid spec: image: - productVersion: 34.0.0 + productVersion: 35.0.1 clusterConfig: zookeeperConfigMapName: simple-druid-znode deepStorage: From 5f8b2365079e59297a494fe634f6daae32cda913 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 23 Jan 2026 09:02:18 +0100 Subject: [PATCH 4/8] chore: Bump CPU request and limit of router container Since Druid 35.0.1 the router container failed to start up due to the following error: 'Insufficient configured threads'. The CPU resources are now bumped to be in line with other containers, like the historical and broker containers. --- rust/operator-binary/src/crd/resource.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/operator-binary/src/crd/resource.rs b/rust/operator-binary/src/crd/resource.rs index 4e97a613..90054d5a 100644 --- a/rust/operator-binary/src/crd/resource.rs +++ b/rust/operator-binary/src/crd/resource.rs @@ -232,8 +232,8 @@ pub static COORDINATOR_RESOURCES: LazyLock< pub static ROUTER_RESOURCES: LazyLock> = LazyLock::new(|| ResourcesFragment { cpu: CpuLimitsFragment { - min: Some(Quantity("100m".to_owned())), - max: Some(Quantity("400m".to_owned())), + min: Some(Quantity("300m".to_owned())), + max: Some(Quantity("1200m".to_owned())), }, memory: MemoryLimitsFragment { limit: Some(Quantity("512Mi".to_owned())), From 6887bfe99a7fe8dacd3426a310890601b24740c5 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 23 Jan 2026 09:08:17 +0100 Subject: [PATCH 5/8] test: Correct URL due to TLS SNI errors --- tests/templates/kuttl/commons/healthcheck.py | 5 ++--- tests/templates/kuttl/hdfs-deep-storage/05-assert.yaml | 2 +- tests/templates/kuttl/ingestion-no-s3-ext/05-assert.yaml | 2 +- tests/templates/kuttl/ingestion-s3-ext/05-assert.yaml | 2 +- tests/templates/kuttl/s3-deep-storage/11-assert.yaml | 2 +- tests/templates/kuttl/smoke/70-assert.yaml | 2 +- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/tests/templates/kuttl/commons/healthcheck.py b/tests/templates/kuttl/commons/healthcheck.py index 2f2e36dd..12c8690f 100755 --- a/tests/templates/kuttl/commons/healthcheck.py +++ b/tests/templates/kuttl/commons/healthcheck.py @@ -14,6 +14,7 @@ ) druid_cluster_name = sys.argv[1] + namespace = sys.argv[2] druid_role_ports = { "broker": 8282, @@ -24,9 +25,7 @@ } for role, port in druid_role_ports.items(): - url = ( - f"https://{druid_cluster_name}-{role}-default-headless:{port}/status/health" - ) + url = f"https://{druid_cluster_name}-{role}-default-headless.{namespace}.svc.cluster.local:{port}/status/health" count = 1 # As this script is intended to be executed by Kuttl which is in charge of overall test timeouts it is ok diff --git a/tests/templates/kuttl/hdfs-deep-storage/05-assert.yaml b/tests/templates/kuttl/hdfs-deep-storage/05-assert.yaml index 07a25600..7e7ace39 100644 --- a/tests/templates/kuttl/hdfs-deep-storage/05-assert.yaml +++ b/tests/templates/kuttl/hdfs-deep-storage/05-assert.yaml @@ -2,5 +2,5 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert commands: - - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py derby-druid + - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py derby-druid $NAMESPACE timeout: 300 diff --git a/tests/templates/kuttl/ingestion-no-s3-ext/05-assert.yaml b/tests/templates/kuttl/ingestion-no-s3-ext/05-assert.yaml index 07a25600..7e7ace39 100644 --- a/tests/templates/kuttl/ingestion-no-s3-ext/05-assert.yaml +++ b/tests/templates/kuttl/ingestion-no-s3-ext/05-assert.yaml @@ -2,5 +2,5 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert commands: - - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py derby-druid + - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py derby-druid $NAMESPACE timeout: 300 diff --git a/tests/templates/kuttl/ingestion-s3-ext/05-assert.yaml b/tests/templates/kuttl/ingestion-s3-ext/05-assert.yaml index 07a25600..7e7ace39 100644 --- a/tests/templates/kuttl/ingestion-s3-ext/05-assert.yaml +++ b/tests/templates/kuttl/ingestion-s3-ext/05-assert.yaml @@ -2,5 +2,5 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert commands: - - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py derby-druid + - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py derby-druid $NAMESPACE timeout: 300 diff --git a/tests/templates/kuttl/s3-deep-storage/11-assert.yaml b/tests/templates/kuttl/s3-deep-storage/11-assert.yaml index fecce717..eb998c56 100644 --- a/tests/templates/kuttl/s3-deep-storage/11-assert.yaml +++ b/tests/templates/kuttl/s3-deep-storage/11-assert.yaml @@ -2,5 +2,5 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert commands: - - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py druid-s3-deep-storage + - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py druid-s3-deep-storage $NAMESPACE timeout: 300 diff --git a/tests/templates/kuttl/smoke/70-assert.yaml b/tests/templates/kuttl/smoke/70-assert.yaml index d0c0e99e..5383b809 100644 --- a/tests/templates/kuttl/smoke/70-assert.yaml +++ b/tests/templates/kuttl/smoke/70-assert.yaml @@ -2,5 +2,5 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert commands: - - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py druid + - script: kubectl exec -n $NAMESPACE checks-0 -- python /tmp/healthcheck.py druid $NAMESPACE timeout: 300 From b69c47612be7077b30940eaf834a5908b112c420 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 23 Jan 2026 09:16:27 +0100 Subject: [PATCH 6/8] chore: Bump examples/test resources to 35.0.1 --- examples/psql-s3/psql-s3-druid-cluster.yaml | 2 +- examples/psql/psql-hdfs-druid-cluster.yaml | 2 +- examples/tls/tls-druid-cluster.yaml | 2 +- .../test/resources/crd/resource_merge/druid_cluster.yaml | 2 +- .../test/resources/crd/resource_merge/segment_cache.yaml | 2 +- .../test/resources/crd/role_service/druid_cluster.yaml | 2 +- .../test/resources/druid_controller/segment_cache.yaml | 2 +- .../operator-binary/test/resources/druid_controller/simple.yaml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/psql-s3/psql-s3-druid-cluster.yaml b/examples/psql-s3/psql-s3-druid-cluster.yaml index 9510aa9d..74dddd5b 100644 --- a/examples/psql-s3/psql-s3-druid-cluster.yaml +++ b/examples/psql-s3/psql-s3-druid-cluster.yaml @@ -45,7 +45,7 @@ metadata: name: psql-s3-druid spec: image: - productVersion: 31.0.1 + productVersion: 35.0.1 clusterConfig: deepStorage: s3: diff --git a/examples/psql/psql-hdfs-druid-cluster.yaml b/examples/psql/psql-hdfs-druid-cluster.yaml index 997e88d5..682173e2 100644 --- a/examples/psql/psql-hdfs-druid-cluster.yaml +++ b/examples/psql/psql-hdfs-druid-cluster.yaml @@ -56,7 +56,7 @@ metadata: name: psql-druid spec: image: - productVersion: 31.0.1 + productVersion: 35.0.1 clusterConfig: deepStorage: hdfs: diff --git a/examples/tls/tls-druid-cluster.yaml b/examples/tls/tls-druid-cluster.yaml index c73d3492..bb61f509 100644 --- a/examples/tls/tls-druid-cluster.yaml +++ b/examples/tls/tls-druid-cluster.yaml @@ -78,7 +78,7 @@ metadata: name: derby-druid spec: image: - productVersion: 31.0.1 + productVersion: 35.0.1 clusterConfig: authentication: - authenticationClass: druid-mtls-authentication-class diff --git a/rust/operator-binary/test/resources/crd/resource_merge/druid_cluster.yaml b/rust/operator-binary/test/resources/crd/resource_merge/druid_cluster.yaml index 82a6dd08..8b75a020 100644 --- a/rust/operator-binary/test/resources/crd/resource_merge/druid_cluster.yaml +++ b/rust/operator-binary/test/resources/crd/resource_merge/druid_cluster.yaml @@ -7,7 +7,7 @@ metadata: uid: test-resource-merge spec: image: - productVersion: 30.0.0 + productVersion: 35.0.1 clusterConfig: deepStorage: hdfs: diff --git a/rust/operator-binary/test/resources/crd/resource_merge/segment_cache.yaml b/rust/operator-binary/test/resources/crd/resource_merge/segment_cache.yaml index 81935544..adc53f2d 100644 --- a/rust/operator-binary/test/resources/crd/resource_merge/segment_cache.yaml +++ b/rust/operator-binary/test/resources/crd/resource_merge/segment_cache.yaml @@ -7,7 +7,7 @@ metadata: uid: test-resource-merge spec: image: - productVersion: 30.0.0 + productVersion: 35.0.1 clusterConfig: deepStorage: hdfs: diff --git a/rust/operator-binary/test/resources/crd/role_service/druid_cluster.yaml b/rust/operator-binary/test/resources/crd/role_service/druid_cluster.yaml index 3a34a8b9..ffb9a6a9 100644 --- a/rust/operator-binary/test/resources/crd/role_service/druid_cluster.yaml +++ b/rust/operator-binary/test/resources/crd/role_service/druid_cluster.yaml @@ -7,7 +7,7 @@ metadata: uid: test-uid spec: image: - productVersion: 30.0.0 + productVersion: 35.0.1 clusterConfig: deepStorage: hdfs: diff --git a/rust/operator-binary/test/resources/druid_controller/segment_cache.yaml b/rust/operator-binary/test/resources/druid_controller/segment_cache.yaml index 0abe681a..dde8c761 100644 --- a/rust/operator-binary/test/resources/druid_controller/segment_cache.yaml +++ b/rust/operator-binary/test/resources/druid_controller/segment_cache.yaml @@ -7,7 +7,7 @@ metadata: uid: test-resource-merge spec: image: - productVersion: 30.0.0 + productVersion: 35.0.1 clusterConfig: deepStorage: s3: diff --git a/rust/operator-binary/test/resources/druid_controller/simple.yaml b/rust/operator-binary/test/resources/druid_controller/simple.yaml index c933a6b3..672bb2a2 100644 --- a/rust/operator-binary/test/resources/druid_controller/simple.yaml +++ b/rust/operator-binary/test/resources/druid_controller/simple.yaml @@ -7,7 +7,7 @@ metadata: uid: test-uid spec: image: - productVersion: 30.0.0 + productVersion: 35.0.1 clusterConfig: deepStorage: hdfs: From 93de48be1756f97e482a25305309d751139bd274 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 23 Jan 2026 09:54:15 +0100 Subject: [PATCH 7/8] docs: Update resource requirements --- .../druid/pages/usage-guide/resources-and-storage.adoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc b/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc index ef4d1f25..a37894fd 100644 --- a/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc +++ b/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc @@ -11,8 +11,10 @@ include::home:concepts:stackable_resource_requests.adoc[] A minimal HA setup consisting of 2 Pods of each role has the following https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/[resource requirements]: -* `4700m` CPU request -* `13800m` CPU limit +// This is calculated using the following formula: sum(cpumin_druid) * 2 + sum(cpumin_hdfs) + sum(cpumin_zookeeper) + sum(cpumin_operators) +* `5100m` CPU request +// This is calculated using the following formula: sum(cpumax_druid) * 2 + sum(cpumax_hdfs) + sum(cpumax_zookeeper) + sum(cpumax_operators) +* `15600m` CPU limit * `12144Mi` memory request and limit Of course, additional services require additional resources. @@ -35,8 +37,8 @@ spec: config: resources: cpu: - min: 100m - max: 400m + min: 300m + max: 1200m memory: limit: 512Mi historical: From 39212f204c606f7b23b5acaf75601f865fd467a5 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 23 Jan 2026 11:47:13 +0100 Subject: [PATCH 8/8] docs: Update comment about resource calculation --- .../druid/pages/usage-guide/resources-and-storage.adoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc b/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc index a37894fd..4ceda14b 100644 --- a/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc +++ b/docs/modules/druid/pages/usage-guide/resources-and-storage.adoc @@ -11,9 +11,10 @@ include::home:concepts:stackable_resource_requests.adoc[] A minimal HA setup consisting of 2 Pods of each role has the following https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/[resource requirements]: -// This is calculated using the following formula: sum(cpumin_druid) * 2 + sum(cpumin_hdfs) + sum(cpumin_zookeeper) + sum(cpumin_operators) +// We are not sure how these values were calculated in the first place, but we assume the are calculated like this: +// The sum of resources listed below + HDFS resources + ZK resources + some overhead (maybe for operators). +// The amount of resources for HDFS and ZK are taken from their individual documentation pages. * `5100m` CPU request -// This is calculated using the following formula: sum(cpumax_druid) * 2 + sum(cpumax_hdfs) + sum(cpumax_zookeeper) + sum(cpumax_operators) * `15600m` CPU limit * `12144Mi` memory request and limit