From 27180f863d534ab686ea2f801e32ed59f01744f2 Mon Sep 17 00:00:00 2001 From: manusa Date: Wed, 29 Apr 2020 15:15:39 +0200 Subject: [PATCH] fix: OpenShift pull secret not picked up without registry auth configuration --- CHANGELOG.md | 2 + .../core/assembly/DockerAssemblyManager.java | 6 +- .../openshift/OpenshiftBuildService.java | 39 ++-- .../maven/quarkus-customized-image/README.md | 196 ++++++++++++++++++ .../maven/quarkus-customized-image/pom.xml | 136 ++++++++++++ .../quarkus/rest/CoolApplication.java | 36 ++++ .../quarkus/rest/CoolApplicationResource.java | 38 ++++ .../quarkus/rest/CoolApplicationService.java | 24 +++ 8 files changed, 455 insertions(+), 22 deletions(-) create mode 100644 quickstarts/maven/quarkus-customized-image/README.md create mode 100644 quickstarts/maven/quarkus-customized-image/pom.xml create mode 100644 quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplication.java create mode 100644 quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationResource.java create mode 100644 quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationService.java diff --git a/CHANGELOG.md b/CHANGELOG.md index eb720b223e..ab865967dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ Usage: ### 1.0.0-SNAPSHOT * Fix #167: Add CMD for wildfly based applications * Added Webapp Wildfly maven quickstart +* Fix #171: OpenShift pull secret not picked up without registry auth configuration +* Fix #171: Customized Quarkus application quick start ### 1.0.0-alpha-2 (2020-04-24) * Fix #130: Updated HelmMojo documentation diff --git a/jkube-kit/build/service/docker/src/main/java/org/eclipse/jkube/kit/build/core/assembly/DockerAssemblyManager.java b/jkube-kit/build/service/docker/src/main/java/org/eclipse/jkube/kit/build/core/assembly/DockerAssemblyManager.java index b3fe343f78..83e56d0a72 100644 --- a/jkube-kit/build/service/docker/src/main/java/org/eclipse/jkube/kit/build/core/assembly/DockerAssemblyManager.java +++ b/jkube-kit/build/service/docker/src/main/java/org/eclipse/jkube/kit/build/core/assembly/DockerAssemblyManager.java @@ -21,9 +21,11 @@ import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Properties; import org.eclipse.jkube.kit.config.JKubeConfiguration; @@ -418,7 +420,9 @@ private Map processJKubeProjectAssemblyFileSet(JavaProject project final Map fileToPermissionsMap = new HashMap<>(); - for (String relativePathInclude : jkubeProjectAssemblyFileSet.getIncludes()) { + final List includes = Optional.ofNullable(jkubeProjectAssemblyFileSet.getIncludes()) + .orElse(Collections.singletonList("")); + for (String relativePathInclude : includes) { final File sourceDirectory = project.getBaseDirectory().toPath() .resolve(jkubeProjectAssemblyFileSet.getDirectory().toPath()) .toFile(); diff --git a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/openshift/OpenshiftBuildService.java b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/openshift/OpenshiftBuildService.java index 0e1b0c6c8c..caac4f6aae 100644 --- a/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/openshift/OpenshiftBuildService.java +++ b/jkube-kit/config/service/src/main/java/org/eclipse/jkube/kit/config/service/openshift/OpenshiftBuildService.java @@ -22,6 +22,7 @@ import io.fabric8.kubernetes.api.model.ObjectReference; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.Quantity; +import io.fabric8.kubernetes.api.model.Secret; import io.fabric8.kubernetes.api.model.Status; import io.fabric8.kubernetes.client.KubernetesClientException; import io.fabric8.kubernetes.client.Watch; @@ -90,7 +91,6 @@ public class OpenshiftBuildService implements BuildService { private final KitLogger log; private final JKubeServiceHub jKubeServiceHub; private final BuildServiceConfig config; - private RegistryConfig registryConfig; private AuthConfigFactory authConfigFactory; @@ -426,11 +426,18 @@ private boolean checkOrCreatePullSecret(OpenShiftClient client, KubernetesListBu if (pullRegistry != null) { RegistryConfig registryConfig = configuration.getRegistryConfig(); - AuthConfig authConfig = registryConfig.getAuthConfigFactory().createAuthConfig(false, registryConfig.isSkipExtendedAuth(), registryConfig.getAuthConfig(), + final AuthConfig authConfig = registryConfig.getAuthConfigFactory().createAuthConfig(false, registryConfig.isSkipExtendedAuth(), registryConfig.getAuthConfig(), registryConfig.getSettings(), null, pullRegistry, registryConfig.getPasswordDecryptionMethod()); - if (authConfig != null) { + final Secret secret = Optional.ofNullable(pullSecretName) + .map(psn -> client.secrets().withName(psn).get()).orElse(null); + + if (secret != null) { + log.info("Adding to Secret %s", pullSecretName); + return updateSecret(client, pullSecretName, secret.getData()); + } + if (authConfig != null) { JsonObject auths = new JsonObject(); JsonObject auth = new JsonObject(); JsonObject item = new JsonObject(); @@ -445,25 +452,15 @@ private boolean checkOrCreatePullSecret(OpenShiftClient client, KubernetesListBu Map data = new HashMap<>(); data.put(".dockerconfigjson", credentials); - boolean hasPullSecret = client.secrets().withName(pullSecretName).get() != null; - - if (!hasPullSecret) { - log.info("Creating Secret %s", hasPullSecret); - builder.addNewSecretItem() - .withNewMetadata() - .withName(pullSecretName) - .endMetadata() - .withData(data) - .withType("kubernetes.io/dockerconfigjson") - .endSecretItem(); - } else { - log.info("Adding to Secret %s", pullSecretName); - return updateSecret(client, pullSecretName, data); - } - + log.info("Creating Secret"); + builder.addNewSecretItem() + .withNewMetadata() + .withName(pullSecretName) + .endMetadata() + .withData(data) + .withType("kubernetes.io/dockerconfigjson") + .endSecretItem(); return true; - } else { - return false; } } return false; diff --git a/quickstarts/maven/quarkus-customized-image/README.md b/quickstarts/maven/quarkus-customized-image/README.md new file mode 100644 index 0000000000..69101434e2 --- /dev/null +++ b/quickstarts/maven/quarkus-customized-image/README.md @@ -0,0 +1,196 @@ +# Eclipse JKube Quarkus with Customized Image Quickstart + +A simple REST application demonstrating usage of Eclipse JKube with Quarkus +customized to use an official +[Red Hat Container Image](https://catalog.redhat.com/software/containers/search). + +## Requirements: + +- JDK 8 or 11+ +- OpenShift Cluster (OpenShift, CRC, etc.) +- Registered pull secret in your cluster ([Registry Service Accounts](https://access.redhat.com/terms-based-registry/#/accounts)) + + +## How to run + +**Note:** +> To be able to retrieve the image from the catalog you'll have to modify the +property `12819530-ocp42-exposed-env-pull-secret-pull-secret` +in your `pom.xml`, or specify it in you mvn invocation `-Dkube.build.pullSecret=...` + +```shell script +$ mvn clean package oc:build oc:resource oc:apply + +[INFO] Scanning for projects... +[INFO] +[INFO] ----< org.eclipse.jkube.quickstarts.maven:quarkus-customized-image >---- +[INFO] Building Eclipse JKube :: Quickstarts :: Maven :: Quarkus customized Image 1.0.0-SNAPSHOT +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ quarkus-customized-image --- +[INFO] Deleting /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target +[INFO] +[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ quarkus-customized-image --- +[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! +[INFO] skip non existing resourceDirectory /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/src/main/resources +[INFO] +[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ quarkus-customized-image --- +[INFO] Changes detected - recompiling the module! +[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! +[INFO] Compiling 3 source files to /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target/classes +[INFO] +[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ quarkus-customized-image --- +[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! +[INFO] skip non existing resourceDirectory /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/src/test/resources +[INFO] +[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ quarkus-customized-image --- +[INFO] No sources to compile +[INFO] +[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ quarkus-customized-image --- +[INFO] No tests to run. +[INFO] +[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ quarkus-customized-image --- +[INFO] Building jar: /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target/quarkus-customized-image-1.0.0-SNAPSHOT.jar +[INFO] +[INFO] --- quarkus-maven-plugin:1.4.1.Final:build (default) @ quarkus-customized-image --- +[WARNING] [io.quarkus.deployment.QuarkusAugmentor] Using Java versions older than 11 to build Quarkus applications is deprecated and will be disallowed in a future release! +[INFO] [org.jboss.threads] JBoss Threads version 3.1.1.Final +[INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building thin jar: /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target/quarkus-customized-image-1.0.0-SNAPSHOT-runner.jar +[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 1183ms +[INFO] +[INFO] --- openshift-maven-plugin:1.0.0-SNAPSHOT:build (default-cli) @ quarkus-customized-image --- +[INFO] oc: Using OpenShift build with strategy S2I +[INFO] oc: Running in OpenShift mode +[INFO] oc: [org.eclipse.jkube.quickstarts.maven/quarkus-customized-image:latest]: Created docker source tar /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target/docker/org.eclipse.jkube.quickstarts.maven/quarkus-customized-image/tmp/docker-build.tar +[INFO] oc: Adding to Secret 12819530-ocp42-exposed-env-pull-secret-pull-secret +[INFO] oc: Using Secret 12819530-ocp42-exposed-env-pull-secret-pull-secret +[INFO] oc: Updating BuildServiceConfig quarkus-customized-image-s2i for Source strategy +[INFO] oc: Adding to ImageStream quarkus-customized-image +[INFO] oc: Starting Build quarkus-customized-image-s2i +[INFO] oc: Waiting for build quarkus-customized-image-s2i-5 to complete... +[INFO] oc: Using registry.redhat.io/openjdk/openjdk-11-rhel8:1.2-3.1587486933 as the s2i builder image +[INFO] oc: INFO S2I source build with plain binaries detected +[INFO] oc: INFO S2I binary build from fabric8-maven-plugin detected +[INFO] oc: INFO Copying binaries from /tmp/src/maven to /deployments ... +[INFO] oc: quarkus-customized-image-1.0.0-SNAPSHOT-runner.jar +[INFO] oc: quarkus-customized-image-1.0.0-SNAPSHOT.jar +[INFO] oc: lib/ +[INFO] oc: lib/com.fasterxml.jackson.core.jackson-annotations-2.10.1.jar +[INFO] oc: lib/com.fasterxml.jackson.core.jackson-core-2.10.1.jar +[INFO] oc: lib/com.fasterxml.jackson.core.jackson-databind-2.10.3.jar +[INFO] oc: lib/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.10.3.jar +[INFO] oc: lib/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.10.3.jar +[INFO] oc: lib/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.10.1.jar +[INFO] oc: lib/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.10.1.jar +[INFO] oc: lib/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.10.1.jar +[INFO] oc: lib/com.fasterxml.jackson.module.jackson-module-parameter-names-2.10.3.jar +[INFO] oc: lib/com.github.fge.btf-1.2.jar +[INFO] oc: lib/com.github.fge.jackson-coreutils-1.6.jar +[INFO] oc: lib/com.github.fge.json-patch-1.9.jar +[INFO] oc: lib/com.github.fge.msg-simple-1.1.jar +[INFO] oc: lib/com.google.guava.failureaccess-1.0.1.jar +[INFO] oc: lib/com.google.guava.guava-28.1-jre.jar +[INFO] oc: lib/com.google.guava.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +[INFO] oc: lib/com.sun.activation.jakarta.activation-1.2.1.jar +[INFO] oc: lib/com.sun.istack.istack-commons-runtime-3.0.10.jar +[INFO] oc: lib/io.netty.netty-buffer-4.1.48.Final.jar +[INFO] oc: lib/io.netty.netty-codec-4.1.45.Final.jar +[INFO] oc: lib/io.netty.netty-codec-dns-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-codec-http-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-codec-http2-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-codec-socks-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-common-4.1.48.Final.jar +[INFO] oc: lib/io.netty.netty-handler-4.1.45.Final.jar +[INFO] oc: lib/io.netty.netty-handler-proxy-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-resolver-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-resolver-dns-4.1.42.Final.jar +[INFO] oc: lib/io.netty.netty-transport-4.1.42.Final.jar +[INFO] oc: lib/io.quarkus.arc.arc-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-arc-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-core-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-development-mode-spi-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-jackson-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-netty-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-resteasy-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-resteasy-common-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-resteasy-jackson-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-resteasy-server-common-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-vertx-core-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.quarkus-vertx-http-1.4.1.Final.jar +[INFO] oc: lib/io.quarkus.security.quarkus-security-1.1.0.Final.jar +[INFO] oc: lib/io.smallrye.config.smallrye-config-1.7.0.jar +[INFO] oc: lib/io.smallrye.config.smallrye-config-common-1.7.0.jar +[INFO] oc: lib/io.smallrye.reactive.mutiny-0.4.3.jar +[INFO] oc: lib/io.vertx.vertx-auth-common-3.8.5.jar +[INFO] oc: lib/io.vertx.vertx-bridge-common-3.8.5.jar +[INFO] oc: lib/io.vertx.vertx-core-3.8.5.jar +[INFO] oc: lib/io.vertx.vertx-web-3.8.5.jar +[INFO] oc: lib/io.vertx.vertx-web-common-3.8.5.jar +[INFO] oc: lib/jakarta.activation.jakarta.activation-api-1.2.1.jar +[INFO] oc: lib/jakarta.annotation.jakarta.annotation-api-1.3.5.jar +[INFO] oc: lib/jakarta.ejb.jakarta.ejb-api-3.2.6.jar +[INFO] oc: lib/jakarta.el.jakarta.el-api-3.0.3.jar +[INFO] oc: lib/jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar +[INFO] oc: lib/jakarta.inject.jakarta.inject-api-1.0.jar +[INFO] oc: lib/jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar +[INFO] oc: lib/jakarta.transaction.jakarta.transaction-api-1.3.3.jar +[INFO] oc: lib/jakarta.validation.jakarta.validation-api-2.0.2.jar +[INFO] oc: lib/org.eclipse.microprofile.config.microprofile-config-api-1.4.jar +[INFO] oc: lib/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.0.1.jar +[INFO] oc: lib/org.glassfish.jaxb.jaxb-runtime-2.3.3-b02.jar +[INFO] oc: lib/org.glassfish.jaxb.txw2-2.3.3-b02.jar +[INFO] oc: lib/org.graalvm.sdk.graal-sdk-19.3.1.jar +[INFO] oc: lib/org.jboss.logging.jboss-logging-3.3.2.Final.jar +[INFO] oc: lib/org.jboss.logging.jboss-logging-annotations-2.1.0.Final.jar +[INFO] oc: lib/org.jboss.logmanager.jboss-logmanager-embedded-1.0.4.jar +[INFO] oc: lib/org.jboss.resteasy.resteasy-core-4.5.3.Final.jar +[INFO] oc: lib/org.jboss.resteasy.resteasy-core-spi-4.5.3.Final.jar +[INFO] oc: lib/org.jboss.resteasy.resteasy-jackson2-provider-4.5.3.Final.jar +[INFO] oc: lib/org.jboss.resteasy.resteasy-jaxb-provider-4.5.3.Final.jar +[INFO] oc: lib/org.jboss.slf4j.slf4j-jboss-logging-1.2.0.Final.jar +[INFO] oc: lib/org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar +[INFO] oc: lib/org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.0.Final.jar +[INFO] oc: lib/org.jboss.threads.jboss-threads-3.1.1.Final.jar +[INFO] oc: lib/org.reactivestreams.reactive-streams-1.0.3.jar +[INFO] oc: lib/org.slf4j.slf4j-api-1.7.30.jar +[INFO] oc: lib/org.wildfly.common.wildfly-common-1.5.4.Final-format-001.jar +[INFO] oc: +[INFO] oc: Pushing image docker-registry.default.svc:5000/jkube/quarkus-customized-image:latest ... +[INFO] oc: Pushed 3/4 layers, 78% complete +[INFO] oc: Pushed 4/4 layers, 100% complete +[INFO] oc: Push successful +[INFO] oc: Build quarkus-customized-image-s2i-5 in status Complete +[INFO] oc: Found tag on ImageStream quarkus-customized-image tag: sha256:e9aa9682e622d8ed390358d30f3341995c248d9276f8a046a2b43c2fe48c6174 +[INFO] oc: ImageStream quarkus-customized-image written to /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target/quarkus-customized-image-is.yml +[INFO] +[INFO] --- openshift-maven-plugin:1.0.0-SNAPSHOT:resource (default-cli) @ quarkus-customized-image --- +[INFO] oc: Using docker image name of namespace: jkube +[INFO] oc: jkube-controller: Adding a default DeploymentConfig +[INFO] oc: jkube-service: Adding a default service 'quarkus-customized-image' with ports [8080] +[INFO] oc: jkube-healthcheck-vertx: HTTP health check disabled (path not set) +[INFO] oc: jkube-healthcheck-vertx: HTTP health check disabled (path not set) +[INFO] oc: jkube-revision-history: Adding revision history limit to 2 +[INFO] +[INFO] --- openshift-maven-plugin:1.0.0-SNAPSHOT:apply (default-cli) @ quarkus-customized-image --- +[WARNING] oc: OpenShift cluster detected, using Kubernetes manifests +[WARNING] oc: Switch to openshift-maven-plugin in case there are any problems +[INFO] oc: Using OpenShift at https://openshift.sharedocp311cns.lab.rdu2.cee.redhat.com:443/ in namespace jkube with manifest /home/user/00-MN/projects/forks/jkube/quickstarts/maven/quarkus-customized-image/target/classes/META-INF/jkube/openshift.yml +[INFO] OpenShift platform detected +[INFO] oc: Using project: jkube +[INFO] oc: Updating a Service from openshift.yml +[INFO] oc: Updated Service: target/jkube/applyJson/jkube/service-quarkus-customized-image.json +[INFO] oc: Updating DeploymentConfig from openshift.yml +[INFO] oc: Updated DeploymentConfig: target/jkube/applyJson/jkube/deploymentconfig-quarkus-customized-image.json +[INFO] oc: HINT: Use the command `oc get pods -w` to watch your pods start up +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 04:38 min +[INFO] Finished at: 2020-04-29T15:07:49+02:00 +[INFO] ------------------------------------------------------------------------ +``` + +In order to clean up the resources in the cluster: +```shell script +$ mvn oc:undeploy +``` \ No newline at end of file diff --git a/quickstarts/maven/quarkus-customized-image/pom.xml b/quickstarts/maven/quarkus-customized-image/pom.xml new file mode 100644 index 0000000000..95d44dc528 --- /dev/null +++ b/quickstarts/maven/quarkus-customized-image/pom.xml @@ -0,0 +1,136 @@ + + + + 4.0.0 + + org.eclipse.jkube.quickstarts.maven + quarkus-customized-image + 1.0.0-SNAPSHOT + Eclipse JKube :: Quickstarts :: Maven :: Quarkus customized Image + + Quarkus REST JSON project + + + + 1.8 + 1.8 + 1.4.1.Final + 12819530-ocp42-exposed-env-pull-secret-pull-secret + + + + + io.quarkus + quarkus-arc + ${version.quarkus} + + + io.quarkus + quarkus-resteasy + ${version.quarkus} + + + io.smallrye + smallrye-config + + + + + io.quarkus + quarkus-resteasy-jackson + ${version.quarkus} + + + + io.netty + netty-buffer + 4.1.48.Final + + + + + + + io.quarkus + quarkus-maven-plugin + ${version.quarkus} + + + package + + build + + + + + + org.eclipse.jkube + openshift-maven-plugin + ${project.version} + + + + ${project.groupId}/${project.artifactId} + + registry.redhat.io/openjdk/openjdk-11-rhel8:1.2-3.1587486933 + + latest + ${project.version} + + + ${project.artifactId}-${project.version}-runner.jar + -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager + + + dir + / + + customized-quarkus + + + target/${project.artifactId}-${project.version}-runner.jar + . + + + + + ${project.basedir}/target/lib + . + 755 + + + + + 8080 + 185 + + + + + + + NodePort + + + + + + + + + diff --git a/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplication.java b/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplication.java new file mode 100644 index 0000000000..6505c3d31c --- /dev/null +++ b/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplication.java @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2019 Red Hat, Inc. + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at: + * + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + */ +package org.eclipse.jkube.quickstart.quarkus.rest; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection +public class CoolApplication { + + private final String applicationName; + private final String message; + + public CoolApplication(String applicationName, String message) { + this.applicationName = applicationName; + this.message = message; + } + + public String getApplicationName() { + return applicationName; + } + + public String getMessage() { + return message; + } +} diff --git a/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationResource.java b/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationResource.java new file mode 100644 index 0000000000..e81592d8e8 --- /dev/null +++ b/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationResource.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2019 Red Hat, Inc. + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at: + * + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + */ +package org.eclipse.jkube.quickstart.quarkus.rest; + +import javax.inject.Inject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +@Path("/") +public class CoolApplicationResource { + + private CoolApplicationService coolApplicationService; + + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response get() { + return Response.ok(coolApplicationService.getCoolApplication()).build(); + } + + @Inject + public void setCoolApplicationService(CoolApplicationService coolApplicationService) { + this.coolApplicationService = coolApplicationService; + } +} diff --git a/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationService.java b/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationService.java new file mode 100644 index 0000000000..c724e01e94 --- /dev/null +++ b/quickstarts/maven/quarkus-customized-image/src/main/java/org/eclipse/jkube/quickstart/quarkus/rest/CoolApplicationService.java @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2019 Red Hat, Inc. + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at: + * + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + */ +package org.eclipse.jkube.quickstart.quarkus.rest; + +import javax.inject.Singleton; + +@Singleton +public class CoolApplicationService { + + CoolApplication getCoolApplication() { + return new CoolApplication("JKube", "Subatomic JKube really whips the llama's ass!"); + } +}