Skip to content

Spring Cloud 2020.0 Release Notes

Olga Maciaszek-Sharma edited this page Jul 1, 2022 · 65 revisions



  • Spring Cloud Netflix 3.0.6
  • Spring Cloud Config 3.0.7
  • Spring Cloud Sleuth 3.0.6 (issues)
  • Spring Cloud Gateway 3.0.8
  • Spring Cloud Cloudfoundry 3.0.3
  • Spring Cloud Contract 3.0.6 (issues)
  • Spring Cloud Kubernetes 2.0.6
  • Spring Cloud Zookeeper 3.0.5
  • Spring Cloud Cli 3.0.4
  • Spring Cloud Task 2.3.5
  • Spring Cloud Starter Build 2020.0.6
  • Spring Cloud Openfeign 3.0.7
  • Spring Cloud Vault 3.0.5
  • Spring Cloud Commons 3.0.6


All Issues


  • Spring Cloud Netflix 3.0.5 (issues)
  • Spring Cloud Config 3.0.6 (issues)
  • Spring Cloud Sleuth 3.0.5 (issues)
  • Spring Cloud Gateway 3.0.6 (issues)
  • Spring Cloud Cloudfoundry 3.0.3
  • Spring Cloud Contract 3.0.5 (issues)
  • Spring Cloud Kubernetes 2.0.5 (issues)
  • Spring Cloud Zookeeper 3.0.5 (issues)
  • Spring Cloud Cli 3.0.4
  • Spring Cloud Task 2.3.5
  • Spring Cloud Starter Build 2020.0.5
  • Spring Cloud Openfeign 3.0.6 (issues)
  • Spring Cloud Vault 3.0.5 (issues)
  • Spring Cloud Commons 3.0.5 (issues)


All Issues


  • Spring Cloud Cloudfoundry 3.0.2
  • Spring Cloud Config 3.0.5
  • Spring Cloud Contract 3.0.4
  • Spring Cloud Consul 3.0.4
  • Spring Cloud Gateway 3.0.4
  • Spring Cloud Netflix 3.0.4
  • Spring Cloud Vault 3.0.4
  • Spring Cloud Kubernetes 2.0.4
  • Spring Cloud Circuitbreaker 2.0.2
  • Spring Cloud Bus 3.0.3
  • Spring Cloud Cli 3.0.3
  • Spring Cloud Zookeeper 3.0.4
  • Spring Cloud Sleuth 3.0.4
  • Spring Cloud Starter Build 2020.0.4
  • Spring Cloud Task 2.3.2
  • Spring Cloud Commons 3.0.4
  • Spring Cloud Openfeign 3.0.4


Breaking changes

Actuator is no longer a required dependency of config server 1742

All Issues


  • Spring Cloud Cloudfoundry 3.0.2
  • Spring Cloud Config 3.0.4 (issues)
  • Spring Cloud Contract 3.0.3 (issues)
  • Spring Cloud Consul 3.0.3 (issues)
  • Spring Cloud Gateway 3.0.3 (issues)
  • Spring Cloud Netflix 3.0.3 (issues)
  • Spring Cloud Vault 3.0.3
  • Spring Cloud Kubernetes 2.0.3 (issues)
  • Spring Cloud Circuitbreaker 2.0.2
  • Spring Cloud Bus 3.0.3
  • Spring Cloud Cli 3.0.3
  • Spring Cloud Zookeeper 3.0.3 (issues)
  • Spring Cloud Sleuth 3.0.3 (issues)
  • Spring Cloud Starter Build 2020.0.3
  • Spring Cloud Task 2.3.2
  • Spring Cloud Commons 3.0.3 (issues)
  • Spring Cloud Openfeign 3.0.3 (issues)

This release makes it possible for all projects except for Spring Cloud Contract to use Spring Boot 2.5. Spring Boot 2.5 includes a major update of Groovy that can lead to various issues while using Spring Cloud Contract.


Requires Spring Boot 2.4.3

All Issues


  • Spring Cloud Cloudfoundry 3.0.1 (issues)
  • Spring Cloud Commons 3.0.2 (issues)
  • Spring Cloud Config 3.0.3 (issues)
  • Spring Cloud Contract 3.0.2 (issues)
  • Spring Cloud Consul 3.0.2 (issues)
  • Spring Cloud Gateway 3.0.2 (issues)
  • Spring Cloud Netflix 3.0.2 (issues)
  • Spring Cloud Circuitbreaker 2.0.1 (issues)
  • Spring Cloud Zookeeper 3.0.2
  • Spring Cloud Kubernetes 2.0.2 (issues)
  • Spring Cloud Vault 3.0.2 (issues)
  • Spring Cloud Task 2.3.1
  • Spring Cloud Sleuth 3.0.2 (issues)
  • Spring Cloud Bus 3.0.2
  • Spring Cloud Cli 3.0.2
  • Spring Cloud Starter Build 2020.0.2
  • Spring Cloud Openfeign 3.0.2 (issues)


All Issues


  • Spring Cloud Openfeign 3.0.1 (issues)
  • Spring Cloud Config 3.0.2 (issues)
  • Spring Cloud Commons 3.0.1 (issues)
  • Spring Cloud Contract 3.0.1 (issues)
  • Spring Cloud Consul 3.0.1 (issues)
  • Spring Cloud Gateway 3.0.1 (issues)
  • Spring Cloud Netflix 3.0.1 (issues)
  • Spring Cloud Zookeeper 3.0.1 (issues)
  • Spring Cloud Vault 3.0.1 (issues)
  • Spring Cloud Kubernetes 2.0.1 (issues)
  • Spring Cloud Sleuth 3.0.1 (issues)
  • Spring Cloud Bus 3.0.1 (issues)
  • Spring Cloud Cli 3.0.1 (issues)
  • Spring Cloud Starter Build 2020.0.1


Known Issues

  • 2020.0.0 Spring Cloud Consul: Retry support has not been added yet using spring.config.import=consul:. Follow the issue here. The workaround is to use the old bootstrap style by including spring-cloud-starter-bootstrap.

Spring Cloud Config 3.0.1 has been released to fix the issues below. Please use version 2020.0.1 which includes all the fixes below.

  • 2020.0.0 Spring Cloud Config: Retry support is missing for spring.config.import=configserver:. Follow the issue here. For a workaround, continue to use bootstrap.{yml|properties} and add a dependency on spring-cloud-starter-bootstrap to restore the old behavior.
  • 2020.0.0 Spring Cloud Config: spring-cloud-config-dependencies imports a milestone of spring-vault. Follow the issue here. See a workaround here
  • 2020.0.0 Spring Cloud Config: using spring.config.import value of not being used. Follow the issue and see workarounds here.
  • 2020.0.0 Spring Cloud Config: Multi-document YAML and properties files from config server have the same property source name which leads to a missing property source. Follow the issue here.

Breaking changes

  • As announced, the following modules have been removed from spring-cloud-netflix:

    • spring-cloud-netflix-archaius
    • spring-cloud-netflix-concurrency-limits
    • spring-cloud-netflix-core
    • spring-cloud-netflix-dependencies
    • spring-cloud-netflix-hystrix
    • spring-cloud-netflix-hystrix-contract
    • spring-cloud-netflix-hystrix-dashboard
    • spring-cloud-netflix-hystrix-stream
    • spring-cloud-netflix-ribbon
    • spring-cloud-netflix-sidecar
    • spring-cloud-netflix-turbine
    • spring-cloud-netflix-turbine-stream
    • spring-cloud-netflix-zuul
    • spring-cloud-starter-netflix-archaius
    • spring-cloud-starter-netflix-hystrix
    • spring-cloud-starter-netflix-hystrix-dashboard
    • spring-cloud-starter-netflix-ribbon
    • spring-cloud-starter-netflix-turbine
    • spring-cloud-starter-netflix-turbine-stream
    • spring-cloud-starter-netflix-zuul
    • Support for ribbon, hystrix and zuul was removed across the release train projects.
  • Bootstrap, provided by spring-cloud-commons, is no longer enabled by default. If your project requires it, it can be re-enabled by properties or by a new starter.

    • To re-enable by properties set or spring.config.use-legacy-processing=true. These need to be set as an environment variable, java system property or a command line argument.
    • The other option is to include the new spring-cloud-starter-bootstrap.
  • Support has been added for the new Spring Boot spring.config.import syntax for Config Server, Consul, Zookeeper and Vault. The existing properties to configure the different services are still supported but need to be put in or application.yml.

    • spring.config.import=configserver:
    • spring.config.import=consul:
    • spring.config.import=zookeeper:
    • spring.config.import=vault:
  • Spring Cloud Consul removed the old tags-as-metadata functionality issue

  • Previously the property to disable the Spring Cloud Config Client Health Indicator was health.config.enabled=false. It is now following the Spring Boot convention.

  • Spring Cloud Security was removed and code was moved to the individual Spring Cloud projects.

  • The spring-cloud-gateway-core module was moved to spring-cloud-gateway-server. If you are using spring-cloud-gateway-starter this will not be an issue.

  • The implementation of spring-cloud-bus was migrated to use spring-cloud-function instead of the legacy annotation-driven model. This should have minimal effect on users.

  • spring-cloud-stream is now an optional dependency of spring-cloud-bus. If you are using a binder other than rabbitmq or kafka you will need to inclue the new spring-cloud-starter-bus-stream.

  • Actuator endpoints with invalid characters (dashes) have been updated to remove them:

    • bus-env is now busenv
    • bus-refresh is now busrefresh
    • service-registry is now serviceregistry
  • In Spring Cloud Config, the endpoints from the resource API that used the useDefaultLabel query parameter have been removed.

  • As announced Spring Cloud GCP is no longer part of the Spring Cloud release train

Spring Cloud Kubernetes

Code Refactoring

  • Code that was not dependent on any Kubernetes client was moved into a module name spring-cloud-kubernetes-commons
  • Packages were renamed to be Fabric8 specific. Any package that began with has been renamed too

Kubernetes Client Implementations

  • There are alternate implementations for much of the functionality in Spring Cloud Kubernetes using the Kubernetes Java Client.
Functionality Starter
Kubernetes Detection spring-cloud-kubernetes-client
Configuration spring-cloud-starter-kubernetes-client-config
Loadbalancer spring-cloud-starter-kubernetes-client-loadbalancer
Discovery spring-cloud-starter-kubernetes-client-all

NOTE: When using the new Informer based DiscoveryClient you must give cluster wide permissions to the app due to a bug in the Kubernetes Java Client

Configuration Change Listener

  • Classes related to event based and polling configuration change listeners have now been split up PR 644

Renamed Starters

Old Starter Renamed Starter
spring-cloud-starter-kubernetes spring-cloud-starter-kubernetes-fabric8
spring-cloud-starter-kubernetes-config spring-cloud-starter-kubernetes-fabric8-config
spring-cloud-starter-kubernetes-all spring-cloud-starter-kubernetes-fabric8-all
spring-cloud-starter-kubernetes-loadbalancer spring-cloud-starter-kubernetes-fabric8-loadbalancer

Spring Cloud Sleuth

Most notable breaking changes:


Moving OpenTelemetry support to incubator

OpenTelemetry was unable to provide a reliable GA date of their modules. We've decided to remove OpenTelemetry support from Spring Cloud Sleuth and move it to incubator . If you want to continue using OpenTelemetry with Spring Cloud Sleuth you need to add the Spring repositories, the spring-cloud-sleuth-otel-dependencies BOM and spring-cloud-sleuth-otel-autoconfigure dependency.

We have released a 1.0.0-M1 of Spring Cloud Sleuth OTel that is compatible with the 2020.0.0-RC1 release train.



				<!-- Provide the latest stable Spring Cloud release train version (e.g. 2020.0.0) -->
				<!-- Provide the version of the Spring Cloud Sleuth OpenTelemetry project -->


		<!-- You 'll need those to add OTel support -->


ext {
  springCloudSleuthOtelVersion = "1.0.0-M1"

dependencyManagement {
    imports {
        mavenBom "${releaseTrainVersion}"
        mavenBom "${springCloudSleuthOtelVersion}"

dependencies {
    implementation("") {
        exclude group: '', module: 'spring-cloud-sleuth-brave'
    implementation ""

repositories {
    maven {
            url ""
    maven {
            url ""
    maven {
            url ""


  • New modules: spring-cloud-sleuth-autoconfigure, spring-cloud-sleuth-api, spring-cloud-sleuth-instrumentation spring-cloud-sleuth-core removed and changed to spring-cloud-sleuth-instrumentation & spring-cloud-sleuth-api
  • Removed spring-cloud-starter-sleuth-otel To add OpenTelemetry support you need to add spring-cloud-starter-sleuth (adds Brave by default), exclude Brave and add spring-cloud-sleuth-otel dependency
  • Except for the tests, spring-cloud-sleuth-autoconfigure is the only module that can have access to @Configuration, @ConfiguraationProperties classes. Tests have been added to ensure such separation.
Package moving
  • ->
  • ->
  • ->
  • ->
  • Instrumentation: ->
  • All the autoconfiguration classes were moved under package
Global class modifications
  • Any class registered as a bean is now public
  • RateLimitingSampler constructor changed
  • Merged a lot of auto configuration classes into one (e.g. BraveAutoConfiguration now imports various other configurations)
  • Renamed TraceBraveAutoConfiguration to BraveAutoConfiguration
  • Renamed TraceOtelAutoConfiguration to OtelAutoConfiguration
  • Removed all NoOp implementations of the API

To see the whole list check this Github page and search for 3.0.0 milestones.

You can also check the Sleuth 3.0.0 migration guide.

Up till 3.0.0-M5

  • Introduces abstraction over tracers PR 1757
    • You can use Spring Cloud Sleuth's abstraction over Span's lifecycle Check the docs
    • You can use Brave or OpenTelemetry directly
  • Module change / removal
    • Point of entry should be spring-cloud-starter-sleuth (Brave support) or spring-cloud-starter-otel (OpenTelemetry support).
    • If you want to use Zipkin: spring-cloud-starter-zipkin is removed and you should replace is with spring-cloud-sleuth-zipkin dependency.
  • Enable reactor manual instrumentation when in gateway breaking change enhancement Issue 1710
  • Remove the legacy Sleuth keys, span naming breaking change Issue 1564
  • Remove the legacy MDC entries and remain with the Brave MDC ones only breaking change enhancement Issue 1221


All Issues


  • Spring Cloud Circuitbreaker 2.0.0-RC1 (issues)
  • Spring Cloud Contract 3.0.0-RC1 (issues)
  • Spring Cloud Kubernetes 2.0.0-RC1 (issues)
  • Spring Cloud Commons 3.0.0-RC1
  • Spring Cloud Openfeign 3.0.0-RC1
  • Spring Cloud Cloudfoundry 3.0.0-RC1
  • Spring Cloud Security 3.0.0-RC1
  • Spring Cloud Bus 3.0.0-RC1
  • Spring Cloud Cli 3.0.0-RC1
  • Spring Cloud Zookeeper 3.0.0-RC1 (issues)
  • Spring Cloud Sleuth 3.0.0-RC1 (issues)
  • Spring Cloud Consul 3.0.0-RC1
  • Spring Cloud Starter Build 2020.0.0-RC1
  • Spring Cloud Gateway 3.0.0-RC1
  • Spring Cloud Netflix 3.0.0-RC1 (issues)
  • Spring Cloud Vault 3.0.0-RC1 (issues)
  • Spring Cloud Config 3.0.0-RC1 (issues)


All Issues


  • Spring Cloud Sleuth 3.0.0-M6 (issues)
  • Spring Cloud Consul 3.0.0-M6
  • Spring Cloud Gateway 3.0.0-M6
  • Spring Cloud Zookeeper 3.0.0-M6
  • Spring Cloud Config 3.0.0-M6
  • Spring Cloud Cloudfoundry 3.0.0-M6
  • Spring Cloud Netflix 3.0.0-M6
  • Spring Cloud Kubernetes 2.0.0-M6
  • Spring Cloud Circuitbreaker 2.0.0-M6
  • Spring Cloud Contract 3.0.0-M6 (issues)
  • Spring Cloud Starter Build 2020.0.0-M6
  • Spring Cloud Security 3.0.0-M6
  • Spring Cloud Bus 3.0.0-M6
  • Spring Cloud Cli 3.0.0-M6
  • Spring Cloud Vault 3.0.0-M6
  • Spring Cloud Openfeign 3.0.0-M6
  • Spring Cloud Commons 3.0.0-M6


All Issues


  • Spring Cloud Consul 3.0.0-M5
  • Spring Cloud Gateway 3.0.0-M5
  • Spring Cloud Zookeeper 3.0.0-M5
  • Spring Cloud Sleuth 3.0.0-M5 (issues)
  • Spring Cloud Cloudfoundry 3.0.0-M5
  • Spring Cloud Config 3.0.0-M5 (issues)
  • Spring Cloud Kubernetes 2.0.0-M5 (issues)
  • Spring Cloud Netflix 3.0.0-M5 (issues)
  • Spring Cloud Starter Build 2020.0.0-M5
  • Spring Cloud Circuitbreaker 2.0.0-M5 (issues)
  • Spring Cloud Contract 3.0.0-M5 (issues)
  • Spring Cloud Security 3.0.0-M5
  • Spring Cloud Bus 3.0.0-M5 (issues)
  • Spring Cloud Cli 3.0.0-M5
  • Spring Cloud Openfeign 3.0.0-M5 (issues)
  • Spring Cloud Vault 3.0.0-M5
  • Spring Cloud Commons 3.0.0-M5 (issues)


All Issues


  • Spring Cloud Sleuth 3.0.0-M4 (issues)
  • Spring Cloud Consul 3.0.0-M4 (issues)
  • Spring Cloud Config 3.0.0-M4 (issues)
  • Spring Cloud Kubernetes 2.0.0-M4 (issues)
  • Spring Cloud Gateway 3.0.0-M4
  • Spring Cloud Circuitbreaker 2.0.0-M4
  • Spring Cloud Contract 3.0.0-M4 (issues)
  • Spring Cloud Starter Build 2020.0.0-M4
  • Spring Cloud Netflix 3.0.0-M4 (issues)
  • Spring Cloud Cloudfoundry 3.0.0-M4
  • Spring Cloud Security 3.0.0-M4
  • Spring Cloud Cli 3.0.0-M4
  • Spring Cloud Bus 3.0.0-M4 (issues)
  • Spring Cloud Zookeeper 3.0.0-M4 (issues)
  • Spring Cloud Commons 3.0.0-M4 (issues)
  • Spring Cloud Openfeign 3.0.0-M4 (issues)
  • Spring Cloud Vault 3.0.0-M4 (issues)


All Issues


  • Spring Cloud Sleuth 3.0.0-M3
  • Spring Cloud Kubernetes 2.0.0-M3
  • Spring Cloud Consul 3.0.0-M3
  • Spring Cloud Config 3.0.0-M3 (issues)
  • Spring Cloud Gateway 3.0.0-M3
  • Spring Cloud Starter Build 2020.0.0-M3
  • Spring Cloud Circuitbreaker 2.0.0-M3
  • Spring Cloud Contract 3.0.0-M3 (issues)
  • Spring Cloud Cloudfoundry 3.0.0-M3
  • Spring Cloud Security 3.0.0-M3
  • Spring Cloud Netflix 3.0.0-M3
  • Spring Cloud Cli 3.0.0-M3
  • Spring Cloud Bus 3.0.0-M3
  • Spring Cloud Zookeeper 3.0.0-M3
  • Spring Cloud Commons 3.0.0-M3
  • Spring Cloud Vault 3.0.0-M3
  • Spring Cloud Openfeign 3.0.0-M3


All Issues


  • Spring Cloud Netflix 3.0.0-M2
  • Spring Cloud Sleuth 3.0.0-M2
  • Spring Cloud Consul 3.0.0-M2
  • Spring Cloud Kubernetes 2.0.0-M2
  • Spring Cloud Gateway 3.0.0-M2 (issues)
  • Spring Cloud Circuitbreaker 2.0.0-M2
  • Spring Cloud Contract 3.0.0-M2 (issues)
  • Spring Cloud Starter Build 2020.0.0-M2
  • Spring Cloud Config 3.0.0-M2
  • Spring Cloud Build 3.0.0-M2
  • Spring Cloud Cloudfoundry 3.0.0-M2
  • Spring Cloud Security 3.0.0-M2
  • Spring Cloud Bus 3.0.0-M2
  • Spring Cloud Cli 3.0.0-M2
  • Spring Cloud Vault 3.0.0-M2
  • Spring Cloud Zookeeper 3.0.0-M2
  • Spring Cloud Commons 3.0.0-M2
  • Spring Cloud Openfeign 3.0.0-M2



  • Spring Cloud Netflix 3.0.0.M1 (issues)
  • Spring Cloud Function 3.1.0.M1
  • Spring Cloud Sleuth 3.0.0.M1 (issues)
  • Spring Cloud Consul 3.0.0.M1 (issues)
  • Spring Cloud Kubernetes 2.0.0.M1
  • Spring Cloud Gateway 3.0.0.M1 (issues)
  • Spring Cloud Circuitbreaker 2.0.0.M1
  • Spring Cloud Contract 3.0.0.M1 (issues)
  • Spring Cloud Starter Build 2020.0.0-M1
  • Spring Cloud Config 3.0.0.M1
  • Spring Cloud Build 3.0.0.M1
  • Spring Cloud Cloudfoundry 3.0.0.M1
  • Spring Cloud Security 3.0.0.M1
  • Spring Cloud Bus 3.0.0.M1
  • Spring Cloud Vault 3.0.0.M1
  • Spring Cloud Zookeeper 3.0.0.M1 (issues)
  • Spring Cloud Commons 3.0.0.M1 (issues)
  • Spring Cloud Openfeign 3.0.0.M1 (issues)