@@ -18,56 +18,59 @@ pub enum Error {
1818 } ,
1919}
2020
21- // Takes an arbitrary Kubernetes object (`base`) and applies the given list of patches onto it.
21+ // Takes an arbitrary Kubernetes object (`base`) and applies the given list of deep merges onto it.
2222//
23- // Patches are only applied to objects that have the same apiVersion, kind, name
23+ // Merges are only applied to objects that have the same apiVersion, kind, name
2424// and namespace.
25- pub fn apply_patches < R > ( base : & mut R , patches : ObjectOverrides ) -> Result < ( ) , Error >
25+ pub fn apply_object_overrides < R > (
26+ base : & mut R ,
27+ object_overrides : ObjectOverrides ,
28+ ) -> Result < ( ) , Error >
2629where
2730 R : kube:: Resource < DynamicType = ( ) > + DeepMerge + DeserializeOwned ,
2831{
29- for patch in patches . object_overrides {
30- apply_patch ( base, patch ) ?;
32+ for object_override in object_overrides . object_overrides {
33+ apply_deep_merge ( base, object_override ) ?;
3134 }
3235 Ok ( ( ) )
3336}
3437
35- // Takes an arbitrary Kubernetes object (`base`) and applies the patch .
38+ // Takes an arbitrary Kubernetes object (`base`) and applies the deep merge .
3639//
37- // Patches are only applied to objects that have the same apiVersion, kind, name
40+ // Merges are only applied to objects that have the same apiVersion, kind, name
3841// and namespace.
39- pub fn apply_patch < R > ( base : & mut R , patch : DynamicObject ) -> Result < ( ) , Error >
42+ pub fn apply_deep_merge < R > ( base : & mut R , merge : DynamicObject ) -> Result < ( ) , Error >
4043where
4144 R : kube:: Resource < DynamicType = ( ) > + DeepMerge + DeserializeOwned ,
4245{
43- let Some ( patch_type ) = & patch . types else {
46+ let Some ( merge_type ) = & merge . types else {
4447 return Ok ( ( ) ) ;
4548 } ;
46- if patch_type . api_version != R :: api_version ( & ( ) ) || patch_type . kind != R :: kind ( & ( ) ) {
49+ if merge_type . api_version != R :: api_version ( & ( ) ) || merge_type . kind != R :: kind ( & ( ) ) {
4750 return Ok ( ( ) ) ;
4851 }
49- let Some ( patch_name ) = & patch . metadata . name else {
52+ let Some ( merge_name ) = & merge . metadata . name else {
5053 return Ok ( ( ) ) ;
5154 } ;
5255
5356 // The name always needs to match
54- if & base. name_any ( ) != patch_name {
57+ if & base. name_any ( ) != merge_name {
5558 return Ok ( ( ) ) ;
5659 }
5760
5861 // If there is a namespace on the base object, it needs to match as well
5962 // Note that it is not set for cluster-scoped objects.
60- if base. namespace ( ) != patch . metadata . namespace {
63+ if base. namespace ( ) != merge . metadata . namespace {
6164 return Ok ( ( ) ) ;
6265 }
6366
64- let deserialized_patch = patch
67+ let deserialized_merge = merge
6568 . try_parse ( )
6669 . with_context ( |_| ParseDynamicObjectSnafu {
6770 target_api_version : R :: api_version ( & ( ) ) ,
6871 target_kind : R :: kind ( & ( ) ) ,
6972 } ) ?;
70- base. merge_from ( deserialized_patch ) ;
73+ base. merge_from ( deserialized_merge ) ;
7174
7275 Ok ( ( ) )
7376}
@@ -173,7 +176,7 @@ metadata:
173176 }
174177
175178 #[ test]
176- fn service_account_patched ( ) {
179+ fn service_account_merged ( ) {
177180 let mut sa = generate_service_account ( ) ;
178181 let object_overrides: ObjectOverrides = serde_yaml:: from_str (
179182 "
@@ -191,12 +194,12 @@ objectOverrides:
191194 . expect ( "test input is valid YAML" ) ;
192195
193196 assert_has_label ( & sa, "app.kubernetes.io/name" , "trino" ) ;
194- apply_patches ( & mut sa, object_overrides) . unwrap ( ) ;
197+ apply_object_overrides ( & mut sa, object_overrides) . unwrap ( ) ;
195198 assert_has_label ( & sa, "app.kubernetes.io/name" , "overwritten" ) ;
196199 }
197200
198201 #[ test]
199- fn service_account_not_patched_as_different_name ( ) {
202+ fn service_account_not_merged_as_different_name ( ) {
200203 let mut sa = generate_service_account ( ) ;
201204 let object_overrides: ObjectOverrides = serde_yaml:: from_str (
202205 "
@@ -214,12 +217,12 @@ objectOverrides:
214217 . expect ( "test input is valid YAML" ) ;
215218
216219 let original = sa. clone ( ) ;
217- apply_patches ( & mut sa, object_overrides) . unwrap ( ) ;
218- assert_eq ! ( sa, original, "The patch shouldn't have changed anything" ) ;
220+ apply_object_overrides ( & mut sa, object_overrides) . unwrap ( ) ;
221+ assert_eq ! ( sa, original, "The merge shouldn't have changed anything" ) ;
219222 }
220223
221224 #[ test]
222- fn service_account_not_patched_as_different_namespace ( ) {
225+ fn service_account_not_merged_as_different_namespace ( ) {
223226 let mut sa = generate_service_account ( ) ;
224227 let object_overrides: ObjectOverrides = serde_yaml:: from_str (
225228 "
@@ -237,12 +240,12 @@ objectOverrides:
237240 . expect ( "test input is valid YAML" ) ;
238241
239242 let original = sa. clone ( ) ;
240- apply_patches ( & mut sa, object_overrides) . unwrap ( ) ;
241- assert_eq ! ( sa, original, "The patch shouldn't have changed anything" ) ;
243+ apply_object_overrides ( & mut sa, object_overrides) . unwrap ( ) ;
244+ assert_eq ! ( sa, original, "The merge shouldn't have changed anything" ) ;
242245 }
243246
244247 #[ test]
245- fn service_account_not_patched_as_different_api_version ( ) {
248+ fn service_account_not_merged_as_different_api_version ( ) {
246249 let mut sa = generate_service_account ( ) ;
247250 let object_overrides: ObjectOverrides = serde_yaml:: from_str (
248251 "
@@ -260,12 +263,12 @@ objectOverrides:
260263 . expect ( "test input is valid YAML" ) ;
261264
262265 let original = sa. clone ( ) ;
263- apply_patches ( & mut sa, object_overrides) . unwrap ( ) ;
264- assert_eq ! ( sa, original, "The patch shouldn't have changed anything" ) ;
266+ apply_object_overrides ( & mut sa, object_overrides) . unwrap ( ) ;
267+ assert_eq ! ( sa, original, "The merge shouldn't have changed anything" ) ;
265268 }
266269
267270 #[ test]
268- fn statefulset_patched_multiple_patches ( ) {
271+ fn statefulset_merged_multiple_merges ( ) {
269272 let mut sts = generate_stateful_set ( ) ;
270273 let object_overrides: ObjectOverrides = serde_yaml:: from_str (
271274 "
@@ -325,7 +328,7 @@ objectOverrides:
325328 get_trino_container_image( & sts) . as_deref( ) ,
326329 Some ( "trino-image" )
327330 ) ;
328- apply_patches ( & mut sts, object_overrides) . unwrap ( ) ;
331+ apply_object_overrides ( & mut sts, object_overrides) . unwrap ( ) ;
329332 assert_eq ! ( get_replicas( & sts) , Some ( 3 ) ) ;
330333 assert_eq ! (
331334 get_trino_container_image( & sts) . as_deref( ) ,
@@ -334,7 +337,7 @@ objectOverrides:
334337 }
335338
336339 #[ test]
337- fn configmap_patched ( ) {
340+ fn configmap_merged ( ) {
338341 let mut cm: ConfigMap = serde_yaml:: from_str (
339342 "
340343 apiVersion: v1
@@ -377,7 +380,7 @@ objectOverrides:
377380 ( "log.properties" . to_owned( ) , "=info" . to_owned( ) ) ,
378381 ] )
379382 ) ;
380- apply_patches ( & mut cm, object_overrides) . unwrap ( ) ;
383+ apply_object_overrides ( & mut cm, object_overrides) . unwrap ( ) ;
381384 assert_eq ! (
382385 cm. data. as_ref( ) . unwrap( ) ,
383386 & BTreeMap :: from( [
@@ -395,7 +398,7 @@ objectOverrides:
395398 }
396399
397400 #[ test]
398- fn secret_patched ( ) {
401+ fn secret_merged ( ) {
399402 let mut secret: Secret = serde_yaml:: from_str (
400403 "
401404 apiVersion: v1
@@ -433,7 +436,7 @@ objectOverrides:
433436 & BTreeMap :: from( [ ( "raw" . to_owned( ) , ByteString ( b"bar\n " . to_vec( ) ) ) ] )
434437 ) ;
435438
436- apply_patches ( & mut secret, object_overrides) . unwrap ( ) ;
439+ apply_object_overrides ( & mut secret, object_overrides) . unwrap ( ) ;
437440 assert_eq ! (
438441 secret. string_data. as_ref( ) . unwrap( ) ,
439442 & BTreeMap :: from( [ ( "foo" . to_owned( ) , "overwritten" . to_owned( ) ) , ] )
@@ -445,7 +448,7 @@ objectOverrides:
445448 }
446449
447450 #[ test]
448- fn cluster_scoped_object_patched ( ) {
451+ fn cluster_scoped_object_merged ( ) {
449452 let mut storage_class: StorageClass = serde_yaml:: from_str (
450453 "
451454 apiVersion: storage.k8s.io/v1
@@ -481,7 +484,7 @@ objectOverrides:
481484 . expect ( "test input is valid YAML" ) ;
482485
483486 assert_has_label ( & storage_class, "foo" , "original" ) ;
484- apply_patches ( & mut storage_class, object_overrides) . unwrap ( ) ;
487+ apply_object_overrides ( & mut storage_class, object_overrides) . unwrap ( ) ;
485488 assert_has_label ( & storage_class, "foo" , "overwritten" ) ;
486489 }
487490
0 commit comments