diff --git a/bom/runtime/pom.xml b/bom/runtime/pom.xml
index d7f395df3d6c3..078f21581ddb1 100644
--- a/bom/runtime/pom.xml
+++ b/bom/runtime/pom.xml
@@ -139,7 +139,7 @@
2.10.3
1.3.0
1.3.41
- 0.10.7
+ 0.10.8
0.10.0
2.14.6
3.0.1
diff --git a/extensions/kubernetes/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java b/extensions/kubernetes/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
index 939cfab50c49f..2ddf821f678bc 100644
--- a/extensions/kubernetes/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
+++ b/extensions/kubernetes/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
@@ -27,9 +27,9 @@
import io.dekorate.kubernetes.configurator.AddPort;
import io.dekorate.kubernetes.decorator.AddLivenessProbeDecorator;
import io.dekorate.kubernetes.decorator.AddReadinessProbeDecorator;
-import io.dekorate.kubernetes.decorator.AddRoleBindingDecorator;
-import io.dekorate.kubernetes.decorator.AddServiceAccountDecorator;
-import io.dekorate.kubernetes.decorator.ApplyServiceAccountDecorator;
+import io.dekorate.kubernetes.decorator.AddRoleBindingResourceDecorator;
+import io.dekorate.kubernetes.decorator.AddServiceAccountResourceDecorator;
+import io.dekorate.kubernetes.decorator.ApplyServiceAccountNamedDecorator;
import io.dekorate.processor.SimpleFileWriter;
import io.dekorate.project.BuildInfo;
import io.dekorate.project.FileProjectFactory;
@@ -192,11 +192,10 @@ private void applyBuildItems(Session session, ApplicationInfoBuildItem applicati
//Handle RBAC
if (!kubernetesPortBuildItems.isEmpty()) {
- session.resources().decorate(new ApplyServiceAccountDecorator(applicationInfo.getName(),
- applicationInfo.getName()));
- session.resources().decorate(new AddServiceAccountDecorator(session.resources()));
- kubernetesRoleBuildItems.forEach(r -> session.resources()
- .decorate(new AddRoleBindingDecorator(session.resources(), r.getRole())));
+ session.resources().decorate(new ApplyServiceAccountNamedDecorator());
+ session.resources().decorate(new AddServiceAccountResourceDecorator());
+ kubernetesRoleBuildItems
+ .forEach(r -> session.resources().decorate(new AddRoleBindingResourceDecorator(r.getRole())));
}
//Handle probes
diff --git a/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/pom.xml b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/pom.xml
new file mode 100644
index 0000000000000..6a4856b7c3221
--- /dev/null
+++ b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/pom.xml
@@ -0,0 +1,117 @@
+
+
+ 4.0.0
+ org.acme
+ kubernetes-with-quarkus-app-name
+ 0.1-SNAPSHOT
+
+ UTF-8
+ 2.22.0
+ 1.8
+ UTF-8
+ 1.8
+
+
+
+
+ io.quarkus
+ quarkus-bom
+ @project.version@
+ pom
+ import
+
+
+
+
+
+ io.quarkus
+ quarkus-resteasy
+
+
+ io.quarkus
+ quarkus-kubernetes
+
+
+ io.quarkus
+ quarkus-junit5
+ test
+
+
+ io.rest-assured
+ rest-assured
+ test
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+ @project.version@
+
+
+
+ build
+
+
+
+
+
+ maven-surefire-plugin
+ ${surefire-plugin.version}
+
+
+ org.jboss.logmanager.LogManager
+
+
+
+
+
+
+
+ native
+
+
+ native
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+ @project.version@
+
+
+
+ native-image
+
+
+ true
+
+
+
+
+
+ maven-failsafe-plugin
+ ${surefire-plugin.version}
+
+
+
+ integration-test
+ verify
+
+
+
+ ${project.build.directory}/${project.build.finalName}-runner
+
+
+
+
+
+
+
+
+
+
diff --git a/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/src/main/java/org/acme/Hello.java b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/src/main/java/org/acme/Hello.java
new file mode 100644
index 0000000000000..ad80766a17747
--- /dev/null
+++ b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/src/main/java/org/acme/Hello.java
@@ -0,0 +1,16 @@
+package org.acme;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+@Path("/hello")
+public class Hello {
+
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String hello() {
+ return "hello";
+ }
+}
\ No newline at end of file
diff --git a/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/src/main/resources/application.properties b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/src/main/resources/application.properties
new file mode 100644
index 0000000000000..696921db248cd
--- /dev/null
+++ b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/src/main/resources/application.properties
@@ -0,0 +1,10 @@
+# Configuration file
+quarkus.application.name=test
+kubernetes.deployment.target=kubernetes,openshift
+kubernetes.name=foo
+kubernetes.group=bar
+kubernetes.version=1.0-kube
+
+openshift.name=ofoo
+openshift.group=obar
+openshift.version=1.0-openshift
diff --git a/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/verify.groovy b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/verify.groovy
new file mode 100644
index 0000000000000..e104551f45db6
--- /dev/null
+++ b/integration-tests/kubernetes/src/it/kubernetes-with-quarkus-app-name/verify.groovy
@@ -0,0 +1,38 @@
+import io.dekorate.utils.Serialization
+import io.dekorate.deps.kubernetes.api.model.*
+import io.dekorate.deps.kubernetes.api.model.apps.Deployment;
+
+//Check that file exits
+String base = basedir
+
+File openshiftYml = new File(base, "target/kubernetes/openshift.yml")
+assert openshiftYml.exists()
+
+openshiftYml.withInputStream { stream ->
+ //Check that its parse-able
+ KubernetesList list = Serialization.unmarshalAsList(stream)
+ assert list != null
+ list.items.each {
+ assert it.metadata.name == "ofoo" || it.metadata.name == "s2i-java"
+ assert it.metadata.labels.get("app") == "ofoo"
+ assert it.metadata.labels.get("version") == "1.0-openshift"
+
+ }
+}
+
+File kubernetesYml = new File(base, "target/kubernetes/kubernetes.yml")
+assert kubernetesYml.exists()
+
+kubernetesYml.withInputStream { stream ->
+ //Check that its parse-able
+ KubernetesList list = Serialization.unmarshalAsList(stream)
+ assert list != null
+ list.items.each {
+ assert it.metadata.name == "foo"
+ assert it.metadata.labels.get("app") == "foo"
+ assert it.metadata.labels.get("version") == "1.0-kube"
+
+ }
+ Deployment deployment = list.items.find{r -> r.kind == "Deployment"}
+ assert deployment != null
+}