diff --git a/README.adoc b/README.adoc index 163e9f75..7c0a6de1 100644 --- a/README.adoc +++ b/README.adoc @@ -112,6 +112,15 @@ private DiscoveryClient discoveryClient; ---- ==== +You can choose to enable `DiscoveryClient` from all namespaces by setting the following property in `application.properties`: + +==== +[source] +---- +spring.cloud.kubernetes.discovery.all-namespaces=true +---- +==== + If, for any reason, you need to disable the `DiscoveryClient`, you can set the following property in `application.properties`: ==== @@ -124,6 +133,8 @@ spring.cloud.kubernetes.discovery.enabled=false Some Spring Cloud components use the `DiscoveryClient` in order to obtain information about the local service instance. For this to work, you need to align the Kubernetes service name with the `spring.application.name` property. +NOTE: `spring.application.name` has no effect as far as the name registered for the application within Kubernetes + Spring Cloud Kubernetes can also watch the Kubernetes service catalog for changes and update the `DiscoveryClient` implementation accordingly. In order to enable this functionality you need to add `@EnableScheduling` on a configuration class in your application. @@ -324,6 +335,59 @@ However, if the `production` profile is active, the configuration becomes: If both profiles are active, the property that appears last within the `ConfigMap` overwrites any preceding values. +Another option is to create a different config map per profile and spring boot will automatically fetch it based +on active profiles + +==== +[source,yaml] +---- +kind: ConfigMap +apiVersion: v1 +metadata: + name: demo +data: + application.yml: |- + greeting: + message: Say Hello to the World + farewell: + message: Say Goodbye +---- +==== +==== +[source,yaml] +---- +kind: ConfigMap +apiVersion: v1 +metadata: + name: demo-development +data: + application.yml: |- + spring: + profiles: development + greeting: + message: Say Hello to the Developers + farewell: + message: Say Goodbye to the Developers +---- +==== +==== +[source,yaml] +---- +kind: ConfigMap +apiVersion: v1 +metadata: + name: demo-production +data: + application.yml: |- + spring: + profiles: production + greeting: + message: Say Hello to the Ops + farewell: + message: Say Goodbye +---- +==== + To tell Spring Boot which `profile` should be enabled at bootstrap, you can pass a system property to the Java command. To do so, you can launch your Spring Boot application with an environment variable that you can define with the OpenShift @@ -362,7 +426,7 @@ NOTE: You have to provide the full exact path to each property file, because dir [options="header,footer"] |=== | Name | Type | Default | Description -| `spring.cloud.kubernetes.config.enabled` | `Boolean` | `true` | Enable Secrets `PropertySource` +| `spring.cloud.kubernetes.config.enabled` | `Boolean` | `true` | Enable ConfigMaps `PropertySource` | `spring.cloud.kubernetes.config.name` | `String` | `${spring.application.name}` | Sets the name of `ConfigMap` to look up | `spring.cloud.kubernetes.config.namespace` | `String` | Client namespace | Sets the Kubernetes namespace where to lookup | `spring.cloud.kubernetes.config.paths` | `List` | `null` | Sets the paths where `ConfigMap` instances are mounted @@ -381,10 +445,13 @@ When enabled, the `SecretsPropertySource` looks up Kubernetes for `Secrets` from . Named after the application (as defined by `spring.application.name`) . Matching some labels -Note that, by default, consuming Secrets through the API (points 2 and 3 above) *is not enabled* for security reasons. +*Note:* + +By default, consuming Secrets through the API (points 2 and 3 above) *is not enabled* for security reasons. The permission 'list' on secrets allows clients to inspect secrets values in the specified namespace. Further, we recommend that containers share secrets through mounted volumes. -If you enable consuming Secrets through the API, we recommend that you limit access to Secrets by using an -[authorization policy, such as RBAC](https://kubernetes.io/docs/concepts/configuration/secret/#best-practices). + +If you enable consuming Secrets through the API, we recommend that you limit access to Secrets by using an authorization policy, such as RBAC. +For more information about risks and best practices when consuming Secrets through the API refer to https://kubernetes.io/docs/concepts/configuration/secret/#best-practices[this doc]. If the secrets are found, their data is made available to the application. @@ -500,6 +567,7 @@ If you have all the secrets mapped to a common root, you can set them like: |=== Notes: + * The `spring.cloud.kubernetes.secrets.labels` property behaves as defined by https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Configuration-Binding#map-based-binding[Map-based binding]. * The `spring.cloud.kubernetes.secrets.paths` property behaves as defined by @@ -987,6 +1055,7 @@ $ touch .springformat ==== Intellij IDEA In order to setup Intellij you should import our coding conventions, inspection profiles and set up the checkstyle plugin. +The following files can be found in the https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build] project. .spring-cloud-build-tools/ ---- @@ -1027,7 +1096,7 @@ image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring Go to `File` -> `Settings` -> `Other settings` -> `Checkstyle`. There click on the `+` icon in the `Configuration file` section. There, you'll have to define where the checkstyle rules should be picked from. In the image above, we've picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build's GitHub repository (e.g. for the `checkstyle.xml` : `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). We need to provide the following variables: -- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL. +- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL. - `checkstyle.suppressions.file` - default suppressions. Please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL. - `checkstyle.additional.suppressions.file` - this variable corresponds to suppressions in your local project. E.g. you're working on `spring-cloud-contract`. Then point to the `project-root/src/checkstyle/checkstyle-suppressions.xml` folder. Example for `spring-cloud-contract` would be: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`. diff --git a/docs/pom.xml b/docs/pom.xml index dc36afbd..cca15837 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -8,7 +8,7 @@ org.springframework.cloud spring-cloud-kubernetes - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE pom Spring Cloud Kubernetes Docs diff --git a/pom.xml b/pom.xml index b81bc7c6..ed8052ae 100644 --- a/pom.xml +++ b/pom.xml @@ -24,13 +24,13 @@ org.springframework.cloud spring-cloud-build - 2.1.8.BUILD-SNAPSHOT + 2.1.9.RELEASE org.springframework.cloud spring-cloud-kubernetes - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE pom Spring Cloud Kubernetes @@ -63,9 +63,9 @@ - 2.1.4.BUILD-SNAPSHOT - 2.1.4.BUILD-SNAPSHOT - 2.1.5.BUILD-SNAPSHOT + 2.1.4.RELEASE + 2.1.4.RELEASE + 2.1.5.RELEASE 3.5 diff --git a/spring-cloud-kubernetes-config/pom.xml b/spring-cloud-kubernetes-config/pom.xml index 7cf084b3..d8de58b0 100644 --- a/spring-cloud-kubernetes-config/pom.xml +++ b/spring-cloud-kubernetes-config/pom.xml @@ -5,7 +5,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-core/pom.xml b/spring-cloud-kubernetes-core/pom.xml index 8b596db8..fa4e0437 100644 --- a/spring-cloud-kubernetes-core/pom.xml +++ b/spring-cloud-kubernetes-core/pom.xml @@ -22,7 +22,7 @@ org.springframework.cloud spring-cloud-kubernetes - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-dependencies/pom.xml b/spring-cloud-kubernetes-dependencies/pom.xml index b8cbaf37..64ae333c 100644 --- a/spring-cloud-kubernetes-dependencies/pom.xml +++ b/spring-cloud-kubernetes-dependencies/pom.xml @@ -23,11 +23,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 2.1.8.BUILD-SNAPSHOT + 2.1.9.RELEASE spring-cloud-kubernetes-dependencies - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE pom Spring Cloud Kubernetes :: Dependencies Spring Cloud Kubernetes Dependencies diff --git a/spring-cloud-kubernetes-discovery/pom.xml b/spring-cloud-kubernetes-discovery/pom.xml index 55d79037..b3f99e2a 100644 --- a/spring-cloud-kubernetes-discovery/pom.xml +++ b/spring-cloud-kubernetes-discovery/pom.xml @@ -22,7 +22,7 @@ org.springframework.cloud spring-cloud-kubernetes - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/greeting-service/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/greeting-service/pom.xml index f2dcaee7..325231d1 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/greeting-service/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/greeting-service/pom.xml @@ -23,7 +23,7 @@ org.springframework.cloud kubernetes-circuitbreaker-ribbon-example - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE greeting-service diff --git a/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/name-service/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/name-service/pom.xml index 69162c71..bf3a3a1f 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/name-service/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/name-service/pom.xml @@ -23,7 +23,7 @@ org.springframework.cloud kubernetes-circuitbreaker-ribbon-example - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE name-service diff --git a/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/pom.xml index d58d9e81..bbb886a6 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-circuitbreaker-ribbon-example/pom.xml @@ -23,7 +23,7 @@ spring-cloud-kubernetes-examples org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE org.springframework.cloud diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml index a9008779..71a03152 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml @@ -5,7 +5,7 @@ spring-cloud-kubernetes-examples org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml index df5717bb..aabb7aeb 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-leader-election-example/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-kubernetes-examples - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE kubernetes-leader-election-example diff --git a/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml index e3e5d39a..b148d253 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-reload-example/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes-examples org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-examples/kubernetes-zipkin-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-zipkin-example/pom.xml index 45fe6e31..880ecd74 100644 --- a/spring-cloud-kubernetes-examples/kubernetes-zipkin-example/pom.xml +++ b/spring-cloud-kubernetes-examples/kubernetes-zipkin-example/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes-examples org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-examples/pom.xml b/spring-cloud-kubernetes-examples/pom.xml index 576d0e4e..e4a562f9 100644 --- a/spring-cloud-kubernetes-examples/pom.xml +++ b/spring-cloud-kubernetes-examples/pom.xml @@ -23,7 +23,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE spring-cloud-kubernetes-examples diff --git a/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/pom.xml index 007f7304..51beca04 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/discovery-client/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud discovery-parent - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE discovery-client diff --git a/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-a/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-a/pom.xml index d93c3965..f15b057e 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-a/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-a/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud discovery-parent - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE discovery-service-a diff --git a/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-b/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-b/pom.xml index ec71bcf5..4469b472 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-b/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/discovery-service-b/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud discovery-parent - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE discovery-service-b diff --git a/spring-cloud-kubernetes-integration-tests/discovery/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/pom.xml index b1db064a..4a3f7e59 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-kubernetes-integration-tests - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE Spring Cloud Kubernetes :: Integration Tests :: Discovery Parent diff --git a/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml b/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml index f3858ca4..77e074ba 100644 --- a/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/discovery/tests/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud discovery-parent - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE tests diff --git a/spring-cloud-kubernetes-integration-tests/istio/pom.xml b/spring-cloud-kubernetes-integration-tests/istio/pom.xml index 182cd8f2..7820e1da 100644 --- a/spring-cloud-kubernetes-integration-tests/istio/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/istio/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-kubernetes-integration-tests - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE Spring Cloud Kubernetes :: Integration Tests :: Istio diff --git a/spring-cloud-kubernetes-integration-tests/pom.xml b/spring-cloud-kubernetes-integration-tests/pom.xml index 23e205f6..af25bd38 100644 --- a/spring-cloud-kubernetes-integration-tests/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-kubernetes - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE spring-cloud-kubernetes-integration-tests diff --git a/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml b/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml index aa5674bf..fef655f6 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/simple-configmap/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-kubernetes-integration-tests - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE Spring Cloud Kubernetes :: Integration Tests :: Simple Configmap diff --git a/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml b/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml index 955a3e22..a3d8eda8 100644 --- a/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/simple-core/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-kubernetes-integration-tests - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE Spring Cloud Kubernetes :: Integration Tests :: Simple Core diff --git a/spring-cloud-kubernetes-istio/pom.xml b/spring-cloud-kubernetes-istio/pom.xml index 3d2ee175..8db0158c 100644 --- a/spring-cloud-kubernetes-istio/pom.xml +++ b/spring-cloud-kubernetes-istio/pom.xml @@ -5,7 +5,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-kubernetes-leader/pom.xml b/spring-cloud-kubernetes-leader/pom.xml index 2ed8c923..a4467325 100644 --- a/spring-cloud-kubernetes-leader/pom.xml +++ b/spring-cloud-kubernetes-leader/pom.xml @@ -22,7 +22,7 @@ org.springframework.cloud spring-cloud-kubernetes - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE spring-cloud-kubernetes-leader diff --git a/spring-cloud-kubernetes-ribbon/pom.xml b/spring-cloud-kubernetes-ribbon/pom.xml index 9a3aee41..2a225808 100644 --- a/spring-cloud-kubernetes-ribbon/pom.xml +++ b/spring-cloud-kubernetes-ribbon/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-starter-kubernetes-all/pom.xml b/spring-cloud-starter-kubernetes-all/pom.xml index 3a854cc2..a96196fd 100644 --- a/spring-cloud-starter-kubernetes-all/pom.xml +++ b/spring-cloud-starter-kubernetes-all/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-starter-kubernetes-config/pom.xml b/spring-cloud-starter-kubernetes-config/pom.xml index 6a043ee5..ee11e4fb 100644 --- a/spring-cloud-starter-kubernetes-config/pom.xml +++ b/spring-cloud-starter-kubernetes-config/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-starter-kubernetes-ribbon/pom.xml b/spring-cloud-starter-kubernetes-ribbon/pom.xml index 2edc2488..1cf58339 100644 --- a/spring-cloud-starter-kubernetes-ribbon/pom.xml +++ b/spring-cloud-starter-kubernetes-ribbon/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0 diff --git a/spring-cloud-starter-kubernetes/pom.xml b/spring-cloud-starter-kubernetes/pom.xml index 2d6ddf42..bd637ceb 100644 --- a/spring-cloud-starter-kubernetes/pom.xml +++ b/spring-cloud-starter-kubernetes/pom.xml @@ -22,7 +22,7 @@ spring-cloud-kubernetes org.springframework.cloud - 1.0.4.BUILD-SNAPSHOT + 1.0.4.RELEASE 4.0.0