From de700e749eec9a8a4317ea0d17baf1367e98602c Mon Sep 17 00:00:00 2001 From: buildmaster Date: Tue, 26 Oct 2021 19:33:04 +0000 Subject: [PATCH] Bumping versions --- README.adoc | 66 +++++++++++++++++++----- docs/src/main/asciidoc/_configprops.adoc | 4 ++ 2 files changed, 57 insertions(+), 13 deletions(-) diff --git a/README.adoc b/README.adoc index 5281777c..634674ca 100644 --- a/README.adoc +++ b/README.adoc @@ -699,15 +699,37 @@ NOTE: If you use `spring.cloud.kubernetes.config.paths` or `spring.cloud.kubern functionality will not work. You will need to make a `POST` request to the `/actuator/refresh` endpoint or restart/redeploy the application. +[#config-map-fail-fast] +In some cases, your application may be unable to load some of your `ConfigMaps` using the Kubernetes API. +If you want your application to fail the start-up process in such cases, you can set +`spring.cloud.kubernetes.config.fail-fast=true` to make the application start-up fail with an Exception. + +[#config-map-retry] +You can also make your application retry loading `ConfigMap` property sources on a failure. First, you need to +set `spring.cloud.kubernetes.config.fail-fast=true`. Then you need to add `spring-retry` +and `spring-boot-starter-aop` to your classpath. You can configure retry properties such as +the maximum number of attempts, backoff options like initial interval, multiplier, max interval by setting the +`spring.cloud.kubernetes.config.retry.*` properties. + +NOTE: If you already have `spring-retry` and `spring-boot-starter-aop` on the classpath for some reason +and want to enable fail-fast, but do not want retry to be enabled; you can disable retry for `ConfigMap` `PropertySources` +by setting `spring.cloud.kubernetes.config.retry.enabled=false`. + .Properties: [options="header,footer"] |=== -| Name | Type | Default | Description -| `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 -| `spring.cloud.kubernetes.config.enableApi` | `Boolean` | `true` | Enable or disable consuming `ConfigMap` instances through APIs +| Name | Type | Default | Description +| `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 +| `spring.cloud.kubernetes.config.enableApi` | `Boolean` | `true` | Enable or disable consuming `ConfigMap` instances through APIs +| `spring.cloud.kubernetes.config.fail-fast` | `Boolean` | `false` | Enable or disable failing the application start-up when an error occurred while loading a `ConfigMap` +| `spring.cloud.kubernetes.config.retry.enabled` | `Boolean` | `true` | Enable or disable config retry. +| `spring.cloud.kubernetes.config.retry.initial-interval` | `Long` | `1000` | Initial retry interval in milliseconds. +| `spring.cloud.kubernetes.config.retry.max-attempts` | `Integer` | `6` | Maximum number of attempts. +| `spring.cloud.kubernetes.config.retry.max-interval` | `Long` | `2000` | Maximum interval for backoff. +| `spring.cloud.kubernetes.config.retry.multiplier` | `Double` | `1.1` | Multiplier for next interval. |=== === Secrets PropertySource @@ -862,17 +884,35 @@ the `Secret` named `s1` would be looked up in the namespace that the application See <> to get a better understanding of how the namespace of the application is resolved. +<>; if you want your application to fail to start +when it is unable to load `Secrets` property sources, you can set `spring.cloud.kubernetes.secrets.fail-fast=true`. + +It is also possible to enable retry for `Secret` property sources <>. +As with the `ConfigMap` property sources, first you need to set `spring.cloud.kubernetes.secrets.fail-fast=true`. +Then you need to add `spring-retry` and `spring-boot-starter-aop` to your classpath. +Retry behavior of the `Secret` property sources can be configured by setting the `spring.cloud.kubernetes.secrets.retry.*` +properties. + +NOTE: If you already have `spring-retry` and `spring-boot-starter-aop` on the classpath for some reason +and want to enable fail-fast, but do not want retry to be enabled; you can disable retry for `Secrets` `PropertySources` +by setting `spring.cloud.kubernetes.secrets.retry.enabled=false`. .Properties: [options="header,footer"] |=== -| Name | Type | Default | Description -| `spring.cloud.kubernetes.secrets.enabled` | `Boolean` | `true` | Enable Secrets `PropertySource` -| `spring.cloud.kubernetes.secrets.name` | `String` | `${spring.application.name}` | Sets the name of the secret to look up -| `spring.cloud.kubernetes.secrets.namespace` | `String` | Client namespace | Sets the Kubernetes namespace where to look up -| `spring.cloud.kubernetes.secrets.labels` | `Map` | `null` | Sets the labels used to lookup secrets -| `spring.cloud.kubernetes.secrets.paths` | `List` | `null` | Sets the paths where secrets are mounted (example 1) -| `spring.cloud.kubernetes.secrets.enableApi` | `Boolean` | `false` | Enables or disables consuming secrets through APIs (examples 2 and 3) +| Name | Type | Default | Description +| `spring.cloud.kubernetes.secrets.enabled` | `Boolean` | `true` | Enable Secrets `PropertySource` +| `spring.cloud.kubernetes.secrets.name` | `String` | `${spring.application.name}` | Sets the name of the secret to look up +| `spring.cloud.kubernetes.secrets.namespace` | `String` | Client namespace | Sets the Kubernetes namespace where to look up +| `spring.cloud.kubernetes.secrets.labels` | `Map` | `null` | Sets the labels used to lookup secrets +| `spring.cloud.kubernetes.secrets.paths` | `List` | `null` | Sets the paths where secrets are mounted (example 1) +| `spring.cloud.kubernetes.secrets.enableApi` | `Boolean` | `false` | Enables or disables consuming secrets through APIs (examples 2 and 3) +| `spring.cloud.kubernetes.secrets.fail-fast` | `Boolean` | `false` | Enable or disable failing the application start-up when an error occurred while loading a `Secret` +| `spring.cloud.kubernetes.secrets.retry.enabled` | `Boolean` | `true` | Enable or disable secrets retry. +| `spring.cloud.kubernetes.secrets.retry.initial-interval` | `Long` | `1000` | Initial retry interval in milliseconds. +| `spring.cloud.kubernetes.secrets.retry.max-attempts` | `Integer` | `6` | Maximum number of attempts. +| `spring.cloud.kubernetes.secrets.retry.max-interval` | `Long` | `2000` | Maximum interval for backoff. +| `spring.cloud.kubernetes.secrets.retry.multiplier` | `Double` | `1.1` | Multiplier for next interval. |=== Notes: diff --git a/docs/src/main/asciidoc/_configprops.adoc b/docs/src/main/asciidoc/_configprops.adoc index b520858b..b5c3003f 100644 --- a/docs/src/main/asciidoc/_configprops.adoc +++ b/docs/src/main/asciidoc/_configprops.adoc @@ -48,10 +48,12 @@ |spring.cloud.kubernetes.client.watchReconnectLimit | `-1` | Reconnect Interval limit retries |spring.cloud.kubernetes.config.enable-api | `true` | |spring.cloud.kubernetes.config.enabled | `true` | Enable the ConfigMap property source locator. +|spring.cloud.kubernetes.config.fail-fast | `false` | |spring.cloud.kubernetes.config.include-profile-specific-sources | `true` | |spring.cloud.kubernetes.config.name | | |spring.cloud.kubernetes.config.namespace | | |spring.cloud.kubernetes.config.paths | | +|spring.cloud.kubernetes.config.retry | | |spring.cloud.kubernetes.config.sources | | |spring.cloud.kubernetes.config.use-name-as-prefix | `false` | |spring.cloud.kubernetes.discovery.all-namespaces | `false` | If discovering all namespaces. @@ -93,11 +95,13 @@ |spring.cloud.kubernetes.reload.strategy | | Sets the reload strategy for Kubernetes configuration reload on change. |spring.cloud.kubernetes.secrets.enable-api | `false` | |spring.cloud.kubernetes.secrets.enabled | `true` | Enable the Secrets property source locator. +|spring.cloud.kubernetes.secrets.fail-fast | `false` | |spring.cloud.kubernetes.secrets.include-profile-specific-sources | `true` | |spring.cloud.kubernetes.secrets.labels | | |spring.cloud.kubernetes.secrets.name | | |spring.cloud.kubernetes.secrets.namespace | | |spring.cloud.kubernetes.secrets.paths | | +|spring.cloud.kubernetes.secrets.retry | | |spring.cloud.kubernetes.secrets.sources | | |spring.cloud.kubernetes.secrets.use-name-as-prefix | `false` |