1616import io .fabric8 .kubernetes .api .model .apps .Deployment ;
1717import io .fabric8 .kubernetes .api .model .networking .v1 .Ingress ;
1818import io .fabric8 .kubernetes .client .KubernetesClient ;
19+ import io .fabric8 .kubernetes .client .dsl .Replaceable ;
1920import io .javaoperatorsdk .operator .ReconcilerUtils ;
2021import io .javaoperatorsdk .operator .api .config .informer .InformerConfiguration ;
2122import io .javaoperatorsdk .operator .api .reconciler .Context ;
@@ -107,7 +108,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
107108 desiredHtmlConfigMap .getMetadata ().getName (),
108109 ns );
109110 var res = kubernetesClient .configMaps ().inNamespace (ns ).resource (desiredHtmlConfigMap )
110- .createOrReplace ( );
111+ .createOr ( Replaceable :: update );
111112 log .debug ("Updated config map: {}" , res );
112113 }
113114
@@ -118,7 +119,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
118119 desiredDeployment .getMetadata ().getName (),
119120 ns );
120121 kubernetesClient .apps ().deployments ().inNamespace (ns ).resource (desiredDeployment )
121- .createOrReplace ( );
122+ .createOr ( Replaceable :: update );
122123 }
123124
124125 var existingService = context .getSecondaryResource (Service .class ).orElse (null );
@@ -127,14 +128,15 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
127128 "Creating or updating Deployment {} in {}" ,
128129 desiredDeployment .getMetadata ().getName (),
129130 ns );
130- kubernetesClient .services ().inNamespace (ns ).resource (desiredService ).createOrReplace ();
131+ kubernetesClient .services ().inNamespace (ns ).resource (desiredService )
132+ .createOr (Replaceable ::update );
131133 }
132134
133135 var existingIngress = context .getSecondaryResource (Ingress .class );
134136 if (Boolean .TRUE .equals (webPage .getSpec ().getExposed ())) {
135137 var desiredIngress = makeDesiredIngress (webPage );
136138 if (existingIngress .isEmpty () || !match (desiredIngress , existingIngress .get ())) {
137- kubernetesClient .resource (desiredIngress ).inNamespace (ns ).createOrReplace ( );
139+ kubernetesClient .resource (desiredIngress ).inNamespace (ns ).createOr ( Replaceable :: update );
138140 }
139141 } else
140142 existingIngress .ifPresent (
@@ -150,7 +152,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
150152 kubernetesClient .pods ().inNamespace (ns ).withLabel ("app" , deploymentName (webPage )).delete ();
151153 }
152154 webPage .setStatus (createStatus (desiredHtmlConfigMap .getMetadata ().getName ()));
153- return UpdateControl .updateStatus (webPage );
155+ return UpdateControl .patchStatus (webPage );
154156 }
155157
156158 private boolean match (Ingress desiredIngress , Ingress existingIngress ) {
0 commit comments