diff --git a/CHANGELOG.md b/CHANGELOG.md index f772b97a..051a8e3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,12 +18,17 @@ - Fix a longstanding problem of including empty `categories`, `shortNames` and `additionalPrinterColumns` in the CRDs, which could cause problems with GitOps tools (e.g. ArgoCD) reporting a diff in the custom resources. See [our internal issue](https://github.com/stackabletech/hdfs-operator/issues/626) and [the fix](https://github.com/kube-rs/kube/pull/2042) for details ([#792]). +- BREAKING: The app.kubernetes.io/managed-by label value changed from hbase.stackable.com_hbasecluster to + hbase.stackable.tech_hbasecluster, aligning with all other operators ([#795]). +- BREAKING: The rest-server listener PVC template now carries only the unversioned selector labels. + Existing rest-server StatefulSets must be deleted once before the new operator can reconcile them ([#795]). [#776]: https://github.com/stackabletech/hbase-operator/pull/776 [#782]: https://github.com/stackabletech/hbase-operator/pull/782 [#786]: https://github.com/stackabletech/hbase-operator/pull/786 [#787]: https://github.com/stackabletech/hbase-operator/pull/787 [#792]: https://github.com/stackabletech/hbase-operator/pull/792 +[#795]: https://github.com/stackabletech/hbase-operator/pull/795 ## [26.7.0] - 2026-07-21 diff --git a/rust/operator-binary/src/controller/build/mod.rs b/rust/operator-binary/src/controller/build/mod.rs index aa735900..ad76660b 100644 --- a/rust/operator-binary/src/controller/build/mod.rs +++ b/rust/operator-binary/src/controller/build/mod.rs @@ -245,7 +245,7 @@ mod tests { ("app.kubernetes.io/instance", "my-hbase".to_string()), ( "app.kubernetes.io/managed-by", - "hbase.stackable.com_hbasecluster".to_string(), + "hbase.stackable.tech_hbasecluster".to_string(), ), ("app.kubernetes.io/name", "hbase".to_string()), ("app.kubernetes.io/role-group", "none".to_string()), diff --git a/rust/operator-binary/src/controller/build/resource/statefulset.rs b/rust/operator-binary/src/controller/build/resource/statefulset.rs index ce189e7a..db926cd6 100644 --- a/rust/operator-binary/src/controller/build/resource/statefulset.rs +++ b/rust/operator-binary/src/controller/build/resource/statefulset.rs @@ -19,6 +19,7 @@ use stackable_operator::{ }, apimachinery::pkg::{apis::meta::v1::LabelSelector, util::intstr::IntOrString}, }, + kvp::Label, product_logging, v2::{ builder::pod::container::{EnvVarName, EnvVarSet, new_container_builder}, @@ -299,8 +300,15 @@ pub fn build_rolegroup_statefulset( )); } + // Listener PVC labels should stay stable across upgrades and so should not + // include the version field (see HDFS for a similar pattern). + let mut unversioned_labels = cluster.role_group_selector(hbase_role, role_group_name); + // Neither vendor nor managed-by are included in role_group_selector + // labels: vendor is a required and so add it back. + unversioned_labels.insert(Label::stackable_vendor()); + let listener_pvc = - super::listener::build_listener_pvc(hbase_role, merged_config, &recommended_labels); + super::listener::build_listener_pvc(hbase_role, merged_config, &unversioned_labels); if let Some(listener_volume) = super::listener::build_listener_volume(hbase_role, merged_config, &recommended_labels) diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index b398c860..0535b077 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -44,7 +44,7 @@ pub mod security; pub const APP_NAME: &str = "hbase"; pub const FIELD_MANAGER: &str = "hbase-operator"; -pub const OPERATOR_NAME: &str = "hbase.stackable.com"; +pub const OPERATOR_NAME: &str = "hbase.stackable.tech"; // This constant is hard coded in hbase-entrypoint.sh // You need to change it there too. diff --git a/tests/templates/kuttl/smoke/30-assert.yaml.j2 b/tests/templates/kuttl/smoke/30-assert.yaml.j2 index 067fc721..7dbf9d9b 100644 --- a/tests/templates/kuttl/smoke/30-assert.yaml.j2 +++ b/tests/templates/kuttl/smoke/30-assert.yaml.j2 @@ -11,7 +11,7 @@ metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -46,7 +46,7 @@ metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default prometheus.io/scrape: "true" @@ -73,7 +73,7 @@ metadata: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -108,7 +108,7 @@ metadata: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default prometheus.io/scrape: "true" @@ -135,7 +135,7 @@ metadata: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -170,7 +170,7 @@ metadata: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default prometheus.io/scrape: "true" @@ -199,7 +199,7 @@ metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default restarter.stackable.tech/enabled: "true" @@ -224,7 +224,7 @@ spec: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -406,7 +406,7 @@ spec: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -430,7 +430,7 @@ metadata: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default restarter.stackable.tech/enabled: "true" @@ -450,7 +450,7 @@ spec: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -641,7 +641,7 @@ spec: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -665,7 +665,7 @@ metadata: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default restarter.stackable.tech/enabled: "true" @@ -690,7 +690,7 @@ spec: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -871,7 +871,6 @@ spec: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -893,7 +892,7 @@ metadata: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: discovery stackable.tech/vendor: Stackable @@ -910,7 +909,7 @@ metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -927,7 +926,7 @@ metadata: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -944,7 +943,7 @@ metadata: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -960,7 +959,7 @@ kind: ServiceAccount metadata: labels: app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase name: test-hbase-serviceaccount ownerReferences: @@ -974,7 +973,7 @@ kind: RoleBinding metadata: labels: app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase name: test-hbase-rolebinding ownerReferences: @@ -1023,7 +1022,7 @@ metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -1056,7 +1055,7 @@ metadata: labels: app.kubernetes.io/component: regionserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster + app.kubernetes.io/managed-by: hbase.stackable.tech_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable @@ -1089,7 +1088,6 @@ metadata: labels: app.kubernetes.io/component: restserver app.kubernetes.io/instance: test-hbase - app.kubernetes.io/managed-by: hbase.stackable.com_hbasecluster app.kubernetes.io/name: hbase app.kubernetes.io/role-group: default stackable.tech/vendor: Stackable