Skip to content

Commit 80f90af

Browse files
committed
refactor: Webpage sample better readability (#1771)
1 parent 2b86223 commit 80f90af

20 files changed

+52
-29
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public void installShutdownHook() {
9191

9292
/**
9393
* Adds a shutdown hook that automatically calls {@link #stop()} when the app shuts down. Note
94-
* that graceful shutdown is usually not needed, but your {@link Reconciler} implementations might
94+
* that graceful shutdown is usually not needed, but some {@link Reconciler} implementations might
9595
* require it.
9696
* <p>
9797
* Note that you might want to tune "terminationGracePeriodSeconds" for the Pod running the

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/Utils.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,62 @@
22

33
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
44
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusUpdateControl;
5+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
6+
import io.javaoperatorsdk.operator.sample.customresource.WebPageStatus;
57

68
import static io.javaoperatorsdk.operator.ReconcilerUtils.loadYaml;
79

810
public class Utils {
911

1012
private Utils() {}
1113

12-
static WebPageStatus createStatus(String configMapName) {
14+
public static WebPageStatus createStatus(String configMapName) {
1315
WebPageStatus status = new WebPageStatus();
1416
status.setHtmlConfigMap(configMapName);
1517
status.setAreWeGood(true);
1618
status.setErrorMessage(null);
1719
return status;
1820
}
1921

20-
static String configMapName(WebPage nginx) {
22+
public static String configMapName(WebPage nginx) {
2123
return nginx.getMetadata().getName() + "-html";
2224
}
2325

24-
static String deploymentName(WebPage nginx) {
26+
public static String deploymentName(WebPage nginx) {
2527
return nginx.getMetadata().getName();
2628
}
2729

28-
static String serviceName(WebPage webPage) {
30+
public static String serviceName(WebPage webPage) {
2931
return webPage.getMetadata().getName();
3032
}
3133

32-
static ErrorStatusUpdateControl<WebPage> handleError(WebPage resource, Exception e) {
34+
public static ErrorStatusUpdateControl<WebPage> handleError(WebPage resource, Exception e) {
3335
resource.getStatus().setErrorMessage("Error: " + e.getMessage());
3436
return ErrorStatusUpdateControl.updateStatus(resource);
3537
}
3638

37-
static void simulateErrorIfRequested(WebPage webPage) throws ErrorSimulationException {
39+
public static void simulateErrorIfRequested(WebPage webPage) throws ErrorSimulationException {
3840
if (webPage.getSpec().getHtml().contains("error")) {
3941
// special case just to showcase error if doing a demo
4042
throw new ErrorSimulationException("Simulating error");
4143
}
4244
}
4345

44-
static boolean isValidHtml(WebPage webPage) {
46+
public static boolean isValidHtml(WebPage webPage) {
4547
// very dummy html validation
4648
var lowerCaseHtml = webPage.getSpec().getHtml().toLowerCase();
4749
return lowerCaseHtml.contains("<html>") && lowerCaseHtml.contains("</html>");
4850
}
4951

50-
static WebPage setInvalidHtmlErrorMessage(WebPage webPage) {
52+
public static WebPage setInvalidHtmlErrorMessage(WebPage webPage) {
5153
if (webPage.getStatus() == null) {
5254
webPage.setStatus(new WebPageStatus());
5355
}
5456
webPage.getStatus().setErrorMessage("Invalid html.");
5557
return webPage;
5658
}
5759

58-
static Ingress makeDesiredIngress(WebPage webPage) {
60+
public static Ingress makeDesiredIngress(WebPage webPage) {
5961
Ingress ingress = loadYaml(Ingress.class, Utils.class, "ingress.yaml");
6062
ingress.getMetadata().setName(webPage.getMetadata().getName());
6163
ingress.getMetadata().setNamespace(webPage.getMetadata().getNamespace());

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageDependentsWorkflowReconciler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import io.javaoperatorsdk.operator.processing.dependent.workflow.Workflow;
2222
import io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowBuilder;
2323
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
24+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
25+
import io.javaoperatorsdk.operator.sample.dependentresource.*;
2426

2527
import static io.javaoperatorsdk.operator.sample.Utils.createStatus;
2628
import static io.javaoperatorsdk.operator.sample.Utils.handleError;

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import io.fabric8.kubernetes.api.model.ConfigMap;
44
import io.javaoperatorsdk.operator.api.reconciler.*;
55
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
6+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
7+
import io.javaoperatorsdk.operator.sample.dependentresource.*;
68

79
import static io.javaoperatorsdk.operator.sample.Utils.createStatus;
810
import static io.javaoperatorsdk.operator.sample.Utils.handleError;

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import io.fabric8.kubernetes.client.KubernetesClient;
1010
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
1111
import io.javaoperatorsdk.operator.Operator;
12+
import io.javaoperatorsdk.operator.sample.probes.LivenessHandler;
13+
import io.javaoperatorsdk.operator.sample.probes.StartupHandler;
1214

1315
import com.sun.net.httpserver.HttpServer;
1416

@@ -19,6 +21,10 @@ public class WebPageOperator {
1921
private static final Logger log = LoggerFactory.getLogger(WebPageOperator.class);
2022

2123

24+
/**
25+
* Based on env variables a different flavor of Reconciler is used, showcasing how the same logic
26+
* can be implemented using the low level and higher level APIs.
27+
*/
2228
public static void main(String[] args) throws IOException {
2329
log.info("WebServer Operator starting!");
2430

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.javaoperatorsdk.operator.processing.event.rate.RateLimited;
3030
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
3131
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
32+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
3233

3334
import static io.javaoperatorsdk.operator.sample.Utils.configMapName;
3435
import static io.javaoperatorsdk.operator.sample.Utils.createStatus;

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStandaloneDependentsReconciler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
1616
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig;
1717
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
18+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
19+
import io.javaoperatorsdk.operator.sample.dependentresource.ConfigMapDependentResource;
20+
import io.javaoperatorsdk.operator.sample.dependentresource.DeploymentDependentResource;
21+
import io.javaoperatorsdk.operator.sample.dependentresource.IngressDependentResource;
22+
import io.javaoperatorsdk.operator.sample.dependentresource.ServiceDependentResource;
1823

1924
import static io.javaoperatorsdk.operator.sample.Utils.*;
2025
import static io.javaoperatorsdk.operator.sample.WebPageManagedDependentsReconciler.SELECTOR;

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPage.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.customresource;
22

33
import io.fabric8.kubernetes.api.model.Namespaced;
44
import io.fabric8.kubernetes.client.CustomResource;

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageSpec.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageSpec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.customresource;
22

33
public class WebPageSpec {
44

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStatus.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageStatus.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.customresource;
22

33
import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus;
44

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/ConfigMapDependentResource.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ConfigMapDependentResource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.dependentresource;
22

33
import java.util.HashMap;
44
import java.util.Map;
@@ -12,6 +12,7 @@
1212
import io.javaoperatorsdk.operator.api.reconciler.Context;
1313
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
1414
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
15+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
1516

1617
import static io.javaoperatorsdk.operator.sample.Utils.configMapName;
1718
import static io.javaoperatorsdk.operator.sample.Utils.deploymentName;

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/DeploymentDependentResource.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.dependentresource;
22

33
import java.util.HashMap;
44
import java.util.Map;
@@ -8,6 +8,8 @@
88
import io.javaoperatorsdk.operator.api.reconciler.Context;
99
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
1010
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
11+
import io.javaoperatorsdk.operator.sample.Utils;
12+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
1113

1214
import static io.javaoperatorsdk.operator.ReconcilerUtils.loadYaml;
1315
import static io.javaoperatorsdk.operator.sample.Utils.configMapName;
@@ -28,7 +30,7 @@ protected Deployment desired(WebPage webPage, Context<WebPage> context) {
2830
Map<String, String> labels = new HashMap<>();
2931
labels.put(SELECTOR, "true");
3032
var deploymentName = deploymentName(webPage);
31-
Deployment deployment = loadYaml(Deployment.class, getClass(), "deployment.yaml");
33+
Deployment deployment = loadYaml(Deployment.class, Utils.class, "deployment.yaml");
3234
deployment.getMetadata().setName(deploymentName);
3335
deployment.getMetadata().setNamespace(webPage.getMetadata().getNamespace());
3436
deployment.getMetadata().setLabels(labels);

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/ExposedIngressCondition.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ExposedIngressCondition.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.dependentresource;
22

33
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
44
import io.javaoperatorsdk.operator.api.reconciler.Context;
55
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
66
import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
7+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
78

89
public class ExposedIngressCondition implements Condition<Ingress, WebPage> {
910

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/IngressDependentResource.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/IngressDependentResource.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.dependentresource;
22

33
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
44
import io.javaoperatorsdk.operator.api.reconciler.Context;
55
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
66
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
7+
import io.javaoperatorsdk.operator.sample.WebPageManagedDependentsReconciler;
8+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
79

810
import static io.javaoperatorsdk.operator.sample.Utils.makeDesiredIngress;
911

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ServiceDependentResource.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.dependentresource;
22

33
import java.util.HashMap;
44
import java.util.Map;
55

66
import io.fabric8.kubernetes.api.model.Service;
77
import io.javaoperatorsdk.operator.api.reconciler.Context;
88
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
9+
import io.javaoperatorsdk.operator.sample.Utils;
10+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
911

1012
import static io.javaoperatorsdk.operator.ReconcilerUtils.loadYaml;
1113
import static io.javaoperatorsdk.operator.sample.Utils.deploymentName;
@@ -25,7 +27,7 @@ public ServiceDependentResource() {
2527
protected Service desired(WebPage webPage, Context<WebPage> context) {
2628
Map<String, String> serviceLabels = new HashMap<>();
2729
serviceLabels.put(SELECTOR, "true");
28-
Service service = loadYaml(Service.class, getClass(), "service.yaml");
30+
Service service = loadYaml(Service.class, Utils.class, "service.yaml");
2931
service.getMetadata().setName(serviceName(webPage));
3032
service.getMetadata().setNamespace(webPage.getMetadata().getNamespace());
3133
service.getMetadata().setLabels(serviceLabels);

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/LivenessHandler.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/probes/LivenessHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.probes;
22

33
import java.io.IOException;
44

@@ -7,7 +7,7 @@
77
import com.sun.net.httpserver.HttpExchange;
88
import com.sun.net.httpserver.HttpHandler;
99

10-
import static io.javaoperatorsdk.operator.sample.StartupHandler.sendMessage;
10+
import static io.javaoperatorsdk.operator.sample.probes.StartupHandler.sendMessage;
1111

1212
public class LivenessHandler implements HttpHandler {
1313

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/StartupHandler.java renamed to sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/probes/StartupHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.javaoperatorsdk.operator.sample;
1+
package io.javaoperatorsdk.operator.sample.probes;
22

33
import java.io.IOException;
44
import java.nio.charset.StandardCharsets;

sample-operators/webpage/src/main/resources/io/javaoperatorsdk/operator/sample/html-configmap.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
1919
import io.fabric8.kubernetes.client.LocalPortForward;
2020
import io.javaoperatorsdk.operator.junit.AbstractOperatorExtension;
21+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
22+
import io.javaoperatorsdk.operator.sample.customresource.WebPageSpec;
2123

2224
import static io.javaoperatorsdk.operator.sample.Utils.deploymentName;
2325
import static io.javaoperatorsdk.operator.sample.Utils.serviceName;

sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.javaoperatorsdk.operator.junit.AbstractOperatorExtension;
1313
import io.javaoperatorsdk.operator.junit.ClusterDeployedOperatorExtension;
1414
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
15+
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
1516

1617
import static io.javaoperatorsdk.operator.sample.WebPageOperator.WEBPAGE_CLASSIC_RECONCILER_ENV_VALUE;
1718
import static io.javaoperatorsdk.operator.sample.WebPageOperator.WEBPAGE_RECONCILER_ENV;

0 commit comments

Comments
 (0)