From d2301d6c7c2fb0c23a1801567088de511c9d0fff Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 31 May 2022 17:45:24 +0200 Subject: [PATCH 1/6] feat: add initial support for codestart --- core/runtime/pom.xml | 20 +++++++++++++++++++ .../base/README.tpl.qute.md | 3 +++ .../operator-sdk-codestart/codestart.yml | 7 +++++++ .../resources/META-INF/quarkus-extension.yaml | 13 ++++++++---- 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/base/README.tpl.qute.md create mode 100644 core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/codestart.yml diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml index d7fd8f874..8ef9bbe4a 100644 --- a/core/runtime/pom.xml +++ b/core/runtime/pom.xml @@ -68,6 +68,26 @@ + + maven-jar-plugin + + + generate-codestart-jar + generate-resources + + jar + + + ${project.basedir}/src/main + + codestarts/** + + codestarts + true + + + + io.quarkus quarkus-bootstrap-maven-plugin diff --git a/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/base/README.tpl.qute.md b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/base/README.tpl.qute.md new file mode 100644 index 000000000..5ba55c271 --- /dev/null +++ b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/base/README.tpl.qute.md @@ -0,0 +1,3 @@ +{#include readme-header /} + +FOO \ No newline at end of file diff --git a/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/codestart.yml b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/codestart.yml new file mode 100644 index 000000000..d65f0e20c --- /dev/null +++ b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/codestart.yml @@ -0,0 +1,7 @@ +name: operator-sdk-codestart +ref: quarkus-operator-sdk +type: code +tags: extension-codestart, operator, kubernetes +metadata: + title: Java Operator SDK Extension + description: This bootstraps an operator project using the Java Operator SDK project \ No newline at end of file diff --git a/core/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/core/runtime/src/main/resources/META-INF/quarkus-extension.yaml index 262b90a5d..bf587227d 100644 --- a/core/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/core/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -3,9 +3,14 @@ name: Quarkus - Operator SDK description: Quarkus extension for the Java Operator SDK (https://javaoperatorsdk.io) metadata: keywords: - - operator - - kubernetes - - openshift + - operator + - kubernetes + - openshift categories: - - "cloud" + - "cloud" + codestart: + name: "quarkus-operator-sdk" + languages: + - "java" + artifact: "io.quarkiverse.operatorsdk:quarkus-operator-sdk:codestarts:jar:${project.version}" # status: "preview" From c5560fc661ceada853b7733ff99a3bcca6ceb425 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 31 May 2022 18:19:37 +0200 Subject: [PATCH 2/6] refactor: move IT tests in the core module where they should be --- .../integration-tests}/pom.xml | 7 +----- .../operatorsdk/it/AbstractReconciler.java | 0 .../it/ApplicationScopedReconciler.java | 0 .../operatorsdk/it/CRUDDependentResource.java | 0 .../operatorsdk/it/ChildTestResource.java | 0 .../operatorsdk/it/ChildTestResource2.java | 0 .../operatorsdk/it/ConfiguredReconciler.java | 0 .../quarkiverse/operatorsdk/it/Delayed.java | 0 .../it/DependentDefiningReconciler.java | 0 .../operatorsdk/it/GatewayReconciler.java | 0 .../it/IgnoredByAnnotationReconciler.java | 0 .../it/NamespaceFromEnvReconciler.java | 0 .../operatorsdk/it/OperatorSDKResource.java | 0 .../it/ReadOnlyDependentResource.java | 0 .../operatorsdk/it/RegistrableReconciler.java | 0 .../operatorsdk/it/SecretReconciler.java | 0 .../it/ShouldBeIgnoredReconciler.java | 0 .../it/ShouldBeIgnoredReconciler2.java | 0 .../io/quarkiverse/operatorsdk/it/Test.java | 0 .../operatorsdk/it/TestReconciler.java | 0 .../operatorsdk/it/TestResource.java | 0 .../src/main/resources/application.properties | 0 .../CustomKubernetesServerTestResource.java | 0 .../it/NativeOperatorSDKResourceIT.java | 0 .../it/OperatorSDKResourceTest.java | 0 core/pom.xml | 23 +++++++++++++++---- pom.xml | 12 ---------- 27 files changed, 20 insertions(+), 22 deletions(-) rename {integration-tests => core/integration-tests}/pom.xml (92%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ApplicationScopedReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/CRUDDependentResource.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource2.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/DependentDefiningReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/GatewayReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/IgnoredByAnnotationReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/OperatorSDKResource.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ReadOnlyDependentResource.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/SecretReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler2.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/Test.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/TestReconciler.java (100%) rename {integration-tests => core/integration-tests}/src/main/java/io/quarkiverse/operatorsdk/it/TestResource.java (100%) rename {integration-tests => core/integration-tests}/src/main/resources/application.properties (100%) rename {integration-tests => core/integration-tests}/src/test/java/io/quarkiverse/operatorsdk/it/CustomKubernetesServerTestResource.java (100%) rename {integration-tests => core/integration-tests}/src/test/java/io/quarkiverse/operatorsdk/it/NativeOperatorSDKResourceIT.java (100%) rename {integration-tests => core/integration-tests}/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKResourceTest.java (100%) diff --git a/integration-tests/pom.xml b/core/integration-tests/pom.xml similarity index 92% rename from integration-tests/pom.xml rename to core/integration-tests/pom.xml index a82e9b99d..b62b9b66f 100644 --- a/integration-tests/pom.xml +++ b/core/integration-tests/pom.xml @@ -3,9 +3,8 @@ 4.0.0 io.quarkiverse.operatorsdk - quarkus-operator-sdk-build-parent + quarkus-operator-sdk-core-parent 4.0.0-SNAPSHOT - ../build-parent/pom.xml quarkus-operator-sdk-integration-tests Quarkus - Operator SDK - Integration Tests @@ -21,10 +20,6 @@ io.quarkiverse.operatorsdk quarkus-operator-sdk - - - io.quarkiverse.operatorsdk - quarkus-operator-sdk-bundle-generator io.quarkus diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ApplicationScopedReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ApplicationScopedReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ApplicationScopedReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ApplicationScopedReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CRUDDependentResource.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CRUDDependentResource.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CRUDDependentResource.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CRUDDependentResource.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource2.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource2.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource2.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ChildTestResource2.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/DependentDefiningReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/DependentDefiningReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/DependentDefiningReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/DependentDefiningReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/GatewayReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/GatewayReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/GatewayReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/GatewayReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/IgnoredByAnnotationReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/IgnoredByAnnotationReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/IgnoredByAnnotationReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/IgnoredByAnnotationReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/OperatorSDKResource.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/OperatorSDKResource.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/OperatorSDKResource.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/OperatorSDKResource.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ReadOnlyDependentResource.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ReadOnlyDependentResource.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ReadOnlyDependentResource.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ReadOnlyDependentResource.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/SecretReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/SecretReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/SecretReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/SecretReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler2.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler2.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler2.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ShouldBeIgnoredReconciler2.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Test.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Test.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Test.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Test.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestReconciler.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestReconciler.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestReconciler.java diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestResource.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestResource.java similarity index 100% rename from integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestResource.java rename to core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/TestResource.java diff --git a/integration-tests/src/main/resources/application.properties b/core/integration-tests/src/main/resources/application.properties similarity index 100% rename from integration-tests/src/main/resources/application.properties rename to core/integration-tests/src/main/resources/application.properties diff --git a/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/CustomKubernetesServerTestResource.java b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/CustomKubernetesServerTestResource.java similarity index 100% rename from integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/CustomKubernetesServerTestResource.java rename to core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/CustomKubernetesServerTestResource.java diff --git a/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/NativeOperatorSDKResourceIT.java b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/NativeOperatorSDKResourceIT.java similarity index 100% rename from integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/NativeOperatorSDKResourceIT.java rename to core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/NativeOperatorSDKResourceIT.java diff --git a/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKResourceTest.java b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKResourceTest.java similarity index 100% rename from integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKResourceTest.java rename to core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKResourceTest.java diff --git a/core/pom.xml b/core/pom.xml index 8dd5cedf2..3a362bfce 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -13,8 +13,23 @@ quarkus-operator-sdk-core-parent pom - - deployment - runtime - + + deployment + runtime + + + + + it + + + performRelease + !true + + + + integration-tests + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 137fb0aed..b35459132 100644 --- a/pom.xml +++ b/pom.xml @@ -35,18 +35,6 @@ bundle-generator - - it - - - performRelease - !true - - - - integration-tests - - quick-build From 1a51e79d80b55284249d25da3d281d245f3044f9 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 31 May 2022 18:21:54 +0200 Subject: [PATCH 3/6] chore: remove unused classes --- .../operatorsdk/it/AbstractReconciler.java | 33 ------------------- .../quarkiverse/operatorsdk/it/Delayed.java | 9 ----- .../operatorsdk/it/RegistrableReconciler.java | 9 ----- 3 files changed, 51 deletions(-) delete mode 100644 core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java delete mode 100644 core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java delete mode 100644 core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java diff --git a/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java deleted file mode 100644 index 142bacca9..000000000 --- a/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/AbstractReconciler.java +++ /dev/null @@ -1,33 +0,0 @@ -package io.quarkiverse.operatorsdk.it; - -import java.util.Collections; -import java.util.Map; - -import io.javaoperatorsdk.operator.api.reconciler.Context; -import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext; -import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer; -import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; -import io.javaoperatorsdk.operator.processing.event.source.EventSource; - -public abstract class AbstractReconciler implements - RegistrableReconciler, EventSourceInitializer { - - private boolean initialized; - - @Override - public UpdateControl reconcile(T t, Context context) { - return null; - } - - @Override - public Map prepareEventSources(EventSourceContext eventSourceContext) { - // this method gets called when the controller gets registered - initialized = true; - return Collections.emptyMap(); - } - - @Override - public boolean isInitialized() { - return initialized; - } -} diff --git a/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java deleted file mode 100644 index e87565397..000000000 --- a/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/Delayed.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.quarkiverse.operatorsdk.it; - -import io.fabric8.kubernetes.model.annotation.Group; -import io.fabric8.kubernetes.model.annotation.Version; - -@Group("josdk.quarkiverse.io") -@Version("v1alpha1") -public class Delayed extends TestResource { -} diff --git a/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java b/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java deleted file mode 100644 index 6befac1cd..000000000 --- a/core/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/RegistrableReconciler.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.quarkiverse.operatorsdk.it; - -import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.api.reconciler.Reconciler; - -public interface RegistrableReconciler extends Reconciler { - - boolean isInitialized(); -} From 46286c695f18f3b0ac7bd7c0eab72a8295c5477e Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 31 May 2022 21:19:09 +0200 Subject: [PATCH 4/6] feat: add initial code for generation --- .../src/main/java/org/acme/MyCustomResource.java | 7 +++++++ .../java/org/acme/MyCustomResourceReconciler.java | 15 +++++++++++++++ .../main/java/org/acme/MyCustomResourceSpec.java | 5 +++++ .../java/org/acme/MyCustomResourceStatus.java | 5 +++++ 4 files changed, 32 insertions(+) create mode 100644 core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResource.java create mode 100644 core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceReconciler.java create mode 100644 core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceSpec.java create mode 100644 core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceStatus.java diff --git a/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResource.java b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResource.java new file mode 100644 index 000000000..9040f35ab --- /dev/null +++ b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResource.java @@ -0,0 +1,7 @@ +package org.acme; + +import io.fabric8.kubernetes.client.CustomResource; + +public class MyCustomResource extends CustomResource { + +} diff --git a/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceReconciler.java b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceReconciler.java new file mode 100644 index 000000000..08d781a39 --- /dev/null +++ b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceReconciler.java @@ -0,0 +1,15 @@ +package org.acme; + +import io.javaoperatorsdk.operator.api.reconciler.Context; +import io.javaoperatorsdk.operator.api.reconciler.Reconciler; +import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; + +public class MyCustomResourceReconciler implements Reconciler { + + @Override + public UpdateControl reconcile(MyCustomResource myCustomResource, + Context context) throws Exception { + // implement reconciliation logic + return UpdateControl.noUpdate(); + } +} \ No newline at end of file diff --git a/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceSpec.java b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceSpec.java new file mode 100644 index 000000000..f584b1b9f --- /dev/null +++ b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceSpec.java @@ -0,0 +1,5 @@ +package org.acme; + +public class MyCustomResourceSpec { + // add spec fields +} diff --git a/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceStatus.java b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceStatus.java new file mode 100644 index 000000000..4188a5274 --- /dev/null +++ b/core/runtime/src/main/codestarts/quarkus/operator-sdk-codestart/java/src/main/java/org/acme/MyCustomResourceStatus.java @@ -0,0 +1,5 @@ +package org.acme; + +public class MyCustomResourceStatus { + // add status fields +} From baf58bb93dc3d2d55817426e92e925c70741aaf6 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 31 May 2022 21:19:57 +0200 Subject: [PATCH 5/6] chore(tests): add codestart test --- core/integration-tests/pom.xml | 5 +++ .../it/OperatorSDKCodestartTest.java | 31 +++++++++++++++++++ ..._java_ilove_quark_us_MyCustomResource.java | 7 +++++ ...e_quark_us_MyCustomResourceReconciler.java | 15 +++++++++ ...a_ilove_quark_us_MyCustomResourceSpec.java | 5 +++ ...ilove_quark_us_MyCustomResourceStatus.java | 5 +++ 6 files changed, 68 insertions(+) create mode 100644 core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java create mode 100644 core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResource.java create mode 100644 core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceReconciler.java create mode 100644 core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceSpec.java create mode 100644 core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceStatus.java diff --git a/core/integration-tests/pom.xml b/core/integration-tests/pom.xml index b62b9b66f..5c7f207b7 100644 --- a/core/integration-tests/pom.xml +++ b/core/integration-tests/pom.xml @@ -49,6 +49,11 @@ bcpkix-jdk15on true + + io.quarkus + quarkus-devtools-testing + test + diff --git a/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java new file mode 100644 index 000000000..74c1ddeaa --- /dev/null +++ b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java @@ -0,0 +1,31 @@ +package io.quarkiverse.operatorsdk.it; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import io.quarkus.devtools.codestarts.quarkus.QuarkusCodestartCatalog.Language; +import io.quarkus.devtools.testing.codestarts.QuarkusCodestartTest; +import io.quarkus.maven.ArtifactCoords; + +public class OperatorSDKCodestartTest { + + @RegisterExtension + static QuarkusCodestartTest codestartTest = QuarkusCodestartTest.builder() + .standaloneExtensionCatalog() + .extension(ArtifactCoords.fromString("io.quarkiverse.operatorsdk:quarkus-operator-sdk:4.0.0-SNAPSHOT")) + .languages(Language.JAVA) + .build(); + + @Test + void testContent() throws Throwable { + codestartTest.checkGeneratedSource("org.acme.MyCustomResourceReconciler"); + codestartTest.checkGeneratedSource("org.acme.MyCustomResource"); + codestartTest.checkGeneratedSource("org.acme.MyCustomResourceSpec"); + codestartTest.checkGeneratedSource("org.acme.MyCustomResourceStatus"); + } + + @Test + void testBuild() throws Throwable { + codestartTest.buildAllProjects(); + } +} diff --git a/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResource.java b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResource.java new file mode 100644 index 000000000..f9b61a6cb --- /dev/null +++ b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResource.java @@ -0,0 +1,7 @@ +package ilove.quark.us; + +import io.fabric8.kubernetes.client.CustomResource; + +public class MyCustomResource extends CustomResource { + +} diff --git a/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceReconciler.java b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceReconciler.java new file mode 100644 index 000000000..78a837c85 --- /dev/null +++ b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceReconciler.java @@ -0,0 +1,15 @@ +package ilove.quark.us; + +import io.javaoperatorsdk.operator.api.reconciler.Context; +import io.javaoperatorsdk.operator.api.reconciler.Reconciler; +import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; + +public class MyCustomResourceReconciler implements Reconciler { + + @Override + public UpdateControl reconcile(MyCustomResource myCustomResource, + Context context) throws Exception { + // implement reconciliation logic + return UpdateControl.noUpdate(); + } +} \ No newline at end of file diff --git a/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceSpec.java b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceSpec.java new file mode 100644 index 000000000..2259fe541 --- /dev/null +++ b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceSpec.java @@ -0,0 +1,5 @@ +package ilove.quark.us; + +public class MyCustomResourceSpec { + // add spec fields +} diff --git a/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceStatus.java b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceStatus.java new file mode 100644 index 000000000..41d341c6c --- /dev/null +++ b/core/integration-tests/src/test/resources/__snapshots__/OperatorSDKCodestartTest/testContent/src_main_java_ilove_quark_us_MyCustomResourceStatus.java @@ -0,0 +1,5 @@ +package ilove.quark.us; + +public class MyCustomResourceStatus { + // add status fields +} From e229cc50a7caaba39176f947d2bd2163be4bd16b Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Thu, 2 Jun 2022 14:01:41 +0200 Subject: [PATCH 6/6] fix: avoid hardcoding project version --- build-parent/pom.xml | 5 +++++ .../quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/build-parent/pom.xml b/build-parent/pom.xml index b60a47949..ed45048a9 100644 --- a/build-parent/pom.xml +++ b/build-parent/pom.xml @@ -77,6 +77,11 @@ maven-surefire-plugin ${surefire-plugin.version} + + + ${project.version} + + diff --git a/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java index 74c1ddeaa..d1a6c0c8f 100644 --- a/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java +++ b/core/integration-tests/src/test/java/io/quarkiverse/operatorsdk/it/OperatorSDKCodestartTest.java @@ -12,7 +12,8 @@ public class OperatorSDKCodestartTest { @RegisterExtension static QuarkusCodestartTest codestartTest = QuarkusCodestartTest.builder() .standaloneExtensionCatalog() - .extension(ArtifactCoords.fromString("io.quarkiverse.operatorsdk:quarkus-operator-sdk:4.0.0-SNAPSHOT")) + .extension(ArtifactCoords + .fromString("io.quarkiverse.operatorsdk:quarkus-operator-sdk:" + System.getProperty("project.version"))) .languages(Language.JAVA) .build();