Skip to content

Commit fb858b0

Browse files
committed
refactor: switch to v2 ownerref, remove results
1 parent 56e22d8 commit fb858b0

5 files changed

Lines changed: 20 additions & 53 deletions

File tree

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

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ use stackable_operator::{
99
kvp::Labels,
1010
product_logging::framework::VECTOR_CONFIG_FILE,
1111
utils::cluster_info::KubernetesClusterInfo,
12-
v2::config_file_writer::to_java_properties_string,
12+
v2::{
13+
builder::meta::ownerreference_from_resource, config_file_writer::to_java_properties_string,
14+
},
1315
};
1416

1517
use crate::{
@@ -48,11 +50,6 @@ pub enum Error {
4850
rolegroup: String,
4951
},
5052

51-
#[snafu(display("metadata build failure"))]
52-
Metadata {
53-
source: stackable_operator::builder::meta::Error,
54-
},
55-
5653
#[snafu(display("failed to build jvm.config"))]
5754
BuildJvmConfig { source: crate::config::jvm::Error },
5855
}
@@ -194,8 +191,7 @@ pub fn build_rolegroup_config_map(
194191
ObjectMetaBuilder::new()
195192
.name(&config_map_name)
196193
.namespace(cluster.namespace.to_string())
197-
.ownerreference_from_resource(cluster, None, Some(true))
198-
.context(MetadataSnafu)?
194+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
199195
.with_labels(recommended_labels.clone())
200196
.build(),
201197
)
@@ -225,8 +221,7 @@ pub fn build_rolegroup_catalog_config_map(
225221
ObjectMetaBuilder::new()
226222
.name(&catalog_config_map_name)
227223
.namespace(cluster.namespace.to_string())
228-
.ownerreference_from_resource(cluster, None, Some(true))
229-
.context(MetadataSnafu)?
224+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
230225
.with_labels(recommended_labels.clone())
231226
.build(),
232227
)

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use stackable_operator::{
88
k8s_openapi::api::core::v1::PersistentVolumeClaim,
99
kube::ResourceExt,
1010
kvp::Labels,
11+
v2::builder::meta::ownerreference_from_resource,
1112
};
1213

1314
use crate::{
@@ -20,11 +21,6 @@ pub const LISTENER_VOLUME_DIR: &str = "/stackable/listener";
2021

2122
#[derive(Snafu, Debug)]
2223
pub enum Error {
23-
#[snafu(display("listener object is missing metadata to build owner reference"))]
24-
ObjectMissingMetadataForOwnerRef {
25-
source: stackable_operator::builder::meta::Error,
26-
},
27-
2824
#[snafu(display("failed to build listener volume"))]
2925
BuildListenerPersistentVolume {
3026
source: stackable_operator::builder::pod::volume::ListenerOperatorVolumeSourceBuilderError,
@@ -41,8 +37,7 @@ pub fn build_group_listener(
4137
metadata: ObjectMetaBuilder::new()
4238
.name_and_namespace(cluster)
4339
.name(listener_group_name)
44-
.ownerreference_from_resource(cluster, None, Some(true))
45-
.context(ObjectMissingMetadataForOwnerRefSnafu)?
40+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
4641
.with_labels(recommended_labels)
4742
.build(),
4843
spec: ListenerSpec {

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

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
use std::collections::BTreeMap;
22

3-
use snafu::{ResultExt, Snafu};
43
use stackable_operator::{
54
builder::meta::ObjectMetaBuilder,
65
k8s_openapi::api::core::v1::{Service, ServicePort, ServiceSpec},
76
kvp::{Annotations, Labels},
7+
v2::builder::meta::ownerreference_from_resource,
88
};
99

1010
use crate::{
1111
controller::ValidatedCluster,
1212
crd::{METRICS_PORT, METRICS_PORT_NAME, TrinoRole},
1313
};
1414

15-
#[derive(Snafu, Debug)]
16-
pub enum Error {
17-
#[snafu(display("object is missing metadata to build owner reference"))]
18-
ObjectMissingMetadataForOwnerRef {
19-
source: stackable_operator::builder::meta::Error,
20-
},
21-
}
22-
2315
/// The rolegroup headless [`Service`] is a service that allows direct access to the instances of a certain rolegroup
2416
/// This is mostly useful for internal communication between peers, or for clients that perform client-side load balancing.
2517
pub fn build_rolegroup_headless_service(
@@ -29,8 +21,8 @@ pub fn build_rolegroup_headless_service(
2921
recommended_labels: &Labels,
3022
selector: BTreeMap<String, String>,
3123
ports: Vec<ServicePort>,
32-
) -> Result<Service, Error> {
33-
Ok(Service {
24+
) -> Service {
25+
Service {
3426
metadata: ObjectMetaBuilder::new()
3527
.name_and_namespace(cluster)
3628
.name(
@@ -39,8 +31,7 @@ pub fn build_rolegroup_headless_service(
3931
.headless_service_name()
4032
.to_string(),
4133
)
42-
.ownerreference_from_resource(cluster, None, Some(true))
43-
.context(ObjectMissingMetadataForOwnerRefSnafu)?
34+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
4435
.with_labels(recommended_labels.clone())
4536
.build(),
4637
spec: Some(ServiceSpec {
@@ -53,7 +44,7 @@ pub fn build_rolegroup_headless_service(
5344
..ServiceSpec::default()
5445
}),
5546
status: None,
56-
})
47+
}
5748
}
5849

5950
/// The rolegroup metrics [`Service`] is a service that exposes metrics and a prometheus scraping label.
@@ -63,8 +54,8 @@ pub fn build_rolegroup_metrics_service(
6354
role_group_name: &str,
6455
recommended_labels: &Labels,
6556
selector: BTreeMap<String, String>,
66-
) -> Result<Service, Error> {
67-
Ok(Service {
57+
) -> Service {
58+
Service {
6859
metadata: ObjectMetaBuilder::new()
6960
.name_and_namespace(cluster)
7061
.name(
@@ -73,8 +64,7 @@ pub fn build_rolegroup_metrics_service(
7364
.metrics_service_name()
7465
.to_string(),
7566
)
76-
.ownerreference_from_resource(cluster, None, Some(true))
77-
.context(ObjectMissingMetadataForOwnerRefSnafu)?
67+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
7868
.with_labels(recommended_labels.clone())
7969
.with_labels(prometheus_labels())
8070
.with_annotations(prometheus_annotations())
@@ -89,7 +79,7 @@ pub fn build_rolegroup_metrics_service(
8979
..ServiceSpec::default()
9080
}),
9181
status: None,
92-
})
82+
}
9383
}
9484

9585
pub(crate) fn headless_service_ports(cluster: &ValidatedCluster) -> Vec<ServicePort> {

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use stackable_operator::{
3434
product_logging,
3535
shared::time::Duration,
3636
v2::{
37-
builder::pod::container::EnvVarSet,
37+
builder::{meta::ownerreference_from_resource, pod::container::EnvVarSet},
3838
product_logging::framework::{ValidatedContainerLogConfigChoice, vector_container},
3939
types::kubernetes::{ContainerName, VolumeName},
4040
},
@@ -78,11 +78,6 @@ pub enum Error {
7878
#[snafu(display("missing secret lifetime"))]
7979
MissingSecretLifetime,
8080

81-
#[snafu(display("object is missing metadata to build owner reference"))]
82-
ObjectMissingMetadataForOwnerRef {
83-
source: stackable_operator::builder::meta::Error,
84-
},
85-
8681
#[snafu(display("internal operator failure: {source}"))]
8782
InternalOperatorFailure { source: crate::crd::Error },
8883

@@ -467,8 +462,7 @@ pub fn build_rolegroup_statefulset(
467462
metadata: ObjectMetaBuilder::new()
468463
.name_and_namespace(trino)
469464
.name(resource_names.stateful_set_name().to_string())
470-
.ownerreference_from_resource(trino, None, Some(true))
471-
.context(ObjectMissingMetadataForOwnerRefSnafu)?
465+
.ownerreference(ownerreference_from_resource(cluster, None, Some(true)))
472466
.with_labels(cluster.recommended_labels(trino_role, role_group_name))
473467
.with_label(RESTART_CONTROLLER_ENABLED_LABEL.to_owned())
474468
.with_annotations(annotations)

rust/operator-binary/src/trino_controller.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,6 @@ pub enum Error {
155155
source: build::resource::listener::Error,
156156
},
157157

158-
#[snafu(display("failed to configure service"))]
159-
ServiceConfiguration {
160-
source: build::resource::service::Error,
161-
},
162-
163158
#[snafu(display("failed to create internal secret"))]
164159
CreateInternalSecret {
165160
source: random_secret_creation::Error,
@@ -274,17 +269,15 @@ pub async fn reconcile_trino(
274269
&role_group_service_recommended_labels,
275270
role_group_service_selector.clone().into(),
276271
headless_service_ports(&validated_cluster),
277-
)
278-
.context(ServiceConfigurationSnafu)?;
272+
);
279273

280274
let rg_metrics_service = build_rolegroup_metrics_service(
281275
&validated_cluster,
282276
trino_role,
283277
role_group_name,
284278
&role_group_service_recommended_labels,
285279
role_group_service_selector.into(),
286-
)
287-
.context(ServiceConfigurationSnafu)?;
280+
);
288281

289282
let rg_configmap = build::resource::config_map::build_rolegroup_config_map(
290283
&validated_cluster,

0 commit comments

Comments
 (0)