diff --git a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesCommonHelper.java b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesCommonHelper.java index 7e3b6aca5fa51..359991b7a17b6 100644 --- a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesCommonHelper.java +++ b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesCommonHelper.java @@ -186,10 +186,15 @@ public static List createDecorators(Optional projec result.add(new DecoratorBuildItem(new ApplyServiceAccountNamedDecorator())); result.add(new DecoratorBuildItem(new AddServiceAccountResourceDecorator())); roles.forEach(r -> result.add(new DecoratorBuildItem(new AddRoleResourceDecorator(r)))); - roleBindings.forEach(rb -> result.add(new DecoratorBuildItem( - new AddRoleBindingResourceDecorator(rb.getName(), null, rb.getRole(), rb.isClusterWide() - ? AddRoleBindingResourceDecorator.RoleKind.ClusterRole - : AddRoleBindingResourceDecorator.RoleKind.Role)))); + roleBindings.forEach(rb -> { + result.add(new DecoratorBuildItem(new AddRoleBindingResourceDecorator(rb.getName(), null, rb.getRole(), + rb.isClusterWide() ? AddRoleBindingResourceDecorator.RoleKind.ClusterRole + : AddRoleBindingResourceDecorator.RoleKind.Role))); + labels.forEach(l -> { + result.add(new DecoratorBuildItem( + new AddLabelDecorator(rb.getName(), l.getKey(), l.getValue(), "RoleBinding"))); + }); + }); } return result; diff --git a/integration-tests/kubernetes/quarkus-standard-way/src/test/java/io/quarkus/it/kubernetes/KubernetesWithRbacAndNamespaceTest.java b/integration-tests/kubernetes/quarkus-standard-way/src/test/java/io/quarkus/it/kubernetes/KubernetesWithRbacAndNamespaceTest.java index 2fdb50279641b..01578ae7cf557 100644 --- a/integration-tests/kubernetes/quarkus-standard-way/src/test/java/io/quarkus/it/kubernetes/KubernetesWithRbacAndNamespaceTest.java +++ b/integration-tests/kubernetes/quarkus-standard-way/src/test/java/io/quarkus/it/kubernetes/KubernetesWithRbacAndNamespaceTest.java @@ -2,6 +2,7 @@ package io.quarkus.it.kubernetes; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.entry; import java.io.IOException; import java.nio.file.Path; @@ -50,6 +51,7 @@ public void assertGeneratedResources() throws IOException { assertThat(kubernetesList.get(0)).isInstanceOfSatisfying(Deployment.class, d -> { assertThat(d.getMetadata()).satisfies(m -> { + assertThat(m.getLabels()).contains(entry("foo", "bar")); assertThat(m.getName()).isEqualTo("kubernetes-with-rbac-and-namespace"); }); diff --git a/integration-tests/kubernetes/quarkus-standard-way/src/test/resources/kubernetes-with-rbac-and-namespace.properties b/integration-tests/kubernetes/quarkus-standard-way/src/test/resources/kubernetes-with-rbac-and-namespace.properties index e9cbd9a3f5f95..ca4fc781164f6 100644 --- a/integration-tests/kubernetes/quarkus-standard-way/src/test/resources/kubernetes-with-rbac-and-namespace.properties +++ b/integration-tests/kubernetes/quarkus-standard-way/src/test/resources/kubernetes-with-rbac-and-namespace.properties @@ -1 +1,2 @@ -quarkus.kubernetes.namespace=my-namespace \ No newline at end of file +quarkus.kubernetes.namespace=my-namespace +quarkus.kubernetes.labels.foo=bar \ No newline at end of file