bump kubernetes-client to latest version to work with snakeyaml 2.x
minor code changes
diff --git a/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesClientRegistryImpl.java b/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesClientRegistryImpl.java
index f0bbecf..432ef5c 100644
--- a/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesClientRegistryImpl.java
+++ b/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesClientRegistryImpl.java
@@ -105,8 +105,14 @@
}
Duration actionTimeout = conf.get(KubernetesLocationConfig.ACTION_TIMEOUT);
if (actionTimeout.isPositive()) {
- configBuilder.withRollingTimeout(actionTimeout.toMilliseconds());
+ // removed in 6.x; not sure what the replacement is
+ // configBuilder.withRollingTimeout(actionTimeout.toMilliseconds());
+
+ // never used (considered as replacement for above); takes integers so probably something different
+ // configBuilder.withUploadRequestTimeout(actionTimeout.toMilliseconds());
+
configBuilder.withScaleTimeout(actionTimeout.toMilliseconds());
+
} else {
throw new IllegalArgumentException("Kubernetes action timeout should be a positive duration: " + actionTimeout.toString());
}
diff --git a/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesLocation.java b/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesLocation.java
index b497546..84df59e 100644
--- a/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesLocation.java
+++ b/locations/container/src/main/java/org/apache/brooklyn/container/location/kubernetes/KubernetesLocation.java
@@ -23,6 +23,7 @@
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,7 +33,6 @@
import com.google.common.base.Functions;
import com.google.common.base.Joiner;
import com.google.common.base.Optional;
-import com.google.common.base.Predicates;
import com.google.common.base.Stopwatch;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
@@ -45,6 +45,7 @@
import com.google.common.io.BaseEncoding;
import com.google.common.net.HostAndPort;
+import io.fabric8.kubernetes.api.model.*;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.location.LocationSpec;
import org.apache.brooklyn.api.location.MachineLocation;
@@ -90,36 +91,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import io.fabric8.kubernetes.api.model.Container;
-import io.fabric8.kubernetes.api.model.ContainerBuilder;
-import io.fabric8.kubernetes.api.model.ContainerPort;
-import io.fabric8.kubernetes.api.model.ContainerPortBuilder;
-import io.fabric8.kubernetes.api.model.EndpointAddress;
-import io.fabric8.kubernetes.api.model.EndpointSubset;
-import io.fabric8.kubernetes.api.model.Endpoints;
-import io.fabric8.kubernetes.api.model.EnvVar;
-import io.fabric8.kubernetes.api.model.EnvVarBuilder;
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.fabric8.kubernetes.api.model.LabelSelector;
-import io.fabric8.kubernetes.api.model.LabelSelectorBuilder;
-import io.fabric8.kubernetes.api.model.Namespace;
-import io.fabric8.kubernetes.api.model.NamespaceBuilder;
-import io.fabric8.kubernetes.api.model.PersistentVolume;
-import io.fabric8.kubernetes.api.model.PersistentVolumeBuilder;
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.api.model.PodList;
-import io.fabric8.kubernetes.api.model.PodTemplateSpec;
-import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
-import io.fabric8.kubernetes.api.model.QuantityBuilder;
-import io.fabric8.kubernetes.api.model.ReplicationController;
-import io.fabric8.kubernetes.api.model.ResourceRequirements;
-import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder;
-import io.fabric8.kubernetes.api.model.Secret;
-import io.fabric8.kubernetes.api.model.SecretBuilder;
-import io.fabric8.kubernetes.api.model.Service;
-import io.fabric8.kubernetes.api.model.ServiceBuilder;
-import io.fabric8.kubernetes.api.model.ServicePort;
-import io.fabric8.kubernetes.api.model.ServicePortBuilder;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
import io.fabric8.kubernetes.api.model.apps.DeploymentStatus;
@@ -252,12 +223,12 @@
final String resourceType = entity.sensors().get(KubernetesResource.RESOURCE_TYPE);
final String resourceName = entity.sensors().get(KubernetesResource.RESOURCE_NAME);
- if (!handleResourceDelete(resourceType, resourceName, namespace)) {
+ if (handleResourceDelete(resourceType, resourceName, namespace).isEmpty()) {
LOG.warn("Resource {}: {} not deleted", resourceName, resourceType);
}
}
- protected boolean handleResourceDelete(String resourceType, String resourceName, String namespace) {
+ protected List<StatusDetails> handleResourceDelete(String resourceType, String resourceName, String namespace) {
try (KubernetesClient client = getClient()){
switch (resourceType) {
case KubernetesResource.DEPLOYMENT:
@@ -280,7 +251,7 @@
} catch (KubernetesClientException kce) {
LOG.warn("Error deleting resource {}: {}", resourceName, kce);
}
- return false;
+ return Collections.emptyList();
}
protected void undeploy(final String namespace, final String deployment) {
diff --git a/locations/container/src/main/java/org/apache/brooklyn/container/location/openshift/OpenShiftLocation.java b/locations/container/src/main/java/org/apache/brooklyn/container/location/openshift/OpenShiftLocation.java
index 5f81e86..1e9b597 100644
--- a/locations/container/src/main/java/org/apache/brooklyn/container/location/openshift/OpenShiftLocation.java
+++ b/locations/container/src/main/java/org/apache/brooklyn/container/location/openshift/OpenShiftLocation.java
@@ -19,8 +19,11 @@
package org.apache.brooklyn.container.location.openshift;
import java.net.InetAddress;
+import java.util.Collections;
+import java.util.List;
import java.util.Map;
+import io.fabric8.kubernetes.api.model.StatusDetails;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.location.LocationSpec;
import org.apache.brooklyn.container.entity.openshift.OpenShiftPod;
@@ -76,10 +79,9 @@
}
@Override
- protected boolean handleResourceDelete(String resourceType, String resourceName, String namespace) {
- if (super.handleResourceDelete(resourceType, resourceName, namespace)) {
- return true;
- }
+ protected List<StatusDetails> handleResourceDelete(String resourceType, String resourceName, String namespace) {
+ List<StatusDetails> result = super.handleResourceDelete(resourceType, resourceName, namespace);
+ if (!result.isEmpty()) return result;
try {
switch (resourceType) {
@@ -95,7 +97,7 @@
} catch (KubernetesClientException kce) {
LOG.warn("Error deleting resource {}: {}", resourceName, kce);
}
- return false;
+ return Collections.emptyList();
}
@Override
diff --git a/pom.xml b/pom.xml
index 5c2395b..8f3ea8c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -185,7 +185,7 @@
<maxmind-db.version>1.2.1</maxmind-db.version>
<winrm4j.version>0.12.3</winrm4j.version> <!-- WINRM4J_VERSION -->
<felix-osgi-compendium.version>1.4.0</felix-osgi-compendium.version>
- <kubernetes-client.version>5.8.0</kubernetes-client.version>
+ <kubernetes-client.version>6.9.2</kubernetes-client.version>
<!-- Dependencies shipped with vanilla karaf; update these when we update the karaf version -->
<karaf.version>4.3.8</karaf.version>