Skip to content

Commit

Permalink
deps: Bump kubernetes-client-bom from 6.1.1 to 6.2.0
Browse files Browse the repository at this point in the history
Signed-off-by: Marc Nuri <marc@marcnuri.com>
  • Loading branch information
manusa committed Oct 23, 2022
1 parent fe0fcd2 commit ca923e0
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 21 deletions.
4 changes: 2 additions & 2 deletions bom/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@
<kotlin.version>1.7.20</kotlin.version>
<kotlin.coroutine.version>1.6.4</kotlin.coroutine.version>
<kotlin-serialization.version>1.4.1</kotlin-serialization.version>
<kubernetes-client.version>6.1.1</kubernetes-client.version> <!-- Please check with Java Operator SDK team before updating -->
<dekorate.version>3.0.2</dekorate.version> <!-- Please check with Java Operator SDK team before updating -->
<kubernetes-client.version>6.2.0</kubernetes-client.version> <!-- Please check with Java Operator SDK team before updating -->
<dekorate.version>3.1.1</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
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,19 @@

import com.fasterxml.jackson.annotation.JsonFormat;

import io.fabric8.kubernetes.api.builder.VisitableBuilder;
import io.fabric8.kubernetes.api.model.AnyType;
import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.KubeSchema;
import io.fabric8.kubernetes.api.model.KubernetesResource;
import io.fabric8.kubernetes.api.model.KubernetesResourceList;
import io.fabric8.kubernetes.client.CustomResource;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.VersionInfo;
import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.http.HttpClient;
import io.fabric8.kubernetes.client.impl.KubernetesClientImpl;
import io.fabric8.kubernetes.internal.KubernetesDeserializer;
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
import io.quarkus.deployment.Capabilities;
import io.quarkus.deployment.Capability;
Expand All @@ -44,19 +55,16 @@

public class KubernetesClientProcessor {

private static final DotName WATCHER = DotName.createSimple("io.fabric8.kubernetes.client.Watcher");
private static final Logger log = Logger.getLogger(KubernetesClientProcessor.class.getName());
private static final DotName WATCHER = DotName.createSimple(Watcher.class.getName());
private static final DotName RESOURCE_EVENT_HANDLER = DotName
.createSimple("io.fabric8.kubernetes.client.informers.ResourceEventHandler");
private static final DotName KUBERNETES_RESOURCE = DotName
.createSimple("io.fabric8.kubernetes.api.model.KubernetesResource");
.createSimple(io.fabric8.kubernetes.client.informers.ResourceEventHandler.class.getName());
private static final DotName KUBERNETES_RESOURCE = DotName.createSimple(KubernetesResource.class.getName());
private static final DotName KUBERNETES_RESOURCE_LIST = DotName
.createSimple("io.fabric8.kubernetes.api.model.KubernetesResourceList");

private static final DotName VISITABLE_BUILDER = DotName
.createSimple("io.fabric8.kubernetes.api.builder.VisitableBuilder");
private static final DotName CUSTOM_RESOURCE = DotName.createSimple("io.fabric8.kubernetes.client.CustomResource");

private static final Logger log = Logger.getLogger(KubernetesClientProcessor.class.getName());
.createSimple(KubernetesResourceList.class.getName());
private static final DotName KUBE_SCHEMA = DotName.createSimple(KubeSchema.class.getName());
private static final DotName VISITABLE_BUILDER = DotName.createSimple(VisitableBuilder.class.getName());
private static final DotName CUSTOM_RESOURCE = DotName.createSimple(CustomResource.class.getName());

private static final Predicate<DotName> IS_OKHTTP_CLASS = d -> d.toString().startsWith("okhttp3");
private static final DotName JSON_FORMAT = DotName.createSimple(JsonFormat.class.getName());
Expand All @@ -77,7 +85,7 @@ public void registerBeanProducers(BuildProducer<AdditionalBeanBuildItem> additio
@BuildStep
public void nativeImageSupport(BuildProducer<RuntimeReinitializedClassBuildItem> runtimeInitializedClassProducer) {
runtimeInitializedClassProducer
.produce(new RuntimeReinitializedClassBuildItem("io.fabric8.kubernetes.client.utils.Utils"));
.produce(new RuntimeReinitializedClassBuildItem(io.fabric8.kubernetes.client.utils.Utils.class.getName()));
}

@BuildStep
Expand Down Expand Up @@ -163,10 +171,9 @@ public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBui

// we also ignore some classes that are annotated with @JsonDeserialize that would force the registration of the entire model
ignoredJsonDeserializationClasses.produce(
new IgnoreJsonDeserializeClassBuildItem(DotName.createSimple("io.fabric8.kubernetes.api.model.KubeSchema")));
new IgnoreJsonDeserializeClassBuildItem(KUBE_SCHEMA));
ignoredJsonDeserializationClasses.produce(
new IgnoreJsonDeserializeClassBuildItem(
DotName.createSimple("io.fabric8.kubernetes.api.model.KubernetesResourceList")));
new IgnoreJsonDeserializeClassBuildItem(KUBERNETES_RESOURCE_LIST));
ignoredJsonDeserializationClasses.produce(new IgnoreJsonDeserializeClassBuildItem(KUBERNETES_RESOURCE));

final String[] deserializerClasses = combinedIndexBuildItem.getIndex()
Expand All @@ -185,14 +192,19 @@ public void process(ApplicationIndexBuildItem applicationIndex, CombinedIndexBui
.toArray(String[]::new);
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, serializerClasses));

reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, true, KubernetesClientImpl.class.getName()));
reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, true, DefaultKubernetesClient.class.getName()));
reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, false, "io.fabric8.kubernetes.api.model.IntOrString"));
.produce(new ReflectiveClassBuildItem(true, false, AnyType.class.getName()));
reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, false, IntOrString.class.getName()));

reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, false, "io.fabric8.kubernetes.internal.KubernetesDeserializer"));
.produce(new ReflectiveClassBuildItem(true, false, KubernetesDeserializer.class.getName()));
reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, true, "io.fabric8.kubernetes.client.VersionInfo"));
.produce(new ReflectiveClassBuildItem(true, true, VersionInfo.class.getName()));

if (log.isDebugEnabled()) {
final String watchedClassNames = watchedClasses
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,28 @@

import java.util.Collections;

import org.jboss.jandex.DotName;

import io.fabric8.kubernetes.client.extension.ExtensionAdapter;
import io.fabric8.openshift.client.DefaultOpenShiftClient;
import io.fabric8.openshift.client.impl.NamespacedOpenShiftExtensionAdapter;
import io.fabric8.openshift.client.impl.OpenShiftClientImpl;
import io.fabric8.openshift.client.impl.OpenShiftExtensionAdapter;
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
import io.quarkus.arc.deployment.IgnoreSplitPackageBuildItem;
import io.quarkus.deployment.Feature;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
import io.quarkus.it.openshift.client.runtime.OpenShiftClientProducer;

public class OpenShiftClientProcessor {

@BuildStep
public void process(BuildProducer<AdditionalBeanBuildItem> additionalBeanBuildItemProducer) {
public void registerBeanProducers(BuildProducer<AdditionalBeanBuildItem> additionalBeanBuildItemProducer) {
// wire up the OpenShiftClient bean support
additionalBeanBuildItemProducer.produce(AdditionalBeanBuildItem.unremovableOf(OpenShiftClientProducer.class));
}
Expand All @@ -23,6 +33,39 @@ public FeatureBuildItem feature() {
return new FeatureBuildItem(Feature.OPENSHIFT_CLIENT);
}

@BuildStep
public void process(BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
CombinedIndexBuildItem combinedIndexBuildItem,
BuildProducer<ServiceProviderBuildItem> serviceProviderProducer) {

final String[] deserializerClasses = combinedIndexBuildItem.getIndex()
.getAllKnownSubclasses(DotName.createSimple("com.fasterxml.jackson.databind.JsonDeserializer"))
.stream()
.map(c -> c.name().toString())
.filter(s -> s.startsWith("io.fabric8.openshift"))
.toArray(String[]::new);
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, deserializerClasses));

final String[] serializerClasses = combinedIndexBuildItem.getIndex()
.getAllKnownSubclasses(DotName.createSimple("com.fasterxml.jackson.databind.JsonSerializer"))
.stream()
.map(c -> c.name().toString())
.filter(s -> s.startsWith("io.fabric8.openshift"))
.toArray(String[]::new);
reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, serializerClasses));

reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, true, OpenShiftClientImpl.class.getName()));
reflectiveClasses
.produce(new ReflectiveClassBuildItem(true, true, DefaultOpenShiftClient.class.getName()));

// Register the default OpenShift ExtensionAdapter implementations
serviceProviderProducer.produce(new ServiceProviderBuildItem(
ExtensionAdapter.class.getName(), OpenShiftExtensionAdapter.class.getName()));
serviceProviderProducer.produce(new ServiceProviderBuildItem(
ExtensionAdapter.class.getName(), NamespacedOpenShiftExtensionAdapter.class.getName()));
}

@BuildStep
public IgnoreSplitPackageBuildItem splitPackages() {
return new IgnoreSplitPackageBuildItem(Collections.singleton("io.fabric8.openshift.api.model"));
Expand Down

0 comments on commit ca923e0

Please sign in to comment.