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)