@@ -23,24 +23,7 @@ private GenericKubernetesResourceMatcher(KubernetesDependentResource<R, P> depen
2323 @ SuppressWarnings ({"unchecked" , "rawtypes" })
2424 static <R extends HasMetadata , P extends HasMetadata > Matcher <R , P > matcherFor (
2525 Class <R > resourceType , KubernetesDependentResource <R , P > dependentResource ) {
26- if (Secret .class .isAssignableFrom (resourceType )) {
27- return (actualResource , primary , context ) -> {
28- final var desired = dependentResource .desired (primary , context );
29- return Result .computed (
30- ResourceComparators .compareSecretData ((Secret ) desired , (Secret ) actualResource ),
31- desired );
32- };
33- } else if (ConfigMap .class .isAssignableFrom (resourceType )) {
34- return (actualResource , primary , context ) -> {
35- final var desired = dependentResource .desired (primary , context );
36- return Result .computed (
37- ResourceComparators .compareConfigMapData ((ConfigMap ) desired ,
38- (ConfigMap ) actualResource ),
39- desired );
40- };
41- } else {
42- return new GenericKubernetesResourceMatcher (dependentResource );
43- }
26+ return new GenericKubernetesResourceMatcher (dependentResource );
4427 }
4528
4629 @ Override
@@ -49,8 +32,8 @@ public Result<R> match(R actualResource, P primary, Context<P> context) {
4932 return match (desired , actualResource , false );
5033 }
5134
52- public static <R extends HasMetadata > Result <R > match (
53- R desired , R actualResource , boolean considerMetadata ) {
35+ public static <R extends HasMetadata > Result <R > match (R desired , R actualResource ,
36+ boolean considerMetadata ) {
5437 if (considerMetadata ) {
5538 final var desiredMetadata = desired .getMetadata ();
5639 final var actualMetadata = actualResource .getMetadata ();
@@ -62,20 +45,30 @@ public static <R extends HasMetadata> Result<R> match(
6245 }
6346 }
6447
65- final var objectMapper = ConfigurationServiceProvider .instance ().getObjectMapper ();
48+ if (desired instanceof ConfigMap ) {
49+ return Result .computed (
50+ ResourceComparators .compareConfigMapData ((ConfigMap ) desired , (ConfigMap ) actualResource ),
51+ desired );
52+ } else if (desired instanceof Secret ) {
53+ return Result .computed (
54+ ResourceComparators .compareSecretData ((Secret ) desired , (Secret ) actualResource ),
55+ desired );
56+ } else {
57+ final var objectMapper = ConfigurationServiceProvider .instance ().getObjectMapper ();
6658
67- // reflection will be replaced by this:
68- // https://github.com/fabric8io/kubernetes-client/issues/3816
69- var desiredSpecNode = objectMapper .valueToTree (ReconcilerUtils .getSpec (desired ));
70- var actualSpecNode = objectMapper .valueToTree (ReconcilerUtils .getSpec (actualResource ));
71- var diffJsonPatch = JsonDiff .asJson (desiredSpecNode , actualSpecNode );
72- for (int i = 0 ; i < diffJsonPatch .size (); i ++) {
73- String operation = diffJsonPatch .get (i ).get ("op" ).asText ();
74- if (!operation .equals ("add" )) {
75- return Result .computed (false , desired );
59+ // reflection will be replaced by this:
60+ // https://github.com/fabric8io/kubernetes-client/issues/3816
61+ var desiredSpecNode = objectMapper .valueToTree (ReconcilerUtils .getSpec (desired ));
62+ var actualSpecNode = objectMapper .valueToTree (ReconcilerUtils .getSpec (actualResource ));
63+ var diffJsonPatch = JsonDiff .asJson (desiredSpecNode , actualSpecNode );
64+ for (int i = 0 ; i < diffJsonPatch .size (); i ++) {
65+ String operation = diffJsonPatch .get (i ).get ("op" ).asText ();
66+ if (!operation .equals ("add" )) {
67+ return Result .computed (false , desired );
68+ }
7669 }
70+ return Result .computed (true , desired );
7771 }
78- return Result .computed (true , desired );
7972 }
8073
8174 /**
0 commit comments