Skip to content

Commit

Permalink
doc: Updated Quarkus quickstart
Browse files Browse the repository at this point in the history
Signed-off-by: Marc Nuri <marc@marcnuri.com>
  • Loading branch information
manusa committed May 19, 2021
1 parent 1891159 commit a675656
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 89 deletions.
83 changes: 40 additions & 43 deletions quickstarts/maven/quarkus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,66 +9,69 @@ A simple REST application demonstrating usage of Eclipse JKube with Quarkus.

## Regular mode

## Build Docker Image
## Build Container Image

Make sure your Minikube instance is running and docker daemon is exposed. If not please run these commands:
```
```shell
# Start minikube cluster
minikube start
# Expose minikube's docker deamon for building/pushing docker image
eval $(minikube docker-env)
```

Build the application and the docker image:
```
Build the application, and the container image:
```shell
$ mvn package k8s:build
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< org.eclipse.jkube:quarkus >------------------------
[INFO] Building Eclipse JKube :: Quarkus :: Rest :: Quickstart 0.1.1-SNAPSHOT
[INFO] ------------< org.eclipse.jkube.quickstarts.maven:quarkus >-------------
[INFO] Building Eclipse JKube :: Quickstarts :: Maven :: Quarkus 1.3.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:0.1.1-SNAPSHOT:build (default-cli) @ quarkus ---
[INFO] --- kubernetes-maven-plugin:1.3.0:build (default-cli) @ quarkus ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: Running generator quarkus
[INFO] Copying files to /home/rohaan/work/repos/jkube/quickstarts/maven/quarkus/target/docker/jkube/quarkus/latest/build/maven
[INFO] Building tar: /home/rohaan/work/repos/jkube/quickstarts/maven/quarkus/target/docker/jkube/quarkus/latest/tmp/docker-build.tar
[INFO] k8s: [jkube/quarkus:latest] "quarkus": Created docker-build.tar in 231 milliseconds
[INFO] k8s: [jkube/quarkus:latest] "quarkus": Built image sha256:6ccff
[INFO] k8s: [jkube/quarkus:latest] "quarkus": Tag with latest
[INFO] k8s: quarkus: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.9 as base / builder
[INFO] k8s: Pulling from jkube/jkube-java-binary-s2i
[INFO] k8s: Digest: sha256:dd5c9f44a86e19438662d293e180acc8d864887cf19c165c1b24ae703b16c2d4
[INFO] k8s: Status: Downloaded newer image for quay.io/jkube/jkube-java-binary-s2i:0.0.9
[INFO] k8s: Pulled quay.io/jkube/jkube-java-binary-s2i:0.0.9 in 21 seconds
[INFO] k8s: [maven/quarkus:1.3.0] "quarkus": Created docker-build.tar in 241 milliseconds
[INFO] k8s: [maven/quarkus:1.3.0] "quarkus": Built image sha256:c4e4b
[INFO] k8s: [maven/quarkus:1.3.0] "quarkus": Removed old image sha256:3c4d4
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.904 s
[INFO] Finished at: 2020-02-13T20:10:59+05:30
[INFO] Total time: 27.258 s
[INFO] Finished at: 2021-05-19T09:32:50+02:00
[INFO] ------------------------------------------------------------------------


$ docker images | grep quarkus
jkube/quarkus latest 6ccffc2be415 3 minutes ago 643MB
maven/quarkus 1.3.0 c4e4be500963 About a minute ago 522MB
```

## Generate Kubernetes Manifests and apply then to Kubernetes Cluster
```
```shell
$ mvn k8s:resource k8s:apply
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< org.eclipse.jkube:quarkus >------------------------
[INFO] Building Eclipse JKube :: Quarkus :: Rest :: Quickstart 0.1.1-SNAPSHOT
[INFO] ------------< org.eclipse.jkube.quickstarts.maven:quarkus >-------------
[INFO] Building Eclipse JKube :: Quickstarts :: Maven :: Quarkus 1.3.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:0.1.1-SNAPSHOT:resource (default-cli) @ quarkus ---
[INFO] --- kubernetes-maven-plugin:1.3.0:resource (default-cli) @ quarkus ---
[INFO] k8s: Running generator quarkus
[INFO] k8s: quarkus: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.9 as base / builder
[INFO] k8s: Using resource templates from /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus/src/main/jkube
[INFO] k8s: jkube-controller: Adding a default Deployment
[INFO] k8s: jkube-service: Adding a default service 'quarkus' with ports [8080]
[INFO] k8s: jkube-healthcheck-vertx: HTTP health check disabled (path not set)
[INFO] k8s: jkube-healthcheck-vertx: HTTP health check disabled (path not set)
[INFO] k8s: jkube-service-discovery: Using first mentioned service port '8080'
[INFO] k8s: jkube-revision-history: Adding revision history limit to 2
[INFO] k8s: validating /home/rohaan/work/repos/jkube/quickstarts/maven/quarkus/target/classes/META-INF/jkube/kubernetes/quarkus-deployment.yml resource
[INFO] k8s: validating /home/rohaan/work/repos/jkube/quickstarts/maven/quarkus/target/classes/META-INF/jkube/kubernetes/quarkus-service.yml resource
[INFO]
[INFO] --- kubernetes-maven-plugin:0.1.1-SNAPSHOT:apply (default-cli) @ quarkus ---
[INFO] k8s: Using Kubernetes at https://192.168.39.191:8443/ in namespace default with manifest /home/rohaan/work/repos/jkube/quickstarts/maven/quarkus/target/classes/META-INF/jkube/kubernetes.yml
[INFO] k8s: Using namespace: default
[INFO] --- kubernetes-maven-plugin:1.3.0:apply (default-cli) @ quarkus ---
[INFO] k8s: Using Kubernetes at https://192.168.49.2:8443/ in namespace default with manifest /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus/target/classes/META-INF/jkube/kubernetes.yml
[INFO] k8s: Creating a Service from kubernetes.yml namespace default name quarkus
[INFO] k8s: Created Service: target/jkube/applyJson/default/service-quarkus.json
[INFO] k8s: Creating a Deployment from kubernetes.yml namespace default name quarkus
Expand All @@ -77,12 +80,14 @@ $ mvn k8s:resource k8s:apply
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.943 s
[INFO] Finished at: 2020-02-13T20:11:18+05:30
[INFO] Total time: 7.690 s
[INFO] Finished at: 2021-05-19T09:34:40+02:00
[INFO] ------------------------------------------------------------------------

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
quarkus-5f8b6d7fdd-j2qww 1/1 Running 0 12s
NAME READY STATUS RESTARTS AGE
quarkus-766f6c5b84-ng4s4 1/1 Running 0 44s

$ minikube service quarkus
|-----------|--------------|-------------|-----------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
Expand All @@ -101,29 +106,21 @@ On invoking this, you can see it in browser:

### Docker

> There is a [known issue](https://github.com/quarkusio/quarkus/issues/1610)
> when building a quarkus native image with a remote docker daemon.
>
> If running with Minikube, first build the application (`mvn package -Pnative`) with
> your host machine Docker daemon.
>
> Once the application is built invoke `eval $(minikube docker-env)` before running `mvn k8s:build`.
To build the application, just reproduce the steps for the regular mode appending `-Pnative ` to
all your maven commands:
```
$ mvn clean package -Pnative-docker
```shell
$ eval $(minikube docker-env)
$ mvn clean package -Pnative-docker
$ mvn k8s:build k8s:resource k8s:apply -Pnative-docker
$ minikube service quarkus
```

### JIB

```
$ mvn clean package k8s:build -Pnative-jib
```shell
$ eval $(minikube docker-env)
$ docker load -i target/docker/maven/quarkus/latest/tmp/docker-build.tar
$ mvn clean package k8s:build -Pnative-jib
$ docker load -i target/docker/maven/quarkus/${project.version}/tmp/docker-build.tar
$ mvn k8s:resource k8s:apply -Pnative-jib
$ minikube service quarkus
```
55 changes: 9 additions & 46 deletions quickstarts/maven/quarkus/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,10 @@
</description>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<jkube.version>${project.version}</jkube.version>
<version.quarkus>1.13.1.Final</version.quarkus>
<quarkus.package.type>legacy-jar</quarkus.package.type>
<version.quarkus>1.13.4.Final</version.quarkus>
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
</properties>

Expand Down Expand Up @@ -115,28 +114,10 @@
</property>
</activation>
<properties>
<jkube.generator.quarkus.nativeImage>true</jkube.generator.quarkus.nativeImage>
<quarkus.package.type>native</quarkus.package.type>
<quarkus.native.remote-container-build>true</quarkus.native.remote-container-build>
<quarkus.native.enable-http-url-handler>true</quarkus.native.enable-http-url-handler>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${version.quarkus}</version>
<executions>
<execution>
<goals>
<goal>native-image</goal>
</goals>
<configuration>
<enableHttpUrlHandler>true</enableHttpUrlHandler>
<dockerBuild>true</dockerBuild>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>native-jib</id>
Expand All @@ -147,28 +128,10 @@
</activation>
<properties>
<jkube.build.strategy>jib</jkube.build.strategy>
<jkube.generator.quarkus.nativeImage>true</jkube.generator.quarkus.nativeImage>
<quarkus.package.type>native</quarkus.package.type>
<quarkus.native.remote-container-build>true</quarkus.native.remote-container-build>
<quarkus.native.enable-http-url-handler>true</quarkus.native.enable-http-url-handler>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-maven-plugin</artifactId>
<version>${version.quarkus}</version>
<executions>
<execution>
<goals>
<goal>native-image</goal>
</goals>
<configuration>
<enableHttpUrlHandler>true</enableHttpUrlHandler>
<dockerBuild>false</dockerBuild>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

Expand Down

0 comments on commit a675656

Please sign in to comment.