Skip to content

Commit f677d27

Browse files
committed
refactor: use namespace, uid in ValidatedCluster for ownerrefs.
1 parent 5df6320 commit f677d27

7 files changed

Lines changed: 175 additions & 139 deletions

File tree

Cargo.lock

Lines changed: 12 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.nix

Lines changed: 19 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/operator-binary/src/controller.rs

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,7 @@ pub async fn reconcile_opa(
359359

360360
let server_role_service =
361361
build_server_role_service(opa, &validated.image).context(BuildServiceSnafu)?;
362-
// required for discovery config map later
363-
let server_role_service = cluster_resources
362+
cluster_resources
364363
.add(client, server_role_service)
365364
.await
366365
.context(ApplyRoleServiceSnafu)?;
@@ -392,22 +391,11 @@ pub async fn reconcile_opa(
392391

393392
let merged_config = &rolegroup_config.merged_config;
394393

395-
let recommended_labels = build_recommended_labels(
396-
opa,
397-
&validated.image.app_version_label_value,
398-
&rolegroup.role,
399-
&rolegroup.role_group,
400-
);
401-
let rg_configmap = build::config_map::build_rolegroup_config_map(
402-
&validated,
403-
rolegroup_config,
404-
&rolegroup,
405-
&recommended_labels,
406-
opa,
407-
)
408-
.with_context(|_| BuildRoleGroupConfigSnafu {
409-
rolegroup: rolegroup.clone(),
410-
})?;
394+
let rg_configmap =
395+
build::config_map::build_rolegroup_config_map(&validated, rolegroup_config, &rolegroup)
396+
.with_context(|_| BuildRoleGroupConfigSnafu {
397+
rolegroup: rolegroup.clone(),
398+
})?;
411399
let rg_service = build_rolegroup_headless_service(opa, &validated.image, &rolegroup)
412400
.context(BuildServiceSnafu)?;
413401
let rg_metrics_service = build_rolegroup_metrics_service(opa, &validated.image, &rolegroup)
@@ -473,13 +461,9 @@ pub async fn reconcile_opa(
473461
.context(ApplyPatchRoleGroupDaemonSetSnafu { rolegroup })?;
474462
}
475463

476-
let discovery_cm = build::discovery::build_discovery_config_map(
477-
&validated,
478-
&server_role_service,
479-
&client.kubernetes_cluster_info,
480-
opa,
481-
)
482-
.context(BuildDiscoveryConfigSnafu)?;
464+
let discovery_cm =
465+
build::discovery::build_discovery_config_map(&validated, &client.kubernetes_cluster_info)
466+
.context(BuildDiscoveryConfigSnafu)?;
483467
cluster_resources
484468
.add(client, discovery_cm)
485469
.await

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

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,22 @@ use snafu::{ResultExt, Snafu};
66
use stackable_operator::{
77
builder::{configmap::ConfigMapBuilder, meta::ObjectMetaBuilder},
88
k8s_openapi::api::core::v1::ConfigMap,
9-
kvp::ObjectLabels,
109
product_logging::framework::VECTOR_CONFIG_FILE,
1110
role_utils::RoleGroupRef,
11+
v2::builder::meta::ownerreference_from_resource,
1212
};
1313

1414
use super::properties::{ConfigFileName, config_json, logging, user_info_fetcher};
1515
use crate::{
16-
controller::validate::{OpaRoleGroupConfig, ValidatedCluster},
16+
controller::{
17+
build_recommended_labels,
18+
validate::{OpaRoleGroupConfig, ValidatedCluster},
19+
},
1720
crd::v1alpha2,
1821
};
1922

2023
#[derive(Snafu, Debug)]
2124
pub enum Error {
22-
#[snafu(display("object is missing metadata to build owner reference"))]
23-
ObjectMissingMetadataForOwnerRef {
24-
source: stackable_operator::builder::meta::Error,
25-
},
26-
2725
#[snafu(display("failed to build object meta data"))]
2826
ObjectMeta {
2927
source: stackable_operator::builder::meta::Error,
@@ -50,17 +48,19 @@ pub fn build_rolegroup_config_map(
5048
cluster: &ValidatedCluster,
5149
rolegroup_config: &OpaRoleGroupConfig,
5250
rolegroup_ref: &RoleGroupRef<v1alpha2::OpaCluster>,
53-
recommended_labels: &ObjectLabels<'_, v1alpha2::OpaCluster>,
54-
owner: &v1alpha2::OpaCluster,
5551
) -> Result<ConfigMap> {
5652
let mut cm_builder = ConfigMapBuilder::new();
5753

5854
let metadata = ObjectMetaBuilder::new()
59-
.name_and_namespace(owner)
6055
.name(rolegroup_ref.object_name())
61-
.ownerreference_from_resource(owner, None, Some(true))
62-
.context(ObjectMissingMetadataForOwnerRefSnafu)?
63-
.with_recommended_labels(recommended_labels)
56+
.namespace(&cluster.namespace)
57+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
58+
.with_recommended_labels(&build_recommended_labels(
59+
cluster,
60+
&cluster.image.app_version_label_value,
61+
&rolegroup_ref.role,
62+
&rolegroup_ref.role_group,
63+
))
6464
.context(ObjectMetaSnafu)?
6565
.build();
6666

@@ -98,10 +98,7 @@ mod tests {
9898

9999
use super::*;
100100
use crate::{
101-
controller::{
102-
build::properties::test_support::validated_cluster_from_spec, build_recommended_labels,
103-
},
104-
crd::OpaRole,
101+
controller::build::properties::test_support::validated_cluster_from_spec, crd::OpaRole,
105102
};
106103

107104
/// Renders the ConfigMap of the `default` server role group of an `OpaCluster` built from `spec`.
@@ -115,21 +112,9 @@ mod tests {
115112
role: role.to_string(),
116113
role_group: "default".to_string(),
117114
};
118-
let recommended_labels = build_recommended_labels(
119-
&opa,
120-
&validated.image.app_version_label_value,
121-
&rolegroup_ref.role,
122-
&rolegroup_ref.role_group,
123-
);
124115

125-
build_rolegroup_config_map(
126-
&validated,
127-
rg_config,
128-
&rolegroup_ref,
129-
&recommended_labels,
130-
&opa,
131-
)
132-
.expect("the config map should build")
116+
build_rolegroup_config_map(&validated, rg_config, &rolegroup_ref)
117+
.expect("the config map should build")
133118
}
134119

135120
#[test]

0 commit comments

Comments
 (0)