This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/master by this push:
     new 8028be0  Kubernetes extension native support
8028be0 is described below

commit 8028be01dd6f832a5c8c7900f7d9edd032fd845a
Author: James Netherton <[email protected]>
AuthorDate: Thu Apr 16 07:16:08 2020 +0100

    Kubernetes extension native support
    
    Fixes #1039
---
 .../pages/list-of-camel-quarkus-extensions.adoc    | 64 +++++++++++-----------
 extensions-jvm/pom.xml                             |  1 -
 .../kubernetes/deployment/pom.xml                  |  0
 .../kubernetes/deployment/KubernetesProcessor.java | 24 ++------
 {extensions-jvm => extensions}/kubernetes/pom.xml  |  1 -
 .../kubernetes/runtime/pom.xml                     |  0
 .../kubernetes/CamelKubernetesRecorder.java        |  0
 .../main/resources/META-INF/quarkus-extension.yaml |  3 +-
 extensions/pom.xml                                 |  1 +
 .../kubernetes}/pom.xml                            | 36 +++++++++++-
 .../kubernetes/it/KubernetesResource.java          |  0
 .../component/kubernetes/it/KubernetesIT.java      |  0
 .../component/kubernetes/it/KubernetesTest.java    |  0
 integration-tests/pom.xml                          |  1 +
 tooling/scripts/validate-github-workflows.groovy   |  2 +-
 15 files changed, 74 insertions(+), 59 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc 
b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 48b5df0..3e0b790 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -354,60 +354,60 @@ Level | Since | Description
  Stable | 1.0.0-M1 | The kafka component allows messages to be sent to (or 
consumed from) Apache Kafka brokers.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-config-maps-component.html[Kubernetes
 ConfigMap] (camel-quarkus-kubernetes) +
-`kubernetes-config-maps:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Configmaps component provides a producer 
to execute kubernetes configmap operations.
+`kubernetes-config-maps:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Configmaps component provides a producer 
to execute kubernetes configmap operations.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-deployments-component.html[Kubernetes
 Deployments] (camel-quarkus-kubernetes) +
-`kubernetes-deployments:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Nodes component provides a producer to 
execute kubernetes node operations and a consumer to consume node events.
+`kubernetes-deployments:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Nodes component provides a producer to 
execute kubernetes node operations and a consumer to consume node events.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-hpa-component.html[Kubernetes
 HPA] (camel-quarkus-kubernetes) +
-`kubernetes-hpa:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes HPA component provides a producer to 
execute kubernetes hpa operations and a consumer to consume HPA events.
+`kubernetes-hpa:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes HPA component provides a producer to 
execute kubernetes hpa operations and a consumer to consume HPA events.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-job-component.html[Kubernetes
 Job] (camel-quarkus-kubernetes) +
-`kubernetes-job:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Jobs component provides a producer to 
execute kubernetes job operations
+`kubernetes-job:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Jobs component provides a producer to 
execute kubernetes job operations
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-namespaces-component.html[Kubernetes
 Namespaces] (camel-quarkus-kubernetes) +
-`kubernetes-namespaces:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Namespaces component provides a producer 
to execute kubernetes namespace operations and a consumer to consume namespace 
events.
+`kubernetes-namespaces:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Namespaces component provides a producer 
to execute kubernetes namespace operations and a consumer to consume namespace 
events.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-nodes-component.html[Kubernetes
 Nodes] (camel-quarkus-kubernetes) +
-`kubernetes-nodes:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Nodes component provides a producer to 
execute kubernetes node operations and a consumer to consume node events.
+`kubernetes-nodes:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Nodes component provides a producer to 
execute kubernetes node operations and a consumer to consume node events.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-persistent-volumes-component.html[Kubernetes
 Persistent Volume] (camel-quarkus-kubernetes) +
-`kubernetes-persistent-volumes:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Persistent Volumes component provides a 
producer to execute kubernetes persistent volume operations.
+`kubernetes-persistent-volumes:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Persistent Volumes component provides a 
producer to execute kubernetes persistent volume operations.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-persistent-volumes-claims-component.html[Kubernetes
 Persistent Volume Claim] (camel-quarkus-kubernetes) +
-`kubernetes-persistent-volumes-claims:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Persistent Volumes Claims component 
provides a producer to execute kubernetes persistent volume claim operations.
+`kubernetes-persistent-volumes-claims:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Persistent Volumes Claims component 
provides a producer to execute kubernetes persistent volume claim operations.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-pods-component.html[Kubernetes
 Pods] (camel-quarkus-kubernetes) +
-`kubernetes-pods:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Pods component provides a producer to 
execute kubernetes pod operations and a consumer to consume pod events.
+`kubernetes-pods:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Pods component provides a producer to 
execute kubernetes pod operations and a consumer to consume pod events.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-replication-controllers-component.html[Kubernetes
 Replication Controller] (camel-quarkus-kubernetes) +
-`kubernetes-replication-controllers:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Replication Controllers component 
provides a producer to execute kubernetes replication controller operations and 
a consumer to consume replication controller events.
+`kubernetes-replication-controllers:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Replication Controllers component provides 
a producer to execute kubernetes replication controller operations and a 
consumer to consume replication controller events.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-resources-quota-component.html[Kubernetes
 Resources Quota] (camel-quarkus-kubernetes) +
-`kubernetes-resources-quota:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Resources Quota component provides a 
producer to execute kubernetes resources quota operations.
+`kubernetes-resources-quota:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Resources Quota component provides a 
producer to execute kubernetes resources quota operations.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-secrets-component.html[Kubernetes
 Secrets] (camel-quarkus-kubernetes) +
-`kubernetes-secrets:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Secrets component provides a producer to 
execute kubernetes secret operations.
+`kubernetes-secrets:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Secrets component provides a producer to 
execute kubernetes secret operations.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-service-accounts-component.html[Kubernetes
 Service Account] (camel-quarkus-kubernetes) +
-`kubernetes-service-accounts:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Service Accounts component provides a 
producer to execute service account operations.
+`kubernetes-service-accounts:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Service Accounts component provides a 
producer to execute service account operations.
 
 | 
link:https://camel.apache.org/components/latest/kubernetes-services-component.html[Kubernetes
 Services] (camel-quarkus-kubernetes) +
-`kubernetes-services:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Services component provides a producer to 
execute service operations and a consumer to consume service events.
+`kubernetes-services:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Services component provides a producer to 
execute service operations and a consumer to consume service events.
 
 | link:https://camel.apache.org/components/latest/kudu-component.html[Kudu] 
(camel-quarkus-kudu) +
 `kudu:host:port/tableName` | JVM +
@@ -454,12 +454,12 @@ Level | Since | Description
  Stable | 1.0.0-M4 | Communicates with OData 4.0 services using Apache Olingo 
OData API.
 
 | 
link:https://camel.apache.org/components/latest/openshift-build-configs-component.html[Openshift
 Build Config] (camel-quarkus-kubernetes) +
-`openshift-build-configs:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Kubernetes Build Config component provides a 
producer to execute kubernetes build config operations.
+`openshift-build-configs:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Kubernetes Build Config component provides a producer 
to execute kubernetes build config operations.
 
 | 
link:https://camel.apache.org/components/latest/openshift-builds-component.html[Openshift
 Builds] (camel-quarkus-kubernetes) +
-`openshift-builds:masterUrl` | JVM +
- Preview | 1.0.0-M6 | The Openshift Builds component provides a producer to 
execute openshift build operations.
+`openshift-builds:masterUrl` | Native +
+ Stable | 1.0.0-M6 | The Openshift Builds component provides a producer to 
execute openshift build operations.
 
 | 
link:https://camel.apache.org/components/latest/openstack-cinder-component.html[OpenStack
 Cinder] (camel-quarkus-openstack) +
 `openstack-cinder:host` | JVM +
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index d91fb23..afbd18c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -58,7 +58,6 @@
         <module>google-pubsub</module>
         <module>groovy</module>
         <module>grpc</module>
-        <module>kubernetes</module>
         <module>kudu</module>
         <module>mongodb-gridfs</module>
         <module>nitrite</module>
diff --git a/extensions-jvm/kubernetes/deployment/pom.xml 
b/extensions/kubernetes/deployment/pom.xml
similarity index 100%
rename from extensions-jvm/kubernetes/deployment/pom.xml
rename to extensions/kubernetes/deployment/pom.xml
diff --git 
a/extensions-jvm/kubernetes/deployment/src/main/java/org/apache/camel/quarkus/component/kubernetes/deployment/KubernetesProcessor.java
 
b/extensions/kubernetes/deployment/src/main/java/org/apache/camel/quarkus/component/kubernetes/deployment/KubernetesProcessor.java
similarity index 66%
rename from 
extensions-jvm/kubernetes/deployment/src/main/java/org/apache/camel/quarkus/component/kubernetes/deployment/KubernetesProcessor.java
rename to 
extensions/kubernetes/deployment/src/main/java/org/apache/camel/quarkus/component/kubernetes/deployment/KubernetesProcessor.java
index ba7893e..dcf49a5 100644
--- 
a/extensions-jvm/kubernetes/deployment/src/main/java/org/apache/camel/quarkus/component/kubernetes/deployment/KubernetesProcessor.java
+++ 
b/extensions/kubernetes/deployment/src/main/java/org/apache/camel/quarkus/component/kubernetes/deployment/KubernetesProcessor.java
@@ -22,15 +22,10 @@ import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.annotations.ExecutionTime;
 import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.pkg.steps.NativeBuild;
 import org.apache.camel.quarkus.component.kubernetes.CamelKubernetesRecorder;
-import org.apache.camel.quarkus.core.JvmOnlyRecorder;
-import org.apache.camel.quarkus.core.deployment.CamelBeanBuildItem;
-import org.jboss.logging.Logger;
+import org.apache.camel.quarkus.core.deployment.CamelRuntimeBeanBuildItem;
 
 class KubernetesProcessor {
-    private static final Logger LOG = 
Logger.getLogger(KubernetesProcessor.class);
-
     private static final String FEATURE = "camel-kubernetes";
 
     @BuildStep
@@ -39,22 +34,13 @@ class KubernetesProcessor {
     }
 
     @BuildStep
-    @Record(ExecutionTime.STATIC_INIT)
-    CamelBeanBuildItem configureKubernetesClient(CamelKubernetesRecorder 
recorder, BeanContainerBuildItem beanContainer) {
+    @Record(ExecutionTime.RUNTIME_INIT)
+    CamelRuntimeBeanBuildItem 
configureKubernetesClient(CamelKubernetesRecorder recorder,
+            BeanContainerBuildItem beanContainer) {
         // Enable Kubernetes endpoints to use the client configured by the 
Quarkus kubernetes-client extension
-        return new CamelBeanBuildItem(
+        return new CamelRuntimeBeanBuildItem(
                 "kubernetesClient",
                 KubernetesClient.class.getName(),
                 recorder.getKubernetesClient(beanContainer.getValue()));
     }
-
-    /**
-     * Remove this once this extension starts supporting the native mode.
-     */
-    @BuildStep(onlyIf = NativeBuild.class)
-    @Record(value = ExecutionTime.RUNTIME_INIT)
-    void warnJvmInNative(JvmOnlyRecorder recorder) {
-        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
-        recorder.warnJvmInNative(FEATURE); // warn at runtime
-    }
 }
diff --git a/extensions-jvm/kubernetes/pom.xml b/extensions/kubernetes/pom.xml
similarity index 97%
rename from extensions-jvm/kubernetes/pom.xml
rename to extensions/kubernetes/pom.xml
index 3b20581..fafa44c 100644
--- a/extensions-jvm/kubernetes/pom.xml
+++ b/extensions/kubernetes/pom.xml
@@ -33,6 +33,5 @@
     <modules>
         <module>deployment</module>
         <module>runtime</module>
-        <module>integration-test</module>
     </modules>
 </project>
diff --git a/extensions-jvm/kubernetes/runtime/pom.xml 
b/extensions/kubernetes/runtime/pom.xml
similarity index 100%
rename from extensions-jvm/kubernetes/runtime/pom.xml
rename to extensions/kubernetes/runtime/pom.xml
diff --git 
a/extensions-jvm/kubernetes/runtime/src/main/java/org/apache/camel/quarkus/component/kubernetes/CamelKubernetesRecorder.java
 
b/extensions/kubernetes/runtime/src/main/java/org/apache/camel/quarkus/component/kubernetes/CamelKubernetesRecorder.java
similarity index 100%
rename from 
extensions-jvm/kubernetes/runtime/src/main/java/org/apache/camel/quarkus/component/kubernetes/CamelKubernetesRecorder.java
rename to 
extensions/kubernetes/runtime/src/main/java/org/apache/camel/quarkus/component/kubernetes/CamelKubernetesRecorder.java
diff --git 
a/extensions-jvm/kubernetes/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 
b/extensions/kubernetes/runtime/src/main/resources/META-INF/quarkus-extension.yaml
similarity index 91%
rename from 
extensions-jvm/kubernetes/runtime/src/main/resources/META-INF/quarkus-extension.yaml
rename to 
extensions/kubernetes/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index 67b1945..45ebd06 100644
--- 
a/extensions-jvm/kubernetes/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ 
b/extensions/kubernetes/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -26,7 +26,6 @@ metadata:
   - "kubernetes"
   - "openshift"
   - "paas"
-  guide: "https://camel.apache.org/components/latest/kubernetes-component.html";
+  guide: "https://quarkus.io/guides/camel";
   categories:
   - "integration"
-  status: "preview"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 8db68d6..b584348 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -97,6 +97,7 @@
         <module>jsonpath</module>
         <module>kafka</module>
         <module>kotlin</module>
+        <module>kubernetes</module>
         <module>log</module>
         <module>lzf</module>
         <module>mail</module>
diff --git a/extensions-jvm/kubernetes/integration-test/pom.xml 
b/integration-tests/kubernetes/pom.xml
similarity index 74%
rename from extensions-jvm/kubernetes/integration-test/pom.xml
rename to integration-tests/kubernetes/pom.xml
index 0754d5b..5748aeb 100644
--- a/extensions-jvm/kubernetes/integration-test/pom.xml
+++ b/integration-tests/kubernetes/pom.xml
@@ -21,12 +21,12 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-kubernetes-parent</artifactId>
+        <artifactId>camel-quarkus-integration-tests</artifactId>
         <version>1.1.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>camel-quarkus-kubernetes-integration-test</artifactId>
-    <name>Camel Quarkus :: Kubernetes :: Integration Test</name>
+    <artifactId>camel-quarkus-integration-test-kubernetes</artifactId>
+    <name>Camel Quarkus :: Integration Test :: Kubernetes</name>
     <description>Integration tests for Camel Quarkus Kubernetes 
extension</description>
 
     <properties>
@@ -82,4 +82,34 @@
             </plugin>
         </plugins>
     </build>
+
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git 
a/extensions-jvm/kubernetes/integration-test/src/main/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesResource.java
 
b/integration-tests/kubernetes/src/main/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesResource.java
similarity index 100%
rename from 
extensions-jvm/kubernetes/integration-test/src/main/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesResource.java
rename to 
integration-tests/kubernetes/src/main/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesResource.java
diff --git 
a/extensions-jvm/kubernetes/integration-test/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java
similarity index 100%
rename from 
extensions-jvm/kubernetes/integration-test/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java
rename to 
integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java
diff --git 
a/extensions-jvm/kubernetes/integration-test/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesTest.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesTest.java
similarity index 100%
rename from 
extensions-jvm/kubernetes/integration-test/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesTest.java
rename to 
integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesTest.java
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index b116deb..a9f3412 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -90,6 +90,7 @@
         <module>jira</module>
         <module>jsonpath</module>
         <module>kafka</module>
+        <module>kubernetes</module>
         <module>mail</module>
         <module>messaging</module>
         <module>microprofile</module>
diff --git a/tooling/scripts/validate-github-workflows.groovy 
b/tooling/scripts/validate-github-workflows.groovy
index 83b3bd5..3d9b510 100644
--- a/tooling/scripts/validate-github-workflows.groovy
+++ b/tooling/scripts/validate-github-workflows.groovy
@@ -29,7 +29,7 @@ final Path jobDefPath = treeRootDir.resolve(jobDefRelPath)
 final Set<String> executedBaseNames = [] as Set
 
 // Add any ignored itest modules here. Or prefix the module name with '#' to 
disable it
-final List<String> excludedModules = ['fhir', 'support'] as List
+final List<String> excludedModules = ['fhir', 'kubernetes', 'support'] as List
 
 final Yaml parser = new Yaml()
 def prConfig = parser.load((jobDefPath.toFile()).text)

Reply via email to