Skip to content

Commit 2897872

Browse files
committed
refactor: streamline TLS configuration checks and add tls_enabled method
1 parent 700af81 commit 2897872

4 files changed

Lines changed: 19 additions & 15 deletions

File tree

rust/operator-binary/src/controller.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -830,8 +830,6 @@ fn build_server_rolegroup_daemonset(
830830
&v1alpha1::Container::BundleBuilder,
831831
);
832832

833-
let opa_tls_config = opa.spec.cluster_config.tls.as_ref();
834-
835833
cb_opa
836834
.image_from_product_image(resolved_product_image)
837835
.command(vec![
@@ -844,7 +842,7 @@ fn build_server_rolegroup_daemonset(
844842
.args(vec![build_opa_start_command(
845843
merged_config,
846844
&opa_container_name,
847-
opa_tls_config,
845+
opa.spec.cluster_config.tls_enabled(),
848846
)])
849847
.add_env_vars(env)
850848
.add_env_var(
@@ -858,7 +856,7 @@ fn build_server_rolegroup_daemonset(
858856
// .spec.template.spec.containers[name="opa"].ports: duplicate entries for key [containerPort=8081,protocol="TCP"]
859857
//
860858
// So we don't do that
861-
if opa_tls_config.is_some() {
859+
if opa.spec.cluster_config.tls_enabled() {
862860
cb_opa.add_container_port(service::APP_TLS_PORT_NAME, service::APP_TLS_PORT.into());
863861
cb_opa
864862
.add_volume_mount(TLS_VOLUME_NAME, TLS_STORE_DIR)
@@ -874,7 +872,7 @@ fn build_server_rolegroup_daemonset(
874872
.context(AddVolumeMountSnafu)?
875873
.resources(merged_config.resources.to_owned().into());
876874

877-
let (probe_port_name, probe_scheme) = if opa_tls_config.is_some() {
875+
let (probe_port_name, probe_scheme) = if opa.spec.cluster_config.tls_enabled() {
878876
(service::APP_TLS_PORT_NAME, Some("HTTPS".to_string()))
879877
} else {
880878
(APP_PORT_NAME, Some("HTTP".to_string()))
@@ -949,7 +947,7 @@ fn build_server_rolegroup_daemonset(
949947
.service_account_name(service_account.name_any())
950948
.security_context(PodSecurityContextBuilder::new().fs_group(1000).build());
951949

952-
if let Some(tls) = opa_tls_config {
950+
if let Some(tls) = &opa.spec.cluster_config.tls {
953951
pb.add_volume(
954952
VolumeBuilder::new(TLS_VOLUME_NAME)
955953
.ephemeral(
@@ -1196,7 +1194,7 @@ fn build_config_file(merged_config: &v1alpha1::OpaConfig) -> String {
11961194
fn build_opa_start_command(
11971195
merged_config: &v1alpha1::OpaConfig,
11981196
container_name: &str,
1199-
tls_config: Option<&v1alpha1::OpaTls>,
1197+
tls_enabled: bool,
12001198
) -> String {
12011199
let mut file_log_level = DEFAULT_FILE_LOG_LEVEL;
12021200
let mut console_log_level = DEFAULT_CONSOLE_LOG_LEVEL;
@@ -1238,7 +1236,7 @@ fn build_opa_start_command(
12381236
}
12391237
}
12401238

1241-
let (bind_port, tls_flags) = if tls_config.is_some() {
1239+
let (bind_port, tls_flags) = if tls_enabled {
12421240
(
12431241
service::APP_TLS_PORT,
12441242
format!(

rust/operator-binary/src/crd/mod.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,13 @@ impl v1alpha1::CurrentlySupportedListenerClasses {
251251
}
252252
}
253253

254+
impl v1alpha1::OpaClusterConfig {
255+
/// Returns whether TLS encryption is enabled for the OPA server.
256+
pub fn tls_enabled(&self) -> bool {
257+
self.tls.is_some()
258+
}
259+
}
260+
254261
impl v1alpha1::OpaConfig {
255262
fn default_config() -> v1alpha1::OpaConfigFragment {
256263
v1alpha1::OpaConfigFragment {

rust/operator-binary/src/discovery.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ fn build_discovery_configmap(
6666
svc: &Service,
6767
cluster_info: &KubernetesClusterInfo,
6868
) -> Result<ConfigMap, Error> {
69-
let tls_config = opa.spec.cluster_config.tls.as_ref();
70-
let (scheme, port) = if tls_config.is_some() {
69+
let (scheme, port) = if opa.spec.cluster_config.tls_enabled() {
7170
("https", APP_TLS_PORT)
7271
} else {
7372
("http", APP_PORT)
@@ -104,7 +103,7 @@ fn build_discovery_configmap(
104103

105104
cm_builder.metadata(metadata).add_data("OPA", url);
106105

107-
if let Some(tls) = tls_config {
106+
if let Some(tls) = opa.spec.cluster_config.tls.as_ref() {
108107
cm_builder.add_data("OPA_SECRET_CLASS", &tls.server_secret_class);
109108
}
110109

rust/operator-binary/src/service.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ pub(crate) fn build_server_role_service(
5959

6060
let service_spec = ServiceSpec {
6161
type_: Some(opa.spec.cluster_config.listener_class.k8s_service_type()),
62-
ports: Some(data_service_ports(opa.spec.cluster_config.tls.is_some())),
62+
ports: Some(data_service_ports(opa.spec.cluster_config.tls_enabled())),
6363
selector: Some(service_selector_labels.into()),
6464
internal_traffic_policy: Some("Local".to_string()),
6565
..ServiceSpec::default()
@@ -104,7 +104,7 @@ pub(crate) fn build_rolegroup_headless_service(
104104
// options there are non-existent (mTLS still opens plain port) or suck (Kerberos).
105105
type_: Some("ClusterIP".to_string()),
106106
cluster_ip: Some("None".to_string()),
107-
ports: Some(data_service_ports(opa.spec.cluster_config.tls.is_some())),
107+
ports: Some(data_service_ports(opa.spec.cluster_config.tls_enabled())),
108108
selector: Some(role_group_selector_labels(opa, rolegroup)?.into()),
109109
publish_not_ready_addresses: Some(true),
110110
..ServiceSpec::default()
@@ -138,15 +138,15 @@ pub(crate) fn build_rolegroup_metrics_service(
138138
.context(ObjectMetaSnafu)?
139139
.with_labels(prometheus_labels())
140140
.with_annotations(prometheus_annotations(
141-
opa.spec.cluster_config.tls.is_some(),
141+
opa.spec.cluster_config.tls_enabled(),
142142
))
143143
.build();
144144

145145
let service_spec = ServiceSpec {
146146
type_: Some("ClusterIP".to_string()),
147147
cluster_ip: Some("None".to_string()),
148148
ports: Some(vec![metrics_service_port(
149-
opa.spec.cluster_config.tls.is_some(),
149+
opa.spec.cluster_config.tls_enabled(),
150150
)]),
151151
selector: Some(role_group_selector_labels(opa, rolegroup)?.into()),
152152
..ServiceSpec::default()

0 commit comments

Comments
 (0)