Skip to content

Commit eb52267

Browse files
committed
feat: remove hard-coded cluster.local from the domain name
1 parent e0aaa27 commit eb52267

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

rust/operator-binary/src/hbase_controller.rs

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ pub async fn reconcile_hbase(
438438
)?;
439439
let rg_statefulset = build_rolegroup_statefulset(
440440
hbase,
441+
&client.kubernetes_cluster_info,
441442
&hbase_role,
442443
&rolegroup,
443444
rolegroup_config,
@@ -764,6 +765,7 @@ fn build_rolegroup_service(
764765
/// The [`Pod`](`stackable_operator::k8s_openapi::api::core::v1::Pod`)s are accessible through the corresponding [`Service`] (from [`build_rolegroup_service`]).
765766
fn build_rolegroup_statefulset(
766767
hbase: &HbaseCluster,
768+
cluster_info: &KubernetesClusterInfo,
767769
hbase_role: &HbaseRole,
768770
rolegroup_ref: &RoleGroupRef<HbaseCluster>,
769771
rolegroup_config: &HashMap<PropertyNameKind, BTreeMap<String, String>>,
@@ -858,15 +860,7 @@ fn build_rolegroup_statefulset(
858860
.command(vec!["/stackable/hbase/bin/hbase-entrypoint.sh".to_string()])
859861
.args(vec![
860862
hbase_role.cli_role_name(),
861-
format!(
862-
"{}.{}.svc.cluster.local",
863-
rolegroup_ref.object_name(),
864-
hbase
865-
.metadata
866-
.namespace
867-
.clone()
868-
.context(ObjectHasNoNamespaceSnafu)?
869-
),
863+
hbase_service_domain_name(hbase, rolegroup_ref, cluster_info)?,
870864
hbase.service_port(hbase_role).to_string(),
871865
])
872866
.add_env_vars(merged_env)
@@ -1159,6 +1153,28 @@ fn validate_cr(hbase: &HbaseCluster) -> Result<()> {
11591153
Ok(())
11601154
}
11611155

1156+
/// Build the domain name of an HBase service pod.
1157+
/// The hbase-entrypoint.sh script uses this to build the fully qualified name of a pod
1158+
/// by appending it to the `HOSTNAME` environment variable.
1159+
/// This name is required by the RegionMover to function properly.
1160+
fn hbase_service_domain_name(
1161+
hbase: &HbaseCluster,
1162+
rolegroup_ref: &RoleGroupRef<HbaseCluster>,
1163+
cluster_info: &KubernetesClusterInfo,
1164+
) -> Result<String, Error> {
1165+
let hbase_cluster_name = rolegroup_ref.object_name();
1166+
let pod_namespace = hbase
1167+
.metadata
1168+
.namespace
1169+
.clone()
1170+
.context(ObjectHasNoNamespaceSnafu)?;
1171+
let cluster_domain = &cluster_info.cluster_domain;
1172+
1173+
Ok(format!(
1174+
"{hbase_cluster_name}.{pod_namespace}.svc.{cluster_domain}"
1175+
))
1176+
}
1177+
11621178
#[cfg(test)]
11631179
mod test {
11641180
use rstest::rstest;

0 commit comments

Comments
 (0)