Skip to content

Commit 7d0483a

Browse files
committed
merge executor pod overrides into pod template
1 parent 01bfefc commit 7d0483a

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

rust/operator-binary/src/connect/executor.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ use stackable_operator::{
99
pod::{container::ContainerBuilder, volume::VolumeBuilder, PodBuilder},
1010
},
1111
commons::product_image_selection::ResolvedProductImage,
12-
k8s_openapi::api::core::v1::{ConfigMap, EnvVar, PodTemplateSpec},
12+
k8s_openapi::{
13+
api::core::v1::{ConfigMap, EnvVar, PodTemplateSpec},
14+
DeepMerge,
15+
},
1316
kube::{runtime::reflector::ObjectRef, ResourceExt},
1417
product_logging::framework::calculate_log_volume_size_limit,
1518
role_utils::RoleGroupRef,
@@ -97,7 +100,7 @@ pub enum Error {
97100
// because spark overrides them.
98101
//
99102
// See https://spark.apache.org/docs/latest/running-on-kubernetes.html#pod-template-properties
100-
// for a list of properties that are overriden/changed by Spark.
103+
// for a list of properties that are overridden/changed by Spark.
101104
//
102105
// Most notable properties that cannot be set here are:
103106
// - container resources
@@ -157,7 +160,14 @@ pub fn executor_pod_template(
157160
.context(AddVolumeSnafu)?;
158161
}
159162

160-
Ok(template.add_container(container.build()).build_template())
163+
let mut result = template.add_container(container.build()).build_template();
164+
165+
// Merge user provided pod spec if any
166+
if let Some(pod_overrides_spec) = scs.spec.executor.as_ref().map(|s| s.pod_overrides.clone()) {
167+
result.merge_from(pod_overrides_spec);
168+
}
169+
170+
Ok(result)
161171
}
162172

163173
fn executor_env(env_overrides: Option<&HashMap<String, String>>) -> Result<Vec<EnvVar>, Error> {

0 commit comments

Comments
 (0)