Skip to content

Commit 101aa09

Browse files
committed
refactor: consolidate tls secruity module to build
1 parent 7a0def1 commit 101aa09

8 files changed

Lines changed: 466 additions & 441 deletions

File tree

rust/operator-binary/src/controller/build/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ pub mod graceful_shutdown;
2020
pub mod jvm;
2121
pub mod properties;
2222
pub mod resource;
23+
pub mod security;

rust/operator-binary/src/controller/build/resource/config_map.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use crate::{
3232
product_logging::{build_log4j2, vector_config_file_content},
3333
runtime_properties, security_properties,
3434
},
35+
security::add_tls_config_properties,
3536
},
3637
validate::{DruidRoleGroupConfig, ValidatedCluster},
3738
},
@@ -252,7 +253,7 @@ pub fn build_rolegroup_config_map(
252253
);
253254

254255
// add tls encryption / auth properties
255-
druid_tls_security.add_tls_config_properties(&mut conf, role);
256+
add_tls_config_properties(druid_tls_security, &mut conf, role);
256257

257258
if let Some(auth_config) = druid_auth_config {
258259
conf.extend(

rust/operator-binary/src/controller/build/resource/listener.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ use stackable_operator::{
1414
};
1515

1616
use crate::{
17-
controller::{build::PLACEHOLDER_LISTENER_ROLE_GROUP, validate::ValidatedCluster},
17+
controller::{
18+
build::{PLACEHOLDER_LISTENER_ROLE_GROUP, security::listener_ports},
19+
validate::ValidatedCluster,
20+
},
1821
crd::{
1922
DruidRole,
2023
security::{DruidTlsSecurity, PLAINTEXT_PORT_NAME, TLS_PORT_NAME},
@@ -54,12 +57,10 @@ pub fn build_group_listener(
5457
.build(),
5558
spec: listener::v1alpha1::ListenerSpec {
5659
class_name: Some(listener_class),
57-
ports: Some(
58-
cluster
59-
.cluster_config
60-
.druid_tls_security
61-
.listener_ports(druid_role),
62-
),
60+
ports: Some(listener_ports(
61+
&cluster.cluster_config.druid_tls_security,
62+
druid_role,
63+
)),
6364
..listener::v1alpha1::ListenerSpec::default()
6465
},
6566
status: None,

rust/operator-binary/src/controller/build/resource/service.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use stackable_operator::{
55
};
66

77
use crate::{
8-
controller::validate::ValidatedCluster,
8+
controller::{build::security::service_ports, validate::ValidatedCluster},
99
crd::{DruidRole, METRICS_PORT, METRICS_PORT_NAME},
1010
};
1111

@@ -31,12 +31,10 @@ pub fn build_rolegroup_headless_service(
3131
// Internal communication does not need to be exposed
3232
type_: Some("ClusterIP".to_string()),
3333
cluster_ip: Some("None".to_string()),
34-
ports: Some(
35-
cluster
36-
.cluster_config
37-
.druid_tls_security
38-
.service_ports(druid_role),
39-
),
34+
ports: Some(service_ports(
35+
&cluster.cluster_config.druid_tls_security,
36+
druid_role,
37+
)),
4038
selector: Some(
4139
cluster
4240
.role_group_selector(druid_role, role_group_name)

rust/operator-binary/src/controller/build/resource/statefulset.rs

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ use crate::{
4545
LISTENER_VOLUME_DIR, LISTENER_VOLUME_NAME, build_group_listener_pvc,
4646
group_listener_name, secret_volume_listener_scope,
4747
},
48+
security::{
49+
add_tls_volume_and_volume_mounts, build_tls_key_stores_cmd, container_ports,
50+
get_tcp_socket_probe,
51+
},
4852
},
4953
validate::{DruidRoleGroupConfig, ValidatedCluster},
5054
},
@@ -78,7 +82,9 @@ pub enum Error {
7882
},
7983

8084
#[snafu(display("failed to initialize security context"))]
81-
FailedToInitializeSecurityContext { source: crate::crd::security::Error },
85+
FailedToInitializeSecurityContext {
86+
source: crate::controller::build::security::Error,
87+
},
8288

8389
#[snafu(display(
8490
"Druid does not support skipping the verification of the tls enabled S3 server"
@@ -156,7 +162,7 @@ pub fn build_rolegroup_statefulset(
156162
log_config,
157163
));
158164
}
159-
prepare_container_commands.extend(druid_tls_security.build_tls_key_stores_cmd());
165+
prepare_container_commands.extend(build_tls_key_stores_cmd(druid_tls_security));
160166

161167
if let Some(auth_config) = druid_auth_config {
162168
auth_config
@@ -167,16 +173,16 @@ pub fn build_rolegroup_statefulset(
167173
}
168174

169175
// volume and volume mounts
170-
druid_tls_security
171-
.add_tls_volume_and_volume_mounts(
172-
&mut cb_prepare,
173-
&mut cb_druid,
174-
&mut pb,
175-
&merged_rolegroup_config.requested_secret_lifetime,
176-
// add listener
177-
secret_volume_listener_scope(role),
178-
)
179-
.context(FailedToInitializeSecurityContextSnafu)?;
176+
add_tls_volume_and_volume_mounts(
177+
druid_tls_security,
178+
&mut cb_prepare,
179+
&mut cb_druid,
180+
&mut pb,
181+
&merged_rolegroup_config.requested_secret_lifetime,
182+
// add listener
183+
secret_volume_listener_scope(role),
184+
)
185+
.context(FailedToInitializeSecurityContextSnafu)?;
180186

181187
if let Some(s3) = s3_conn {
182188
if s3.tls.uses_tls() && !s3.tls.uses_tls_verification() {
@@ -251,14 +257,14 @@ pub fn build_rolegroup_statefulset(
251257
])
252258
.args(vec![main_container_commands.join("\n")])
253259
.add_env_vars(rest_env)
254-
.add_container_ports(druid_tls_security.container_ports(role))
260+
.add_container_ports(container_ports(druid_tls_security, role))
255261
.add_container_port(METRICS_PORT_NAME, METRICS_PORT.into())
256262
// 10s * 30 = 300s to come up
257-
.startup_probe(druid_tls_security.get_tcp_socket_probe(30, 10, 30, 3))
263+
.startup_probe(get_tcp_socket_probe(druid_tls_security, 30, 10, 30, 3))
258264
// 10s * 1 = 10s to get removed from service
259-
.readiness_probe(druid_tls_security.get_tcp_socket_probe(10, 10, 1, 3))
265+
.readiness_probe(get_tcp_socket_probe(druid_tls_security, 10, 10, 1, 3))
260266
// 10s * 3 = 30s to be restarted
261-
.liveness_probe(druid_tls_security.get_tcp_socket_probe(10, 10, 3, 3))
267+
.liveness_probe(get_tcp_socket_probe(druid_tls_security, 10, 10, 3, 3))
262268
.resources(merged_rolegroup_config.resources.as_resource_requirements());
263269

264270
// Add extra mounts if any are specified and the current role is MiddleManager

0 commit comments

Comments
 (0)