@@ -22,10 +22,9 @@ use k8s_openapi::{
2222 } ,
2323 apimachinery:: pkg:: apis:: meta:: v1:: { LabelSelector , LabelSelectorRequirement } ,
2424} ;
25- use kube:: { Resource , ResourceExt , api :: DynamicObject , core:: ErrorResponse } ;
25+ use kube:: { Resource , ResourceExt , core:: ErrorResponse } ;
2626use serde:: { Serialize , de:: DeserializeOwned } ;
2727use snafu:: { OptionExt , ResultExt , Snafu } ;
28- use stackable_shared:: patchinator:: { self , apply_patches, parse_patches} ;
2928use strum:: Display ;
3029use tracing:: { debug, info, warn} ;
3130
@@ -43,6 +42,7 @@ use crate::{
4342 Label , LabelError , Labels ,
4443 consts:: { K8S_APP_INSTANCE_KEY , K8S_APP_MANAGED_BY_KEY , K8S_APP_NAME_KEY } ,
4544 } ,
45+ patchinator:: { self , ObjectOverrides , apply_patches} ,
4646 utils:: format_full_controller_name,
4747} ;
4848
@@ -422,7 +422,7 @@ impl ClusterResource for Deployment {
422422/// }
423423/// ```
424424#[ derive( Debug ) ]
425- pub struct ClusterResources {
425+ pub struct ClusterResources < ' a > {
426426 /// The namespace of the cluster
427427 namespace : String ,
428428
@@ -452,10 +452,10 @@ pub struct ClusterResources {
452452 apply_strategy : ClusterResourceApplyStrategy ,
453453
454454 /// Arbitrary Kubernetes object overrides specified by the user via the CRD.
455- object_overrides : Vec < DynamicObject > ,
455+ object_overrides : & ' a ObjectOverrides ,
456456}
457457
458- impl ClusterResources {
458+ impl < ' a > ClusterResources < ' a > {
459459 /// Constructs new `ClusterResources`.
460460 ///
461461 /// # Arguments
@@ -481,7 +481,7 @@ impl ClusterResources {
481481 controller_name : & str ,
482482 cluster : & ObjectReference ,
483483 apply_strategy : ClusterResourceApplyStrategy ,
484- object_overrides : Option < impl AsRef < str > > ,
484+ object_overrides : & ' a ObjectOverrides ,
485485 ) -> Result < Self > {
486486 let namespace = cluster
487487 . namespace
@@ -495,12 +495,6 @@ impl ClusterResources {
495495 . uid
496496 . clone ( )
497497 . context ( MissingObjectKeySnafu { key : "uid" } ) ?;
498- let object_overrides = match object_overrides {
499- Some ( object_overrides) => {
500- parse_patches ( object_overrides) . context ( ParseObjectOverridesSnafu ) ?
501- }
502- None => vec ! [ ] ,
503- } ;
504498
505499 Ok ( ClusterResources {
506500 namespace,
@@ -585,8 +579,7 @@ impl ClusterResources {
585579 let mut mutated = resource. maybe_mutate ( & self . apply_strategy ) ;
586580
587581 // We apply the object overrides of the user at the very last to offer maximum flexibility.
588- apply_patches ( & mut mutated, self . object_overrides . iter ( ) )
589- . context ( ApplyObjectOverridesSnafu ) ?;
582+ apply_patches ( & mut mutated, self . object_overrides ) . context ( ApplyObjectOverridesSnafu ) ?;
590583
591584 let patched_resource = self
592585 . apply_strategy
0 commit comments