Skip to content

Commit 3395c22

Browse files
committed
refactor: use new container builder
1 parent d25cb04 commit 3395c22

1 file changed

Lines changed: 23 additions & 20 deletions

File tree

  • rust/operator-binary/src/controller/build/resource

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

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ use stackable_operator::{
4949
},
5050
},
5151
utils::{COMMON_BASH_TRAP_FUNCTIONS, cluster_info::KubernetesClusterInfo},
52-
v2::{builder::meta::ownerreference_from_resource, types::kubernetes::VolumeName},
52+
v2::{
53+
builder::{meta::ownerreference_from_resource, pod::container::new_container_builder},
54+
types::kubernetes::{ContainerName, VolumeName},
55+
},
5356
};
5457

5558
use super::service::{self, APP_PORT, APP_PORT_NAME};
@@ -131,11 +134,6 @@ const MAX_PREPARE_LOG_FILE_SIZE: MemoryQuantity = MemoryQuantity {
131134

132135
#[derive(Snafu, Debug)]
133136
pub enum Error {
134-
#[snafu(display("illegal container name"))]
135-
IllegalContainerName {
136-
source: stackable_operator::builder::pod::container::Error,
137-
},
138-
139137
#[snafu(display("vector agent is enabled but vector aggregator ConfigMap is missing"))]
140138
VectorAggregatorConfigMapMissing,
141139

@@ -183,6 +181,13 @@ pub enum Error {
183181

184182
type Result<T, E = Error> = std::result::Result<T, E>;
185183

184+
/// The typed [`ContainerName`] for a [`Container`]. The enum's `Display` values are all valid
185+
/// container names, so this conversion is infallible.
186+
fn container_name(container: &Container) -> ContainerName {
187+
ContainerName::from_str(&container.to_string())
188+
.expect("Container enum variants are valid container names")
189+
}
190+
186191
/// The strict-mode `bash` entrypoint shared by the prepare, bundle-builder, and OPA containers.
187192
/// The actual script is passed via `.args(...)`.
188193
fn bash_entrypoint_command() -> Vec<String> {
@@ -248,23 +253,21 @@ pub fn build_server_rolegroup_daemonset(
248253

249254
let mut pb = PodBuilder::new();
250255

251-
let prepare_container_name = Container::Prepare.to_string();
252-
let mut cb_prepare =
253-
ContainerBuilder::new(&prepare_container_name).context(IllegalContainerNameSnafu)?;
256+
let prepare_container_name = container_name(&Container::Prepare);
257+
let mut cb_prepare = new_container_builder(&prepare_container_name);
254258

255-
let bundle_builder_container_name = Container::BundleBuilder.to_string();
256-
let mut cb_bundle_builder =
257-
ContainerBuilder::new(&bundle_builder_container_name).context(IllegalContainerNameSnafu)?;
259+
let bundle_builder_container_name = container_name(&Container::BundleBuilder);
260+
let mut cb_bundle_builder = new_container_builder(&bundle_builder_container_name);
258261

259-
let opa_container_name = Container::Opa.to_string();
260-
let mut cb_opa =
261-
ContainerBuilder::new(&opa_container_name).context(IllegalContainerNameSnafu)?;
262+
let opa_container_name = container_name(&Container::Opa);
263+
let mut cb_opa = new_container_builder(&opa_container_name);
262264

263265
cb_prepare
264266
.image_from_product_image(resolved_product_image)
265267
.command(bash_entrypoint_command())
266268
.args(vec![
267-
build_prepare_start_command(merged_config, &prepare_container_name).join(" && "),
269+
build_prepare_start_command(merged_config, prepare_container_name.as_ref())
270+
.join(" && "),
268271
])
269272
.add_volume_mount(BUNDLES_VOLUME_NAME.as_ref(), BUNDLES_DIR)
270273
.context(AddVolumeMountSnafu)?
@@ -278,7 +281,7 @@ pub fn build_server_rolegroup_daemonset(
278281
.command(bash_entrypoint_command())
279282
.args(vec![build_bundle_builder_start_command(
280283
merged_config,
281-
&bundle_builder_container_name,
284+
bundle_builder_container_name.as_ref(),
282285
)])
283286
.add_env_var_from_field_path("WATCH_NAMESPACE", &FieldPathEnvVar::Namespace)
284287
.add_volume_mount(BUNDLES_VOLUME_NAME.as_ref(), BUNDLES_DIR)
@@ -313,7 +316,7 @@ pub fn build_server_rolegroup_daemonset(
313316
.command(bash_entrypoint_command())
314317
.args(vec![build_opa_start_command(
315318
merged_config,
316-
&opa_container_name,
319+
opa_container_name.as_ref(),
317320
opa.spec.cluster_config.tls_enabled(),
318321
&rolegroup_config.cli_overrides,
319322
)])
@@ -432,8 +435,8 @@ pub fn build_server_rolegroup_daemonset(
432435
}
433436

434437
if let Some(user_info) = &opa.spec.cluster_config.user_info {
435-
let mut cb_user_info_fetcher =
436-
ContainerBuilder::new("user-info-fetcher").context(IllegalContainerNameSnafu)?;
438+
let user_info_fetcher_container_name = container_name(&Container::UserInfoFetcher);
439+
let mut cb_user_info_fetcher = new_container_builder(&user_info_fetcher_container_name);
437440

438441
cb_user_info_fetcher
439442
.image_from_product_image(resolved_product_image) // inherit the pull policy and pull secrets, and then...

0 commit comments

Comments
 (0)