Reconnect Watch For ConfigMaps And Secrets (#842)
* Add reconnect logic when watch is closed * Fix version numbers in deployment files
This commit is contained in:
@@ -60,7 +60,7 @@ items:
|
||||
serviceAccount: spring-cloud-kubernetes-configuration-watcher
|
||||
containers:
|
||||
- name: spring-cloud-kubernetes-configuration-watcher
|
||||
image: springcloud/spring-cloud-kubernetes-configuration-watcher:2.0.3-SNAPSHOT
|
||||
image: springcloud/spring-cloud-kubernetes-configuration-watcher:2.0.4-SNAPSHOT
|
||||
imagePullPolicy: IfNotPresent
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
|
||||
@@ -16,13 +16,16 @@
|
||||
|
||||
package org.springframework.cloud.kubernetes.fabric8.config.reload;
|
||||
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.ConfigMap;
|
||||
import io.fabric8.kubernetes.api.model.Status;
|
||||
import io.fabric8.kubernetes.client.KubernetesClient;
|
||||
import io.fabric8.kubernetes.client.KubernetesClientException;
|
||||
import io.fabric8.kubernetes.client.Watch;
|
||||
@@ -84,7 +87,13 @@ public class EventBasedConfigMapChangeDetector extends ConfigurationChangeDetect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose(KubernetesClientException e) {
|
||||
public void onClose(KubernetesClientException exception) {
|
||||
log.warn("ConfigMaps watch closed", exception);
|
||||
Optional.ofNullable(exception).map(e -> {
|
||||
log.debug("Exception received during watch", e);
|
||||
return exception;
|
||||
}).map(KubernetesClientException::getStatus).map(Status::getCode)
|
||||
.filter(c -> c.equals(HttpURLConnection.HTTP_GONE)).ifPresent(c -> watch());
|
||||
}
|
||||
}));
|
||||
activated = true;
|
||||
|
||||
@@ -16,13 +16,16 @@
|
||||
|
||||
package org.springframework.cloud.kubernetes.fabric8.config.reload;
|
||||
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Secret;
|
||||
import io.fabric8.kubernetes.api.model.Status;
|
||||
import io.fabric8.kubernetes.client.KubernetesClient;
|
||||
import io.fabric8.kubernetes.client.KubernetesClientException;
|
||||
import io.fabric8.kubernetes.client.Watch;
|
||||
@@ -85,7 +88,13 @@ public class EventBasedSecretsChangeDetector extends ConfigurationChangeDetector
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose(KubernetesClientException e) {
|
||||
public void onClose(KubernetesClientException exception) {
|
||||
log.warn("Secrects watch closed", exception);
|
||||
Optional.ofNullable(exception).map(e -> {
|
||||
log.debug("Exception received during watch", e);
|
||||
return exception;
|
||||
}).map(KubernetesClientException::getStatus).map(Status::getCode)
|
||||
.filter(c -> c.equals(HttpURLConnection.HTTP_GONE)).ifPresent(c -> watch());
|
||||
}
|
||||
}));
|
||||
activated = true;
|
||||
|
||||
@@ -19,7 +19,7 @@ spec:
|
||||
spec:
|
||||
serviceAccountName: spring-cloud-kubernetes-serviceaccount
|
||||
containers:
|
||||
- image: springcloud/spring-cloud-kubernetes-client-config-it:2.0.3-SNAPSHOT
|
||||
- image: springcloud/spring-cloud-kubernetes-client-config-it:2.0.4-SNAPSHOT
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: spring-cloud-kubernetes-client-config-it
|
||||
resources: {}
|
||||
|
||||
@@ -19,7 +19,7 @@ spec:
|
||||
spec:
|
||||
serviceAccountName: spring-cloud-kubernetes-serviceaccount
|
||||
containers:
|
||||
- image: springcloud/spring-cloud-kubernetes-client-config-it:2.0.3-SNAPSHOT
|
||||
- image: springcloud/spring-cloud-kubernetes-client-config-it:2.0.4-SNAPSHOT
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: spring-cloud-kubernetes-client-config-it
|
||||
resources: {}
|
||||
|
||||
@@ -19,7 +19,7 @@ spec:
|
||||
spec:
|
||||
serviceAccountName: spring-cloud-kubernetes-serviceaccount
|
||||
containers:
|
||||
- image: springcloud/spring-cloud-kubernetes-client-loadbalancer-it:2.0.3-SNAPSHOT
|
||||
- image: springcloud/spring-cloud-kubernetes-client-loadbalancer-it:2.0.4-SNAPSHOT
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: spring-cloud-kubernetes-client-loadbalancer-it
|
||||
resources: {}
|
||||
|
||||
@@ -19,7 +19,7 @@ spec:
|
||||
spec:
|
||||
serviceAccountName: spring-cloud-kubernetes-serviceaccount
|
||||
containers:
|
||||
- image: springcloud/spring-cloud-kubernetes-client-reactive-discovery-it:2.0.3-SNAPSHOT
|
||||
- image: springcloud/spring-cloud-kubernetes-client-reactive-discovery-it:2.0.4-SNAPSHOT
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: spring-cloud-kubernetes-client-reactive-discovery-it
|
||||
resources: {}
|
||||
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
app: k8s-demo-app
|
||||
spec:
|
||||
containers:
|
||||
- image: docker.io/springcloud/spring-cloud-kubernetes-configuration-watcher-it:2.0.3-SNAPSHOT
|
||||
- image: docker.io/springcloud/spring-cloud-kubernetes-configuration-watcher-it:2.0.4-SNAPSHOT
|
||||
name: spring-cloud-kubernetes-configuration-watcher-it
|
||||
resources: {}
|
||||
env:
|
||||
|
||||
@@ -19,7 +19,7 @@ spec:
|
||||
spec:
|
||||
serviceAccountName: spring-cloud-kubernetes-serviceaccount
|
||||
containers:
|
||||
- image: springcloud/spring-cloud-kubernetes-core-k8s-client-it:2.0.3-SNAPSHOT
|
||||
- image: springcloud/spring-cloud-kubernetes-core-k8s-client-it:2.0.4-SNAPSHOT
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: spring-cloud-kubernetes-core-k8s-client-it
|
||||
resources: {}
|
||||
|
||||
Reference in New Issue
Block a user