Skip to content

Commit 61345c4

Browse files
committed
constants. constants everywhere.
1 parent 882fb32 commit 61345c4

File tree

3 files changed

+40
-21
lines changed

3 files changed

+40
-21
lines changed

rust/operator-binary/src/config/jvm.rs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ use stackable_operator::{
66
role_utils::JvmArgumentOverrides,
77
};
88

9+
use crate::security::kerberos::KERBEROS_CONTAINER_PATH;
10+
911
const JVM_HEAP_FACTOR: f32 = 0.8;
1012

1113
#[derive(Snafu, Debug)]
@@ -29,7 +31,9 @@ pub fn construct_global_jvm_args(kerberos_enabled: bool) -> String {
2931
let mut jvm_args = Vec::new();
3032

3133
if kerberos_enabled {
32-
jvm_args.push("-Djava.security.krb5.conf=/stackable/kerberos/krb5.conf".to_owned());
34+
jvm_args.push(format!(
35+
"-Djava.security.krb5.conf={KERBEROS_CONTAINER_PATH}/krb5.conf"
36+
));
3337
}
3438

3539
// We do *not* add user overrides to the global JVM args, but only the role specific JVM arguments.
@@ -76,7 +80,9 @@ pub fn construct_role_specific_jvm_args(
7680
format!("-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar={metrics_port}:/stackable/jmx/{hdfs_role}.yaml")
7781
]);
7882
if kerberos_enabled {
79-
jvm_args.push("-Djava.security.krb5.conf=/stackable/kerberos/krb5.conf".to_string());
83+
jvm_args.push(format!(
84+
"-Djava.security.krb5.conf={KERBEROS_CONTAINER_PATH}/krb5.conf"
85+
));
8086
}
8187

8288
let operator_generated = JvmArgumentOverrides::new_with_only_additions(jvm_args);
@@ -102,7 +108,7 @@ mod tests {
102108
assert_eq!(construct_global_jvm_args(false), "");
103109
assert_eq!(
104110
construct_global_jvm_args(true),
105-
"-Djava.security.krb5.conf=/stackable/kerberos/krb5.conf"
111+
format!("-Djava.security.krb5.conf={KERBEROS_CONTAINER_PATH}/krb5.conf")
106112
);
107113
}
108114

@@ -172,14 +178,15 @@ mod tests {
172178

173179
assert_eq!(
174180
jvm_config,
175-
"-Xms34406m \
176-
-Djava.security.properties=/stackable/config/security.properties \
177-
-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8183:/stackable/jmx/namenode.yaml \
178-
-Djava.security.krb5.conf=/stackable/kerberos/krb5.conf \
179-
-Dhttps.proxyHost=proxy.my.corp \
180-
-Djava.net.preferIPv4Stack=true \
181-
-Xmx40000m \
182-
-Dhttps.proxyPort=1234"
181+
format!(
182+
"-Xms34406m \
183+
-Djava.security.properties=/stackable/config/security.properties \
184+
-javaagent:/stackable/jmx/jmx_prometheus_javaagent.jar=8183:/stackable/jmx/namenode.yaml \
185+
-Djava.security.krb5.conf={KERBEROS_CONTAINER_PATH}/krb5.conf \
186+
-Dhttps.proxyHost=proxy.my.corp \
187+
-Djava.net.preferIPv4Stack=true \
188+
-Xmx40000m \
189+
-Dhttps.proxyPort=1234")
183190
);
184191
}
185192

rust/operator-binary/src/container.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ use crate::{
7878
MAX_WAIT_NAMENODES_LOG_FILE_SIZE, MAX_ZKFC_LOG_FILE_SIZE, STACKABLE_LOG_DIR,
7979
WAIT_FOR_NAMENODES_LOG4J_CONFIG_FILE, ZKFC_LOG4J_CONFIG_FILE,
8080
},
81+
security::kerberos::KERBEROS_CONTAINER_PATH,
8182
DATANODE_ROOT_DATA_DIR_PREFIX, LOG4J_PROPERTIES,
8283
};
8384

@@ -801,8 +802,7 @@ wait_for_termination $!
801802

802803
// Command to export `KERBEROS_REALM` env var to default real from krb5.conf, e.g. `CLUSTER.LOCAL`
803804
fn export_kerberos_real_env_var_command() -> String {
804-
"export KERBEROS_REALM=$(grep -oP 'default_realm = \\K.*' /stackable/kerberos/krb5.conf)\n"
805-
.to_string()
805+
format!("export KERBEROS_REALM=$(grep -oP 'default_realm = \\K.*' {KERBEROS_CONTAINER_PATH}/krb5.conf)\n")
806806
}
807807

808808
/// Command to `kinit` a ticket using the principal created for the specified hdfs role
@@ -822,8 +822,8 @@ wait_for_termination $!
822822
);
823823
Ok(formatdoc!(
824824
r###"
825-
echo "Getting ticket for {principal}" from /stackable/kerberos/keytab
826-
kinit "{principal}" -kt /stackable/kerberos/keytab
825+
echo "Getting ticket for {principal}" from {KERBEROS_CONTAINER_PATH}/keytab
826+
kinit "{principal}" -kt {KERBEROS_CONTAINER_PATH}/keytab
827827
"###,
828828
))
829829
}
@@ -892,15 +892,15 @@ wait_for_termination $!
892892
"KRB5_CONFIG".to_string(),
893893
EnvVar {
894894
name: "KRB5_CONFIG".to_string(),
895-
value: Some("/stackable/kerberos/krb5.conf".to_string()),
895+
value: Some(format!("{KERBEROS_CONTAINER_PATH}/krb5.conf")),
896896
..EnvVar::default()
897897
},
898898
);
899899
env.insert(
900900
"KRB5_CLIENT_KTNAME".to_string(),
901901
EnvVar {
902902
name: "KRB5_CLIENT_KTNAME".to_string(),
903-
value: Some("/stackable/kerberos/keytab".to_string()),
903+
value: Some(format!("{KERBEROS_CONTAINER_PATH}/keytab")),
904904
..EnvVar::default()
905905
},
906906
);
@@ -1107,7 +1107,8 @@ wait_for_termination $!
11071107

11081108
// Adding this for all containers, as not only the main container needs Kerberos or TLS
11091109
if hdfs.has_kerberos_enabled() {
1110-
volume_mounts.push(VolumeMountBuilder::new("kerberos", "/stackable/kerberos").build());
1110+
volume_mounts
1111+
.push(VolumeMountBuilder::new("kerberos", KERBEROS_CONTAINER_PATH).build());
11111112
}
11121113
if hdfs.has_https_enabled() {
11131114
// This volume will be propagated by the create-tls-cert-bundle container

rust/operator-binary/src/security/kerberos.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ use stackable_operator::{
1010

1111
use crate::config::{CoreSiteConfigBuilder, HdfsSiteConfigBuilder};
1212

13+
pub const KERBEROS_CONTAINER_PATH: &str = "/stackable/kerberos";
14+
1315
type Result<T, E = Error> = std::result::Result<T, E>;
1416

1517
#[derive(Snafu, Debug)]
@@ -85,9 +87,18 @@ impl CoreSiteConfigBuilder {
8587
"dfs.web.authentication.kerberos.principal",
8688
format!("HTTP/{principal_host_part}"),
8789
)
88-
.add("dfs.journalnode.keytab.file", "/stackable/kerberos/keytab")
89-
.add("dfs.namenode.keytab.file", "/stackable/kerberos/keytab")
90-
.add("dfs.datanode.keytab.file", "/stackable/kerberos/keytab")
90+
.add(
91+
"dfs.journalnode.keytab.file",
92+
format!("{KERBEROS_CONTAINER_PATH}/keytab"),
93+
)
94+
.add(
95+
"dfs.namenode.keytab.file",
96+
format!("{KERBEROS_CONTAINER_PATH}/keytab"),
97+
)
98+
.add(
99+
"dfs.datanode.keytab.file",
100+
format!("{KERBEROS_CONTAINER_PATH}/keytab"),
101+
)
91102
.add(
92103
"dfs.journalnode.kerberos.principal.pattern",
93104
format!("jn/{principal_host_part}"),

0 commit comments

Comments
 (0)