Commit 8dedeb4c authored by Brian Clozel's avatar Brian Clozel

Fix missing liveness and readiness indicators

Prior to this commit, the livenessState and readinessState health
indicators would not be configured automatically and would be missing
from the "liveness" and "readiness" health groups, leading to 404s when
hitting the `/actuator/health/liveness` or `/actuator/health/readiness`.

This commit ensures that the health indicators beans have the proper
name and revisits the auto-configuration conditions to reflect that as
well.

Fixes gh-22562
parent 4aa010c8
......@@ -40,14 +40,14 @@ import org.springframework.context.annotation.Configuration;
public class AvailabilityHealthContributorAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingBean(name = "livenessStateHealthIndicator")
@ConditionalOnProperty(prefix = "management.health.livenessstate", name = "enabled", havingValue = "true")
public LivenessStateHealthIndicator livenessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
return new LivenessStateHealthIndicator(applicationAvailability);
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingBean(name = "readinessStateHealthIndicator")
@ConditionalOnProperty(prefix = "management.health.readinessstate", name = "enabled", havingValue = "true")
public ReadinessStateHealthIndicator readinessStateHealthIndicator(
ApplicationAvailability applicationAvailability) {
......
......@@ -48,14 +48,15 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
public class AvailabilityProbesAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public LivenessStateHealthIndicator livenessStateProbeIndicator(ApplicationAvailability applicationAvailability) {
@ConditionalOnMissingBean(name = "livenessStateHealthIndicator")
public LivenessStateHealthIndicator livenessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
return new LivenessStateHealthIndicator(applicationAvailability);
}
@Bean
@ConditionalOnMissingBean
public ReadinessStateHealthIndicator readinessStateProbeIndicator(ApplicationAvailability applicationAvailability) {
@ConditionalOnMissingBean(name = "readinessStateHealthIndicator")
public ReadinessStateHealthIndicator readinessStateHealthIndicator(
ApplicationAvailability applicationAvailability) {
return new ReadinessStateHealthIndicator(applicationAvailability);
}
......
......@@ -50,8 +50,8 @@ class AvailabilityProbesAutoConfigurationTests {
void probesWhenKubernetesAddsBeans() {
this.contextRunner.withPropertyValues("spring.main.cloud-platform=kubernetes")
.run((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)
.hasSingleBean(LivenessStateHealthIndicator.class)
.hasSingleBean(ReadinessStateHealthIndicator.class)
.hasSingleBean(LivenessStateHealthIndicator.class).hasBean("livenessStateHealthIndicator")
.hasSingleBean(ReadinessStateHealthIndicator.class).hasBean("readinessStateHealthIndicator")
.hasSingleBean(AvailabilityProbesHealthEndpointGroupsPostProcessor.class));
}
......@@ -59,8 +59,8 @@ class AvailabilityProbesAutoConfigurationTests {
void probesWhenPropertyEnabledAddsBeans() {
this.contextRunner.withPropertyValues("management.endpoint.health.probes.enabled=true")
.run((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)
.hasSingleBean(LivenessStateHealthIndicator.class)
.hasSingleBean(ReadinessStateHealthIndicator.class)
.hasSingleBean(LivenessStateHealthIndicator.class).hasBean("livenessStateHealthIndicator")
.hasSingleBean(ReadinessStateHealthIndicator.class).hasBean("readinessStateHealthIndicator")
.hasSingleBean(AvailabilityProbesHealthEndpointGroupsPostProcessor.class));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment