diff --git a/rosco-manifests/src/main/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParser.java b/rosco-manifests/src/main/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParser.java index f173b0462..e6a3a6d87 100644 --- a/rosco-manifests/src/main/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParser.java +++ b/rosco-manifests/src/main/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParser.java @@ -536,7 +536,13 @@ private Object typedVal(String value) { try { return Long.parseLong(value); } catch (NumberFormatException e) { - // Not a Long, return the string itself + // Not a Long, let's see if it's a Double + } + + try { + return Double.parseDouble(value); + } catch (NumberFormatException e) { + // Not a Double either, return the string itself. } } diff --git a/rosco-manifests/src/test/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParserTest.java b/rosco-manifests/src/test/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParserTest.java index 65e14a73e..3af072725 100644 --- a/rosco-manifests/src/test/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParserTest.java +++ b/rosco-manifests/src/test/java/com/netflix/spinnaker/rosco/manifests/helm/HelmSetArgumentParserTest.java @@ -160,7 +160,9 @@ private static Stream<Arguments> helmParseArgs() { Map.of("name1", Map.of("name2", Arrays.asList(null, Map.of("foo", "bar")))), true), Arguments.of("key[0]=value,key=value", Map.of("key", "value"), true), - Arguments.of("key1.key2=value,key1=value", Map.of("key1", "value"), true)); + Arguments.of("key1.key2=value,key1=value", Map.of("key1", "value"), true), + Arguments.of("key=1.234", Map.of("key", "1.234"), true), + Arguments.of("key=1.234", Map.of("key", 1.234), false)); } private static Stream<Arguments> helmParseArgsError() {