From 8df6c71c7679353c8dbaa1cbefb45fa3fe22836c Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Wed, 19 Jan 2022 15:18:42 -0500 Subject: [PATCH] Moving to use kubernetes-maven-plugin to support java 17 (#956) * Moving to use kubernetes-maven-plugin to support java 17 * Fixing plugin in build command * Moving enricher config to jkube * Moving k8s templates to jkube directory and pointing arquillian to them * pushing images * review: K8s integration tests JKube compatible Co-authored-by: Marc Nuri --- .circleci/config.yml | 2 +- pom.xml | 2 +- .../kubernetes-hello-world-example/pom.xml | 28 +++++------ .../pom.xml | 14 +++--- .../greeting-service/pom.xml | 4 +- .../name-service/pom.xml | 4 +- .../kubernetes-loadbalancer-example/pom.xml | 22 ++++----- .../kubernetes-reload-example/pom.xml | 40 +++++++-------- .../README.md | 12 ++--- .../main/{fabric8 => jkube}/deployment.yml | 0 .../src/main/{fabric8 => jkube}/svc.yml | 2 +- .../main/{fabric8 => jkube}/deployment.yml | 0 .../src/main/{fabric8 => jkube}/svc.yml | 2 +- .../discovery/tests/pom.xml | 8 +-- .../tests/src/test/resources/arquillian.xml | 1 + .../main/{fabric8 => jkube}/deployment.yml | 0 .../istio/src/main/{fabric8 => jkube}/svc.yml | 2 +- .../istio/src/test/resources/arquillian.xml | 1 + .../pom.xml | 49 ++++++++++--------- .../main/{fabric8 => jkube}/deployment.yml | 0 .../src/main/{fabric8 => jkube}/svc.yml | 2 +- .../src/test/resources/arquillian.xml | 1 + .../main/{fabric8 => jkube}/deployment.yml | 0 .../src/main/{fabric8 => jkube}/svc.yml | 2 +- .../src/test/resources/arquillian.xml | 1 + 25 files changed, 103 insertions(+), 96 deletions(-) rename spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/{fabric8 => jkube}/deployment.yml (100%) rename spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/{fabric8 => jkube}/svc.yml (77%) rename spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/{fabric8 => jkube}/deployment.yml (100%) rename spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/{fabric8 => jkube}/svc.yml (77%) rename spring-cloud-kubernetes-integration-tests/istio/src/main/{fabric8 => jkube}/deployment.yml (100%) rename spring-cloud-kubernetes-integration-tests/istio/src/main/{fabric8 => jkube}/svc.yml (77%) rename spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/{fabric8 => jkube}/deployment.yml (100%) rename spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/{fabric8 => jkube}/svc.yml (58%) rename spring-cloud-kubernetes-integration-tests/simple-core/src/main/{fabric8 => jkube}/deployment.yml (100%) rename spring-cloud-kubernetes-integration-tests/simple-core/src/main/{fabric8 => jkube}/svc.yml (77%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3dfbbbe1..a5bdbb5a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -133,7 +133,7 @@ jobs: /snap/bin/microk8s.kubectl config view --raw > /tmp/kubeconfig export KUBECONFIG=/tmp/kubeconfig cd spring-cloud-kubernetes-integration-tests - ../mvnw -Ddocker.host='unix:///var/snap/microk8s/current/docker.sock' -Dimage.registry='localhost:32000' clean package fabric8:build verify -Pfmp,it,spring + ../mvnw -Djkube.docker.host='unix:///var/snap/microk8s/current/docker.sock' clean package verify -Pk8s,it,spring - run: name: "Aggregate test results" when: always diff --git a/pom.xml b/pom.xml index 56555ee9..0a8f80aa 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ 2.8.2 2.22.2 2.22.2 - 4.4.0 + 1.5.1 2.4.12 3.0.2 diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml index 3b74c938..dd5d3306 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml @@ -124,9 +124,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -145,9 +145,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -160,9 +160,9 @@ - + NodePort - + @@ -175,9 +175,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -197,9 +197,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp diff --git a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml index 351039ad..ebb031b1 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml @@ -60,9 +60,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} org.apache.maven.plugins @@ -100,8 +100,8 @@ - io.fabric8 - fabric8-maven-plugin + org.eclipse.jkube + kubernetes-maven-plugin fmp @@ -114,9 +114,9 @@ - + NodePort - + diff --git a/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/greeting-service/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/greeting-service/pom.xml index bf365b24..250083d2 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/greeting-service/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/greeting-service/pom.xml @@ -38,8 +38,8 @@ - io.fabric8 - fabric8-maven-plugin + org.eclipse.jkube + kubernetes-maven-plugin fmp diff --git a/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/name-service/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/name-service/pom.xml index 09e10eb7..a9c0f64f 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/name-service/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/name-service/pom.xml @@ -39,8 +39,8 @@ - io.fabric8 - fabric8-maven-plugin + org.eclipse.jkube + kubernetes-maven-plugin fmp diff --git a/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/pom.xml index 721b5ef4..20f23461 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-loadbalancer-example/pom.xml @@ -18,9 +18,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -33,9 +33,9 @@ - + NodePort - + @@ -48,9 +48,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -70,9 +70,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp diff --git a/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml index 0c91caa7..5bf458be 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml @@ -104,9 +104,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -118,12 +118,12 @@ - + spring-cloud-reload - - + + spring-cloud-reload - + @@ -137,9 +137,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -152,13 +152,13 @@ - + spring-cloud-reload - - + + spring-cloud-reload NodePort - + @@ -171,9 +171,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp @@ -193,9 +193,9 @@ - io.fabric8 - fabric8-maven-plugin - ${fabric8.maven.plugin.version} + org.eclipse.jkube + kubernetes-maven-plugin + ${kubernetes.maven.plugin.version} fmp diff --git a/spring-cloud-kubernetes-integration-tests/README.md b/spring-cloud-kubernetes-integration-tests/README.md index 08e9df1c..a09b43b0 100644 --- a/spring-cloud-kubernetes-integration-tests/README.md +++ b/spring-cloud-kubernetes-integration-tests/README.md @@ -8,12 +8,12 @@ lifecycle of the test applications is controlled by [Arquillian Cube](http://arq # Basics -With FMP and Arquillian Cube setup for our project we need to configure the following things in order to properly get +With JKube and Arquillian Cube setup for our project we need to configure the following things in order to properly get our test applications onto our cluster of choice: * The `KUBECONFIG` environment variable needs to be set to the location of the Kubernetes configuration file we will use to access our cluster (this can be skipped if this file is already present in the standard locations that kubectl assumes) -* The `docker.host` system property needs to be set to the URL where the docker daemon we will use to build images is listening +* The `jkube.docker.host` system property needs to be set to the URL where the docker daemon we will use to build images is listening This can be skipped when we use the default unix socket on a Linux machine * The Docker image registry were out built images will be stored needs to be set using the `image.registry` environment variable @@ -78,7 +78,7 @@ microk8s.kubectl create -f .circleci/istio-test-namespace.yml ```bash cd spring-cloud-kubernetes-integration-tests -KUBECONFIG=/tmp/kubeconfig mvn -Ddocker.host='unix:///var/snap/microk8s/current/docker.sock' -Dimage.registry='localhost:32000' clean package fabric8:build verify -Pfmp,it +KUBECONFIG=/tmp/kubeconfig mvn -Djkube.docker.host='unix:///var/snap/microk8s/current/docker.sock' clean package verify -Pk8s,it,spring ``` The command above will for each test project: @@ -106,7 +106,7 @@ provide a Kubernetes server runs within a Docker container on your local system. ** `docker run -d -p 5000:5000 --restart=always --name registry registry:2` * [Configure the Docker daemon to trust the local registry](https://docs.docker.com/docker-for-mac/#daemon) * Export the docker config `kubectl config view --raw > /tmp/kubeconfig` -* Run the tests `KUBECONFIG=/tmp/kubeconfig mvn -Ddocker.host='unix:///var/run/docker.sock' -Dimage.registry='127.0.0.1:5000' clean package fabric8:build verify -Pfmp,it,spring` +* Run the tests `KUBECONFIG=/tmp/kubeconfig mvn -Djkube.docker.host='unix:///var/snap/microk8s/current/docker.sock' clean package verify -Pk8s,it,spring` ## Launching one of the applications manually @@ -115,12 +115,12 @@ For example to launch the `simple-core` application ```bash cd spring-cloud-kubernetes-integration-tests/simple-core - KUBECONFIG=/tmp/kubeconfig mvn -Ddocker.host='unix:///var/snap/microk8s/current/docker.sock' -Dimage.registry='localhost:32000' clean package fabric8:build fabric8:deploy -Pfmp + KUBECONFIG=/tmp/kubeconfig mvn -Djkube.docker.host='unix:///var/snap/microk8s/current/docker.sock' clean package verify -Pk8s,it,spring ``` When it's time to take down the application, simply execute: ```bash - KUBECONFIG=/tmp/kubeconfig mvn fabric8:undeploy -Pfmp + KUBECONFIG=/tmp/kubeconfig mvn k8s:undeploy -Pk8s ``` diff --git a/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/fabric8/deployment.yml b/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/jkube/deployment.yml similarity index 100% rename from spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/fabric8/deployment.yml rename to spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/jkube/deployment.yml diff --git a/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/fabric8/svc.yml b/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/jkube/svc.yml similarity index 77% rename from spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/fabric8/svc.yml rename to spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/jkube/svc.yml index 945f430d..e7961ac8 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/fabric8/svc.yml +++ b/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/src/main/jkube/svc.yml @@ -1,4 +1,4 @@ -# we are using an FMP fragment to ensure that NodePort is used correctly +# we are using a JKube fragment to ensure that NodePort is used correctly kind: Service apiVersion: v1 metadata: diff --git a/spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/fabric8/deployment.yml b/spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/jkube/deployment.yml similarity index 100% rename from spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/fabric8/deployment.yml rename to spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/jkube/deployment.yml diff --git a/spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/fabric8/svc.yml b/spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/jkube/svc.yml similarity index 77% rename from spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/fabric8/svc.yml rename to spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/jkube/svc.yml index 945f430d..e7961ac8 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/fabric8/svc.yml +++ b/spring-cloud-kubernetes-integration-tests/discovery/kubernetes-client-discovery/src/main/jkube/svc.yml @@ -1,4 +1,4 @@ -# we are using an FMP fragment to ensure that NodePort is used correctly +# we are using a JKube fragment to ensure that NodePort is used correctly kind: Service apiVersion: v1 metadata: diff --git a/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml index 7752031e..50055968 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml @@ -68,8 +68,8 @@ - io.fabric8 - fabric8-maven-plugin + org.eclipse.jkube + kubernetes-maven-plugin true @@ -83,8 +83,8 @@ - io.fabric8 - fabric8-maven-plugin + org.eclipse.jkube + kubernetes-maven-plugin false aggregate diff --git a/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/resources/arquillian.xml b/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/resources/arquillian.xml index 60d3cbe7..f4ac3b9a 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/resources/arquillian.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/tests/src/test/resources/arquillian.xml @@ -4,6 +4,7 @@ default + file:./target/classes/META-INF/jkube/kubernetes.yml diff --git a/spring-cloud-kubernetes-integration-tests/istio/src/main/fabric8/deployment.yml b/spring-cloud-kubernetes-integration-tests/istio/src/main/jkube/deployment.yml similarity index 100% rename from spring-cloud-kubernetes-integration-tests/istio/src/main/fabric8/deployment.yml rename to spring-cloud-kubernetes-integration-tests/istio/src/main/jkube/deployment.yml diff --git a/spring-cloud-kubernetes-integration-tests/istio/src/main/fabric8/svc.yml b/spring-cloud-kubernetes-integration-tests/istio/src/main/jkube/svc.yml similarity index 77% rename from spring-cloud-kubernetes-integration-tests/istio/src/main/fabric8/svc.yml rename to spring-cloud-kubernetes-integration-tests/istio/src/main/jkube/svc.yml index 945f430d..e7961ac8 100644 --- a/spring-cloud-kubernetes-integration-tests/istio/src/main/fabric8/svc.yml +++ b/spring-cloud-kubernetes-integration-tests/istio/src/main/jkube/svc.yml @@ -1,4 +1,4 @@ -# we are using an FMP fragment to ensure that NodePort is used correctly +# we are using a JKube fragment to ensure that NodePort is used correctly kind: Service apiVersion: v1 metadata: diff --git a/spring-cloud-kubernetes-integration-tests/istio/src/test/resources/arquillian.xml b/spring-cloud-kubernetes-integration-tests/istio/src/test/resources/arquillian.xml index df3d69c9..180815e6 100644 --- a/spring-cloud-kubernetes-integration-tests/istio/src/test/resources/arquillian.xml +++ b/spring-cloud-kubernetes-integration-tests/istio/src/test/resources/arquillian.xml @@ -4,6 +4,7 @@ istio-test + file:./target/classes/META-INF/jkube/kubernetes.yml diff --git a/spring-cloud-kubernetes-integration-tests/pom.xml b/spring-cloud-kubernetes-integration-tests/pom.xml index 4f380ad5..b9713cbe 100644 --- a/spring-cloud-kubernetes-integration-tests/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/pom.xml @@ -18,8 +18,7 @@ - 1.8 - 3.5.42 + 17 1.18.2 1.4.0.Final 3.2.0 @@ -54,29 +53,33 @@ - fmp + k8s - io.fabric8 - fabric8-maven-plugin - ${fmp.version} + org.eclipse.jkube + kubernetes-maven-plugin - - docker - kubernetes - ${image.registry} + + + spring-boot + + + + + quay.io/jkube/jkube-java:0.0.13 + + + - fabric8 + jkube - resource build + resource + package @@ -156,15 +159,15 @@ simple-core simple-configmap - + discovery load-balancer - - - - - - - + + + + + + + diff --git a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/fabric8/deployment.yml b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/jkube/deployment.yml similarity index 100% rename from spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/fabric8/deployment.yml rename to spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/jkube/deployment.yml diff --git a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/fabric8/svc.yml b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/jkube/svc.yml similarity index 58% rename from spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/fabric8/svc.yml rename to spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/jkube/svc.yml index aa6fbd53..5df70131 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/fabric8/svc.yml +++ b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/main/jkube/svc.yml @@ -1,4 +1,4 @@ -# We are using an FMP fragment to ensure that NodePort is used correctly +# We are using a JKube fragment to ensure that NodePort is used correctly spec: ports: - protocol: TCP diff --git a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/resources/arquillian.xml b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/resources/arquillian.xml index 60d3cbe7..f4ac3b9a 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/resources/arquillian.xml +++ b/spring-cloud-kubernetes-integration-tests/simple-configmap/src/test/resources/arquillian.xml @@ -4,6 +4,7 @@ default + file:./target/classes/META-INF/jkube/kubernetes.yml diff --git a/spring-cloud-kubernetes-integration-tests/simple-core/src/main/fabric8/deployment.yml b/spring-cloud-kubernetes-integration-tests/simple-core/src/main/jkube/deployment.yml similarity index 100% rename from spring-cloud-kubernetes-integration-tests/simple-core/src/main/fabric8/deployment.yml rename to spring-cloud-kubernetes-integration-tests/simple-core/src/main/jkube/deployment.yml diff --git a/spring-cloud-kubernetes-integration-tests/simple-core/src/main/fabric8/svc.yml b/spring-cloud-kubernetes-integration-tests/simple-core/src/main/jkube/svc.yml similarity index 77% rename from spring-cloud-kubernetes-integration-tests/simple-core/src/main/fabric8/svc.yml rename to spring-cloud-kubernetes-integration-tests/simple-core/src/main/jkube/svc.yml index 945f430d..e7961ac8 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-core/src/main/fabric8/svc.yml +++ b/spring-cloud-kubernetes-integration-tests/simple-core/src/main/jkube/svc.yml @@ -1,4 +1,4 @@ -# we are using an FMP fragment to ensure that NodePort is used correctly +# we are using a JKube fragment to ensure that NodePort is used correctly kind: Service apiVersion: v1 metadata: diff --git a/spring-cloud-kubernetes-integration-tests/simple-core/src/test/resources/arquillian.xml b/spring-cloud-kubernetes-integration-tests/simple-core/src/test/resources/arquillian.xml index 60d3cbe7..f4ac3b9a 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-core/src/test/resources/arquillian.xml +++ b/spring-cloud-kubernetes-integration-tests/simple-core/src/test/resources/arquillian.xml @@ -4,6 +4,7 @@ default + file:./target/classes/META-INF/jkube/kubernetes.yml