Merge pull request #1 from spring-cloud/master

From master remote
This commit is contained in:
Piotr Mińkowski
2020-06-22 14:13:25 +02:00
committed by GitHub
12 changed files with 85 additions and 50 deletions

View File

@@ -10,13 +10,12 @@
<artifactId>spring-cloud-kubernetes</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<packaging>pom</packaging>
<packaging>jar</packaging>
<name>Spring Cloud Kubernetes Docs</name>
<description>Spring Cloud Kubernetes Docs</description>
<properties>
<docs.main>spring-cloud-kubernetes</docs.main>
<main.basedir>${basedir}/..</main.basedir>
<docs.whitelisted.branches>1.0.x,1.1.x</docs.whitelisted.branches>
<configprops.inclusionPattern>spring.cloud.kubernetes.*</configprops.inclusionPattern>
<upload-docs-zip.phase>deploy</upload-docs-zip.phase>
</properties>
@@ -35,15 +34,7 @@
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!--skip deploy (this is just a test module) -->
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
<sourceDirectory>src/main/asciidoc</sourceDirectory>
</build>
<profiles>
<profile>

View File

@@ -1,54 +1,54 @@
|===
|Name | Default | Description
|spring.cloud.kubernetes.client.api-version | | null
|spring.cloud.kubernetes.client.api-version | |
|spring.cloud.kubernetes.client.apiVersion | v1 | Kubernetes API Version
|spring.cloud.kubernetes.client.ca-cert-data | | null
|spring.cloud.kubernetes.client.ca-cert-file | | null
|spring.cloud.kubernetes.client.ca-cert-data | |
|spring.cloud.kubernetes.client.ca-cert-file | |
|spring.cloud.kubernetes.client.caCertData | | Kubernetes API CACertData
|spring.cloud.kubernetes.client.caCertFile | | Kubernetes API CACertFile
|spring.cloud.kubernetes.client.client-cert-data | | null
|spring.cloud.kubernetes.client.client-cert-file | | null
|spring.cloud.kubernetes.client.client-key-algo | | null
|spring.cloud.kubernetes.client.client-key-data | | null
|spring.cloud.kubernetes.client.client-key-file | | null
|spring.cloud.kubernetes.client.client-key-passphrase | | null
|spring.cloud.kubernetes.client.client-cert-data | |
|spring.cloud.kubernetes.client.client-cert-file | |
|spring.cloud.kubernetes.client.client-key-algo | |
|spring.cloud.kubernetes.client.client-key-data | |
|spring.cloud.kubernetes.client.client-key-file | |
|spring.cloud.kubernetes.client.client-key-passphrase | |
|spring.cloud.kubernetes.client.clientCertData | | Kubernetes API ClientCertData
|spring.cloud.kubernetes.client.clientCertFile | | Kubernetes API ClientCertFile
|spring.cloud.kubernetes.client.clientKeyAlgo | RSA | Kubernetes API ClientKeyAlgo
|spring.cloud.kubernetes.client.clientKeyData | | Kubernetes API ClientKeyData
|spring.cloud.kubernetes.client.clientKeyFile | | Kubernetes API ClientKeyFile
|spring.cloud.kubernetes.client.clientKeyPassphrase | changeit | Kubernetes API ClientKeyPassphrase
|spring.cloud.kubernetes.client.connection-timeout | | null
|spring.cloud.kubernetes.client.connection-timeout | |
|spring.cloud.kubernetes.client.connectionTimeout | 10s | Connection timeout
|spring.cloud.kubernetes.client.http-proxy | | null
|spring.cloud.kubernetes.client.https-proxy | | null
|spring.cloud.kubernetes.client.logging-interval | | null
|spring.cloud.kubernetes.client.http-proxy | |
|spring.cloud.kubernetes.client.https-proxy | |
|spring.cloud.kubernetes.client.logging-interval | |
|spring.cloud.kubernetes.client.loggingInterval | 20s | Logging interval
|spring.cloud.kubernetes.client.master-url | | null
|spring.cloud.kubernetes.client.master-url | |
|spring.cloud.kubernetes.client.masterUrl | https://kubernetes.default.svc | Kubernetes API Master Node URL
|spring.cloud.kubernetes.client.namespace | true | Kubernetes Namespace
|spring.cloud.kubernetes.client.no-proxy | | null
|spring.cloud.kubernetes.client.no-proxy | |
|spring.cloud.kubernetes.client.password | | Kubernetes API Password
|spring.cloud.kubernetes.client.proxy-password | | null
|spring.cloud.kubernetes.client.proxy-username | | null
|spring.cloud.kubernetes.client.request-timeout | | null
|spring.cloud.kubernetes.client.proxy-password | |
|spring.cloud.kubernetes.client.proxy-username | |
|spring.cloud.kubernetes.client.request-timeout | |
|spring.cloud.kubernetes.client.requestTimeout | 10s | Request timeout
|spring.cloud.kubernetes.client.rolling-timeout | | null
|spring.cloud.kubernetes.client.rolling-timeout | |
|spring.cloud.kubernetes.client.rollingTimeout | 900s | Rolling timeout
|spring.cloud.kubernetes.client.trust-certs | | null
|spring.cloud.kubernetes.client.trust-certs | |
|spring.cloud.kubernetes.client.trustCerts | false | Kubernetes API Trust Certificates
|spring.cloud.kubernetes.client.username | | Kubernetes API Username
|spring.cloud.kubernetes.client.watch-reconnect-interval | | null
|spring.cloud.kubernetes.client.watch-reconnect-limit | | null
|spring.cloud.kubernetes.client.watch-reconnect-interval | |
|spring.cloud.kubernetes.client.watch-reconnect-limit | |
|spring.cloud.kubernetes.client.watchReconnectInterval | 1s | Reconnect Interval
|spring.cloud.kubernetes.client.watchReconnectLimit | -1 | Reconnect Interval limit retries
|spring.cloud.kubernetes.config.enable-api | true | null
|spring.cloud.kubernetes.config.enable-api | true |
|spring.cloud.kubernetes.config.enabled | true | Enable the ConfigMap property source locator.
|spring.cloud.kubernetes.config.name | | null
|spring.cloud.kubernetes.config.namespace | | null
|spring.cloud.kubernetes.config.paths | | null
|spring.cloud.kubernetes.config.sources | | null
|spring.cloud.kubernetes.config.name | |
|spring.cloud.kubernetes.config.namespace | |
|spring.cloud.kubernetes.config.paths | |
|spring.cloud.kubernetes.config.sources | |
|spring.cloud.kubernetes.discovery.all-namespaces | false | If discovering all namespaces.
|spring.cloud.kubernetes.discovery.enabled | true | If Kubernetes Discovery is enabled.
|spring.cloud.kubernetes.discovery.filter | | SpEL expression to filter services AFTER they have been retrieved from the Kubernetes API server.
@@ -59,7 +59,7 @@
|spring.cloud.kubernetes.discovery.metadata.annotations-prefix | | When addAnnotations is set, then this will be used as a prefix to the key names in the metadata map.
|spring.cloud.kubernetes.discovery.metadata.labels-prefix | | When addLabels is set, then this will be used as a prefix to the key names in the metadata map.
|spring.cloud.kubernetes.discovery.metadata.ports-prefix | port. | When addPorts is set, then this will be used as a prefix to the key names in the metadata map.
|spring.cloud.kubernetes.discovery.order | | null
|spring.cloud.kubernetes.discovery.order | |
|spring.cloud.kubernetes.discovery.primary-port-name | | If set then the port with a given name is used as primary when multiple ports are defined for a service.
|spring.cloud.kubernetes.discovery.service-labels | | If set, then only the services matching these labels will be fetched from the Kubernetes API server.
|spring.cloud.kubernetes.discovery.service-name | unknown | The service name of the local instance.
@@ -71,12 +71,12 @@
|spring.cloud.kubernetes.reload.monitoring-secrets | false | Enables monitoring on secrets to detect changes.
|spring.cloud.kubernetes.reload.period | 15000ms | Sets the polling period to use when the detection mode is POLLING.
|spring.cloud.kubernetes.reload.strategy | | Sets the reload strategy for Kubernetes configuration reload on change.
|spring.cloud.kubernetes.secrets.enable-api | false | null
|spring.cloud.kubernetes.secrets.enable-api | false |
|spring.cloud.kubernetes.secrets.enabled | true | Enable the Secrets property source locator.
|spring.cloud.kubernetes.secrets.labels | | null
|spring.cloud.kubernetes.secrets.name | | null
|spring.cloud.kubernetes.secrets.namespace | | null
|spring.cloud.kubernetes.secrets.paths | | null
|spring.cloud.kubernetes.secrets.sources | | null
|spring.cloud.kubernetes.secrets.labels | |
|spring.cloud.kubernetes.secrets.name | |
|spring.cloud.kubernetes.secrets.namespace | |
|spring.cloud.kubernetes.secrets.paths | |
|spring.cloud.kubernetes.secrets.sources | |
|===

View File

@@ -90,6 +90,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>

View File

@@ -72,6 +72,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@@ -45,12 +45,16 @@ public class KubernetesCatalogWatch implements ApplicationEventPublisherAware {
private final KubernetesClient kubernetesClient;
private final KubernetesDiscoveryProperties properties;
private final AtomicReference<List<String>> catalogEndpointsState = new AtomicReference<>();
private ApplicationEventPublisher publisher;
public KubernetesCatalogWatch(KubernetesClient kubernetesClient) {
public KubernetesCatalogWatch(KubernetesClient kubernetesClient,
KubernetesDiscoveryProperties properties) {
this.kubernetesClient = kubernetesClient;
this.properties = properties;
}
@Override
@@ -66,8 +70,9 @@ public class KubernetesCatalogWatch implements ApplicationEventPublisherAware {
// not all pods participate in the service discovery. only those that have
// endpoints.
List<Endpoints> endpoints = this.kubernetesClient.endpoints().list()
.getItems();
List<Endpoints> endpoints = this.properties.isAllNamespaces()
? this.kubernetesClient.endpoints().inAnyNamespace().list().getItems()
: this.kubernetesClient.endpoints().list().getItems();
List<String> endpointsPodNames = endpoints.stream().map(Endpoints::getSubsets)
.filter(Objects::nonNull).flatMap(Collection::stream)
.map(EndpointSubset::getAddresses).filter(Objects::nonNull)

View File

@@ -42,8 +42,9 @@ public class KubernetesCatalogWatchAutoConfiguration {
@ConditionalOnProperty(
name = "spring.cloud.kubernetes.discovery.catalog-services-watch.enabled",
matchIfMissing = true)
public KubernetesCatalogWatch kubernetesCatalogWatch(KubernetesClient client) {
return new KubernetesCatalogWatch(client);
public KubernetesCatalogWatch kubernetesCatalogWatch(KubernetesClient client,
KubernetesDiscoveryProperties properties) {
return new KubernetesCatalogWatch(client, properties);
}
}

View File

@@ -57,6 +57,9 @@ public class KubernetesCatalogWatchTest {
@Mock
private KubernetesClient kubernetesClient;
@Mock
private KubernetesDiscoveryProperties kubernetesDiscoveryProperties;
@Mock
private ApplicationEventPublisher applicationEventPublisher;

View File

@@ -49,6 +49,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@@ -19,6 +19,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.arquillian.cube</groupId>
<artifactId>arquillian-cube-kubernetes</artifactId>

View File

@@ -36,6 +36,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.arquillian.cube</groupId>
<artifactId>arquillian-cube-kubernetes</artifactId>

View File

@@ -36,6 +36,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.arquillian.cube</groupId>
<artifactId>arquillian-cube-kubernetes</artifactId>

View File

@@ -62,6 +62,11 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>