Hello Spring Cloud Config Team,
Maybe a small bug with Ilford 2020.0.0 and SpringBoot 2.4.1 With a web app, 2.4.1 + Ilford 2020.0.0-RC1, the properties are being picked up correctly at client side. When the client starts, I do see below logs, very happy 😃
[ main] c.a.Application : The following profiles are active: my-env
[ main] o.s.b.context.config.ConfigDataLoader : Fetching config from server at : https://my-service/config
[ main] o.s.b.context.config.ConfigDataLoader : Located environment: name=myservice, profiles=[my-env], label=null, version=7f95facc49b97272a0a3915650b12e56ea7440bf, state=null
[ main] c.u.j.EncryptablePropertySourceConverter : Converting PropertySource configserver:https://my-git/myservice-my-env.properties [org.springframework.boot.env.OriginTrackedMapPropertySource] to EncryptableMapPropertySourceWrapper
note profiles=[my-env]
However, same code, just one change, Ilford 2020.0.0-RC1 -> Ilford 2020.0.0, the properties are not being picked up. On startup, I am seeing the following instead:
[ main] c.a.Application : The following profiles are active: my-env
[ main] o.s.b.context.config.ConfigDataLoader : Fetching config from server at : https://my-service/config
[ main] o.s.b.context.config.ConfigDataLoader : Located environment: name=myservice, profiles=[default], label=null, version=7f95facc49b97272a0a3915650b12e56ea7440bf, state=null
[ main] c.u.j.EncryptablePropertySourceConverter : Converting PropertySource Config resource 'class path resource [application.properties]' via location 'optional:classpath:/' [org.springframework.boot.env.OriginTrackedMapPropertySource] to EncryptableMapPropertySourceWrapper
And then again reverted back to 2020.0.0-RC1, and working. May I ask what is the root cause of this issue please?
Thank you
Comment From: dnijssen
I just encountered the same issue, and created a reproduction path for @spencergibb and his team -> https://github.com/dnijssen/config-server-client . Seems to be a regression issue to me, as I can confirm it did indeed work with 2020.0.0-RC1
Comment From: spencergibb
As a workaround to get the config client to send the right profile, set spring.cloud.config.profile to the same values as spring.profiles.active.
Comment From: spencergibb
There is a second issue in config server where the names of the property sources are the same, so Default still gets returned because the correct property source gets overridden.
{
"name": "config-client",
"profiles": [
"test"
],
"label": null,
"version": null,
"state": null,
"propertySources": [
{
"name": "class path resource [config/config-client.yaml",
"source": {
"spring.config.activate.on-profile": "test",
"config-client.test": "Test"
}
},
{
"name": "class path resource [config/config-client.yaml",
"source": {
"config-client.test": "Default"
}
}
]
}
Comment From: dnijssen
Ty for the workaround! I can indeed confirm the second issue as well :) Would you be able to convert that one into a seperate issue yourself? As you might be able better to describe it.
Comment From: ncioj10
Where to apply these workarounds? To me it seems that the configserver pull is completely broken. For me it doesn't even work with legacy processing. It just doesn't pull the files with in application.properties and bootstrap.properties. The documentation is very confusing regarding this, it would be good to have that in a central place as currently it is not clear how to upgrade.
spring.application.name=current-service
spring.cloud.config.uri=http://localhost:8888
spring.config.use-legacy-processing=true
Comment From: spencergibb
They have been fixed in version 3.0.1 see https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#known-issues