Skip to content

Commit

Permalink
deps: Bump kubernetes-client-bom from 5.12.2 to 6.1.1
Browse files Browse the repository at this point in the history
Signed-off-by: Marc Nuri <marc@marcnuri.com>
  • Loading branch information
manusa committed Sep 7, 2022
1 parent 1aa2224 commit 2c6c472
Show file tree
Hide file tree
Showing 10 changed files with 71 additions and 50 deletions.
4 changes: 2 additions & 2 deletions bom/application/pom.xml
Expand Up @@ -151,8 +151,8 @@
<kotlin.version>1.7.10</kotlin.version>
<kotlin.coroutine.version>1.6.4</kotlin.coroutine.version>
<kotlin-serialization.version>1.4.0</kotlin-serialization.version>
<kubernetes-client.version>5.12.3</kubernetes-client.version> <!-- Please check with Java Operator SDK team before updating -->
<dekorate.version>2.11.2</dekorate.version> <!-- Please check with Java Operator SDK team before updating -->
<kubernetes-client.version>6.1.1</kubernetes-client.version> <!-- Please check with Java Operator SDK team before updating -->
<dekorate.version>3.0.0</dekorate.version> <!-- Please check with Java Operator SDK team before updating -->
<maven-invoker.version>3.2.0</maven-invoker.version>
<awaitility.version>4.2.0</awaitility.version>
<jboss-logmanager.version>1.0.10</jboss-logmanager.version>
Expand Down
5 changes: 5 additions & 0 deletions extensions/kubernetes-client/deployment/pom.xml
Expand Up @@ -25,6 +25,11 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jackson-deployment</artifactId>
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-httpclient-okhttp</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
Expand Down
Expand Up @@ -19,6 +19,7 @@

import com.fasterxml.jackson.annotation.JsonFormat;

import io.fabric8.kubernetes.client.okhttp.OkHttpClientFactory;
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
import io.quarkus.deployment.Capabilities;
import io.quarkus.deployment.Capability;
Expand All @@ -32,6 +33,7 @@
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
import io.quarkus.deployment.util.JandexUtil;
import io.quarkus.jackson.deployment.IgnoreJsonDeserializeClassBuildItem;
import io.quarkus.kubernetes.client.runtime.KubernetesClientBuildConfig;
Expand Down Expand Up @@ -85,7 +87,8 @@ public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBui
BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
BuildProducer<ReflectiveHierarchyBuildItem> reflectiveHierarchies,
BuildProducer<IgnoreJsonDeserializeClassBuildItem> ignoredJsonDeserializationClasses,
BuildProducer<KubernetesRoleBindingBuildItem> roleBindingProducer) {
BuildProducer<KubernetesRoleBindingBuildItem> roleBindingProducer,
BuildProducer<ServiceProviderBuildItem> serviceProviderProducer) {

featureProducer.produce(new FeatureBuildItem(Feature.KUBERNETES_CLIENT));
if (kubernetesClientConfig.generateRbac) {
Expand Down Expand Up @@ -201,6 +204,9 @@ public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBui
log.debugv("Model Classes:\n{0}", String.join("\n", modelClasses));
}

// Register the default HttpClient implementation
serviceProviderProducer.produce(new ServiceProviderBuildItem(
"io.fabric8.kubernetes.client.http.HttpClient$Factory", OkHttpClientFactory.class.getName()));
// Enable SSL support by default
sslNativeSupport.produce(new ExtensionSslNativeSupportBuildItem(Feature.KUBERNETES_CLIENT));
}
Expand Down
Expand Up @@ -11,42 +11,52 @@ public class CustomKubernetesTestServerTestResource extends KubernetesServerTest
// setup the ConfigMap objects that the application expects to lookup configuration from
@Override
protected void configureServer() {
server.getClient().inNamespace("test").configMaps().create(configMapBuilder("cmap1")
.addToData("dummy", "dummy")
.addToData("overridden.secret", "cm") // will be overridden since secrets have a higher priority
.addToData("some.prop1", "val1")
.addToData("some.prop2", "val2")
.addToData("some.prop4", "v4") // will be overridden since cmap2 has a higher priority
.addToData("some.prop5", "val5")
.addToData("application.properties", "some.prop3=val3")
.addToData("application.yaml", "some:\n prop4: val4").build());
getClient().inNamespace("test").configMaps()
.resource(configMapBuilder("cmap1")
.addToData("dummy", "dummy")
.addToData("overridden.secret", "cm") // will be overridden since secrets have a higher priority
.addToData("some.prop1", "val1")
.addToData("some.prop2", "val2")
.addToData("some.prop4", "v4") // will be overridden since cmap2 has a higher priority
.addToData("some.prop5", "val5")
.addToData("application.properties", "some.prop3=val3")
.addToData("application.yaml", "some:\n prop4: val4").build())
.create();

server.getClient().inNamespace("test").configMaps().create(configMapBuilder("cmap2")
.addToData("application.yaml", "some:\n prop4: val4").build());
server.getClient().inNamespace("test").configMaps()
.resource(configMapBuilder("cmap2")
.addToData("application.yaml", "some:\n prop4: val4").build())
.create();

server.getClient().inNamespace("test").configMaps().create(configMapBuilder("cmap3")
.addToData("dummy", "dummyFromDemo")
.addToData("some.prop1", "val1FromDemo")
.addToData("some.prop2", "val2FromDemo")
.addToData("some.prop5", "val5FromDemo")
.addToData("application.properties", "some.prop3=val3FromDemo")
.addToData("application.yaml", "some:\n prop4: val4FromDemo").build());
server.getClient().inNamespace("test").configMaps()
.resource(configMapBuilder("cmap3")
.addToData("dummy", "dummyFromDemo")
.addToData("some.prop1", "val1FromDemo")
.addToData("some.prop2", "val2FromDemo")
.addToData("some.prop5", "val5FromDemo")
.addToData("application.properties", "some.prop3=val3FromDemo")
.addToData("application.yaml", "some:\n prop4: val4FromDemo").build())
.create();

server.getClient().inNamespace("test").secrets().create(secretBuilder("s1")
.addToData("dummysecret", encodeValue("dummysecret"))
.addToData("overridden.secret", encodeValue("secret"))
.addToData("secret.prop1", encodeValue("val1"))
.addToData("secret.prop2", encodeValue("val2"))
.addToData("application.properties", encodeValue("secret.prop3=val3"))
.addToData("application.yaml", encodeValue("secret:\n prop4: val4")).build());
server.getClient().inNamespace("test").secrets()
.resource(secretBuilder("s1")
.addToData("dummysecret", encodeValue("dummysecret"))
.addToData("overridden.secret", encodeValue("secret"))
.addToData("secret.prop1", encodeValue("val1"))
.addToData("secret.prop2", encodeValue("val2"))
.addToData("application.properties", encodeValue("secret.prop3=val3"))
.addToData("application.yaml", encodeValue("secret:\n prop4: val4")).build())
.create();

server.getClient().inNamespace("test").secrets().createOrReplace(secretBuilder("s1")
.addToData("dummysecret", encodeValue("dummysecretFromDemo"))
.addToData("overridden.secret", encodeValue("secretFromDemo"))
.addToData("secret.prop1", encodeValue("val1FromDemo"))
.addToData("secret.prop2", encodeValue("val2FromDemo"))
.addToData("application.properties", encodeValue("secret.prop3=val3FromDemo"))
.addToData("application.yaml", encodeValue("secret:\n prop4: val4FromDemo")).build());
server.getClient().inNamespace("test").secrets()
.resource(secretBuilder("s1")
.addToData("dummysecret", encodeValue("dummysecretFromDemo"))
.addToData("overridden.secret", encodeValue("secretFromDemo"))
.addToData("secret.prop1", encodeValue("val1FromDemo"))
.addToData("secret.prop2", encodeValue("val2FromDemo"))
.addToData("application.properties", encodeValue("secret.prop3=val3FromDemo"))
.addToData("application.yaml", encodeValue("secret:\n prop4: val4FromDemo")).build())
.createOrReplace();
}

private ConfigMapBuilder configMapBuilder(String name) {
Expand Down
Expand Up @@ -9,6 +9,7 @@
import java.security.Key;
import java.security.KeyStore;
import java.security.interfaces.ECPrivateKey;
import java.time.Instant;

import org.junit.jupiter.api.Test;

Expand Down Expand Up @@ -96,7 +97,8 @@ private void setupMockServerForTest() {
.times(2);

mockServer.expect().delete().withPath("/api/v1/namespaces/test/pods/pod1")
.andReturn(200, "{}")
.andReturn(200, new PodBuilder(pod1)
.editMetadata().withDeletionTimestamp(Instant.now().toString()).endMetadata().build())
.once();

// PUT on /pod/test will createOrReplace, which attempts a POST first, then a PUT if receiving a 409
Expand Down
10 changes: 7 additions & 3 deletions test-framework/kubernetes-client/pom.xml
Expand Up @@ -19,7 +19,7 @@
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-server-mock</artifactId>
<artifactId>kubernetes-client-api</artifactId>
<exclusions>
<exclusion>
<groupId>javax.annotation</groupId>
Expand All @@ -38,11 +38,15 @@
<artifactId>jakarta.xml.bind-api</artifactId>
</exclusion>
<exclusion>
<groupId>io.sundr</groupId>
<artifactId>*</artifactId>
<groupId>io.sundr</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-server-mock</artifactId>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
Expand Down
Expand Up @@ -5,7 +5,6 @@
import java.util.Map;

import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.GenericKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;

Expand All @@ -26,9 +25,7 @@ public Map<String, String> start() {
server = createServer();
initServer();

try (GenericKubernetesClient<?> client = getClient()) {
systemProps.put(Config.KUBERNETES_MASTER_SYSTEM_PROPERTY, client.getConfiguration().getMasterUrl());
}
systemProps.put(Config.KUBERNETES_MASTER_SYSTEM_PROPERTY, getClient().getConfiguration().getMasterUrl());

configureServer();
//these actually need to be system properties
Expand All @@ -40,7 +37,7 @@ public Map<String, String> start() {
return systemProps;
}

protected abstract GenericKubernetesClient<C> getClient();
protected abstract C getClient();

/**
* Can be used by subclasses in order to
Expand Down
Expand Up @@ -2,7 +2,6 @@

import java.lang.annotation.Annotation;

import io.fabric8.kubernetes.client.GenericKubernetesClient;
import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;

Expand All @@ -14,7 +13,7 @@ public class KubernetesMockServerTestResource
extends AbstractKubernetesTestResource<KubernetesMockServer, NamespacedKubernetesClient> {

@Override
protected GenericKubernetesClient<NamespacedKubernetesClient> getClient() {
protected NamespacedKubernetesClient getClient() {
return server.createClient();
}

Expand Down
Expand Up @@ -6,7 +6,6 @@
import java.util.Collections;
import java.util.function.Consumer;

import io.fabric8.kubernetes.client.GenericKubernetesClient;
import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
import io.quarkus.test.common.QuarkusTestResourceConfigurableLifecycleManager;
Expand All @@ -32,7 +31,7 @@ public void init(WithKubernetesTestServer annotation) {
}

@Override
protected GenericKubernetesClient<NamespacedKubernetesClient> getClient() {
protected NamespacedKubernetesClient getClient() {
return server.getClient();
}

Expand Down
Expand Up @@ -3,7 +3,6 @@
import java.lang.annotation.Annotation;
import java.util.function.Consumer;

import io.fabric8.kubernetes.client.GenericKubernetesClient;
import io.fabric8.openshift.client.NamespacedOpenShiftClient;
import io.fabric8.openshift.client.server.mock.OpenShiftServer;
import io.quarkus.test.common.QuarkusTestResourceConfigurableLifecycleManager;
Expand All @@ -27,7 +26,7 @@ public void init(WithOpenShiftTestServer annotation) {
}

@Override
protected GenericKubernetesClient<NamespacedOpenShiftClient> getClient() {
protected NamespacedOpenShiftClient getClient() {
return server.getOpenshiftClient();
}

Expand Down

0 comments on commit 2c6c472

Please sign in to comment.