Skip to content

Commit 43207ec

Browse files
committed
move object_meta to build step
1 parent b45ed81 commit 43207ec

4 files changed

Lines changed: 52 additions & 45 deletions

File tree

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

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ use stackable_operator::{
55
builder::meta::ObjectMetaBuilder,
66
kvp::{LabelError, Labels},
77
utils::cluster_info::KubernetesClusterInfo,
8-
v2::types::{common::Port, operator::RoleGroupName},
8+
v2::{
9+
builder::meta::ownerreference_from_resource,
10+
types::{common::Port, operator::RoleGroupName},
11+
},
912
};
1013

1114
use crate::{
@@ -178,6 +181,22 @@ pub(crate) fn pod_refs(cluster: &ValidatedCluster, role: &HdfsNodeRole) -> Vec<H
178181
.collect()
179182
}
180183

184+
/// Returns an [`ObjectMetaBuilder`] pre-filled with the namespace, the resource `name`, an owner
185+
/// reference back to the cluster, and the given recommended `labels`.
186+
pub(crate) fn object_meta(
187+
cluster: &ValidatedCluster,
188+
name: impl Into<String>,
189+
labels: Labels,
190+
) -> ObjectMetaBuilder {
191+
let mut builder = ObjectMetaBuilder::new();
192+
builder
193+
.name_and_namespace(cluster)
194+
.name(name)
195+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
196+
.with_labels(labels);
197+
builder
198+
}
199+
181200
/// Builds the common [`ObjectMetaBuilder`] shared by a role group's owned resources
182201
/// (the ConfigMap and the StatefulSet): name, namespace, owner reference and the
183202
/// recommended labels, all derived from the validated cluster.
@@ -190,7 +209,8 @@ pub(crate) fn rolegroup_metadata(
190209
role: &HdfsNodeRole,
191210
role_group_name: &RoleGroupName,
192211
) -> ObjectMetaBuilder {
193-
cluster.object_meta(
212+
object_meta(
213+
cluster,
194214
cluster
195215
.role_group_resource_names(role, role_group_name)
196216
.qualified_role_group_name()

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use crate::{
1818
ValidatedCluster,
1919
build::{
2020
kerberos::KerberosConfig,
21+
object_meta,
2122
properties::{
2223
ConfigFileName, core_site::CoreSiteConfigBuilder, hdfs_site::HdfsSiteConfigBuilder,
2324
},
@@ -67,7 +68,7 @@ pub fn build_discovery_config_map(
6768
&DISCOVERY_ROLE_GROUP,
6869
);
6970

70-
let metadata = cluster.object_meta(cluster.name.clone(), labels).build();
71+
let metadata = object_meta(cluster, cluster.name.clone(), labels).build();
7172

7273
ConfigMapBuilder::new()
7374
.metadata(metadata)

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

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@ pub(crate) fn rolegroup_headless_service(
6161
};
6262

6363
Ok(Service {
64-
metadata: cluster
65-
.object_meta(
66-
cluster
67-
.governing_service_name(role, role_group_name)
68-
.to_string(),
69-
cluster.recommended_labels(role, role_group_name),
70-
)
71-
.build(),
64+
metadata: build::object_meta(
65+
cluster,
66+
cluster
67+
.governing_service_name(role, role_group_name)
68+
.to_string(),
69+
cluster.recommended_labels(role, role_group_name),
70+
)
71+
.build(),
7272
spec: Some(service_spec),
7373
status: None,
7474
})
@@ -106,26 +106,26 @@ pub(crate) fn rolegroup_metrics_service(
106106
};
107107

108108
Ok(Service {
109-
metadata: cluster
110-
.object_meta(
111-
cluster
112-
.role_group_resource_names(role, role_group_name)
113-
.metrics_service_name()
114-
.to_string(),
115-
cluster.recommended_labels(role, role_group_name),
116-
)
117-
.with_labels(prometheus_labels(&Scraping::Enabled))
118-
.with_annotations(prometheus_annotations(
119-
&Scraping::Enabled,
120-
if cluster.has_https_enabled() {
121-
&Scheme::Https
122-
} else {
123-
&Scheme::Http
124-
},
125-
"/prom",
126-
&build::native_metrics_port(cluster, role),
127-
))
128-
.build(),
109+
metadata: build::object_meta(
110+
cluster,
111+
cluster
112+
.role_group_resource_names(role, role_group_name)
113+
.metrics_service_name()
114+
.to_string(),
115+
cluster.recommended_labels(role, role_group_name),
116+
)
117+
.with_labels(prometheus_labels(&Scraping::Enabled))
118+
.with_annotations(prometheus_annotations(
119+
&Scraping::Enabled,
120+
if cluster.has_https_enabled() {
121+
&Scheme::Https
122+
} else {
123+
&Scheme::Http
124+
},
125+
"/prom",
126+
&build::native_metrics_port(cluster, role),
127+
))
128+
.build(),
129129
spec: Some(service_spec),
130130
status: None,
131131
})

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

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::{collections::BTreeMap, str::FromStr};
22

33
use stackable_operator::{
4-
builder::meta::ObjectMetaBuilder,
54
commons::product_image_selection::ResolvedProductImage,
65
k8s_openapi::api::{
76
apps::v1::StatefulSet,
@@ -13,7 +12,6 @@ use stackable_operator::{
1312
kvp::Labels,
1413
v2::{
1514
HasName, HasUid, NameIsValidLabelValue,
16-
builder::meta::ownerreference_from_resource,
1715
kvp::label::recommended_labels,
1816
role_group_utils::ResourceNames,
1917
role_utils::{self, RoleGroupConfig},
@@ -206,18 +204,6 @@ impl ValidatedCluster {
206204
self.recommended_labels_for(&role.into(), role_group_name)
207205
}
208206

209-
/// Returns an [`ObjectMetaBuilder`] pre-filled with the namespace, the resource `name`, an owner
210-
/// reference back to this cluster, and the given recommended `labels`.
211-
pub(crate) fn object_meta(&self, name: impl Into<String>, labels: Labels) -> ObjectMetaBuilder {
212-
let mut builder = ObjectMetaBuilder::new();
213-
builder
214-
.name_and_namespace(self)
215-
.name(name)
216-
.ownerreference(ownerreference_from_resource(self, None, Some(true)))
217-
.with_labels(labels);
218-
builder
219-
}
220-
221207
/// The name of a role group's governing headless Service.
222208
///
223209
/// Used as the headless Service's own name, as the StatefulSet's (immutable) `serviceName`,

0 commit comments

Comments
 (0)