diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcher.kt
index 3c495331fd0b0df61a6b56eb58a02ac8506860e3..28b2d55d49206df935b4a5303b045e2a69bbd1ac 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcher.kt
@@ -27,8 +27,8 @@ class ConfigMapYamlPatcher(
             val parser = Yaml(dumperOptions)
 
             // Change value
-            val yaml = parser.loadAs(yamlFile, LinkedHashMap<String, String>()::class.java)
-            yaml[variableName] = value
+            val yaml = parser.loadAs(yamlFile, LinkedHashMap<String, Any>()::class.java)
+            yaml[variableName] = value.toLongOrNull() ?: value.toDoubleOrNull() ?: value.toBooleanStrictOrNull() ?: value
 
             // Convert back to String and set in Kubernetes resource
             resource.data[fileName] = parser.dump(yaml)
diff --git a/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcherTest.kt b/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcherTest.kt
new file mode 100644
index 0000000000000000000000000000000000000000..474080b5cea34a621d387e6f0a805a9cb5e1820c
--- /dev/null
+++ b/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/patcher/ConfigMapYamlPatcherTest.kt
@@ -0,0 +1,52 @@
+package rocks.theodolite.kubernetes.patcher
+
+import io.fabric8.kubernetes.api.model.ConfigMap
+import io.fabric8.kubernetes.api.model.ConfigMapBuilder
+import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.Assertions.*
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.ValueSource
+
+internal class ConfigMapYamlPatcherTest {
+
+    private lateinit var configMap: ConfigMap
+
+    private val patcher = ConfigMapYamlPatcher("some-file.yaml", "second")
+
+    @BeforeEach
+    fun setUp() {
+        val data = mapOf(
+            "some-file.yaml" to """
+                first: some-test
+                second: 1
+                third: 1234
+            """.trimIndent()
+        )
+
+        this.configMap = ConfigMapBuilder()
+            .withNewMetadata()
+            .withName("example")
+            .endMetadata()
+            .addToData(data)
+            .build()
+    }
+
+    @ParameterizedTest
+    @ValueSource(strings = ["some-string", "42", "42.42", "true"])
+    fun setSettingString(inputValue: String) {
+        val patched = patcher.patchSingleResource(this.configMap, inputValue)
+        assertTrue(patched is ConfigMap)
+        //patched.let { it as ConfigMap }.data
+        patched as ConfigMap
+        val yaml = patched.data["some-file.yaml"]
+        assertTrue(yaml != null)
+        val line = yaml!!.lines().getOrNull(1)
+        assertTrue(line != null)
+        val value = line!!.split(": ").getOrNull(1)
+        assertEquals(inputValue, value)
+    }
+
+
+}
\ No newline at end of file