diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudPlatform.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudPlatform.java index 14d7c12f359..b095d673c92 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudPlatform.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudPlatform.java @@ -85,6 +85,18 @@ public enum CloudPlatform { }, + /** + * Nomad platform. + */ + NOMAD { + + @Override + public boolean isDetected(Environment environment) { + return environment.containsProperty("NOMAD_ALLOC_ID"); + } + + }, + /** * Kubernetes platform. */ diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/cloud/CloudPlatformTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/cloud/CloudPlatformTests.java index 884057e21f6..9e759637974 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/cloud/CloudPlatformTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/cloud/CloudPlatformTests.java @@ -86,6 +86,14 @@ class CloudPlatformTests { assertThat(platform.isActive(environment)).isTrue(); } + @Test + void getActiveWhenHasNomadAllocIdShouldReturnNomad() { + Environment environment = new MockEnvironment().withProperty("NOMAD_ALLOC_ID", "---"); + CloudPlatform platform = CloudPlatform.getActive(environment); + assertThat(platform).isEqualTo(CloudPlatform.NOMAD); + assertThat(platform.isActive(environment)).isTrue(); + } + @Test void getActiveWhenHasKubernetesServiceHostAndPortShouldReturnKubernetes() { Map envVars = new HashMap<>();