diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceLimitPatcher.kt b/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceLimitPatcher.kt
index 752e4703bd7e2338cc04de210b6639aa5278ffa9..533489a44457ba7452f3d0ca1eb88eb6f3ada7d9 100644
--- a/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceLimitPatcher.kt
+++ b/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceLimitPatcher.kt
@@ -1,10 +1,12 @@
 package theodolite.patcher
 
+import io.fabric8.kubernetes.api.model.Container
 import io.fabric8.kubernetes.api.model.KubernetesResource
 import io.fabric8.kubernetes.api.model.Quantity
 import io.fabric8.kubernetes.api.model.ResourceRequirements
 import io.fabric8.kubernetes.api.model.apps.Deployment
-import javax.validation.constraints.Null
+import io.fabric8.kubernetes.api.model.apps.StatefulSet
+import java.lang.IllegalArgumentException
 
 class ResourceLimitPatcher(
     private val k8sResource: KubernetesResource,
@@ -13,25 +15,39 @@ class ResourceLimitPatcher(
 ) : AbstractPatcher(k8sResource, container, limitedResource) {
 
     override fun <String> patch(value: String) {
-        if (k8sResource is Deployment) {
-            k8sResource.spec.template.spec.containers.filter { it.name == container }.forEach {
-                when {
-                    it.resources == null -> {
-                        val resource = ResourceRequirements()
-                        resource.limits = mapOf(limitedResource to Quantity(value as kotlin.String))
-                        it.resources = resource
-                    }
-                    it.resources.limits.isEmpty() -> {
-                        it.resources.limits = mapOf(limitedResource to Quantity(value as kotlin.String))
-                    }
-                    else -> {
-                        val values = mutableMapOf<kotlin.String, Quantity>()
-                        it.resources.limits.forEach { entry -> values[entry.key] = entry.value }
-                        values[limitedResource] = Quantity(value as kotlin.String)
-                        it.resources.limits = values
-                    }
+        when (k8sResource) {
+            is Deployment -> {
+                k8sResource.spec.template.spec.containers.filter { it.name == container }.forEach {
+                    setLimits(it, value as kotlin.String)
                 }
             }
+            is StatefulSet -> {
+                k8sResource.spec.template.spec.containers.filter { it.name == container }.forEach {
+                    setLimits(it, value as kotlin.String)
+                }
+            }
+            else -> {
+                throw IllegalArgumentException("ResourceLimitPatcher not applicable for $k8sResource")
+            }
+        }
+    }
+
+    private fun setLimits(container: Container, value: String) {
+        when {
+            container.resources == null -> {
+                val resource = ResourceRequirements()
+                resource.limits = mapOf(limitedResource to Quantity(value))
+                container.resources = resource
+            }
+            container.resources.limits.isEmpty() -> {
+                container.resources.limits = mapOf(limitedResource to Quantity(value))
+            }
+            else -> {
+                val values = mutableMapOf<String, Quantity>()
+                container.resources.limits.forEach { entry -> values[entry.key] = entry.value }
+                values[limitedResource] = Quantity(value)
+                container.resources.limits = values
+            }
         }
     }
 }
diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceRequestPatcher.kt b/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceRequestPatcher.kt
index 865d350bbe484f1bb4b2ffa733ba1761c47376ea..39e8fafb513a60e8a8cd445227160025fe6d8c42 100644
--- a/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceRequestPatcher.kt
+++ b/theodolite-quarkus/src/main/kotlin/theodolite/patcher/ResourceRequestPatcher.kt
@@ -1,9 +1,12 @@
 package theodolite.patcher
 
+import io.fabric8.kubernetes.api.model.Container
 import io.fabric8.kubernetes.api.model.KubernetesResource
 import io.fabric8.kubernetes.api.model.Quantity
 import io.fabric8.kubernetes.api.model.ResourceRequirements
 import io.fabric8.kubernetes.api.model.apps.Deployment
+import io.fabric8.kubernetes.api.model.apps.StatefulSet
+import java.lang.IllegalArgumentException
 
 class ResourceRequestPatcher(
     private val k8sResource: KubernetesResource,
@@ -12,25 +15,39 @@ class ResourceRequestPatcher(
 ) : AbstractPatcher(k8sResource, container, requestedResource) {
 
     override fun <String> patch(value: String) {
-        if (k8sResource is Deployment) {
-            k8sResource.spec.template.spec.containers.filter { it.name == container }.forEach {
-                when {
-                    it.resources == null -> {
-                        val resource = ResourceRequirements()
-                        resource.requests = mapOf(requestedResource to Quantity(value as kotlin.String))
-                        it.resources = resource
-                    }
-                    it.resources.requests.isEmpty() -> {
-                        it.resources.requests = mapOf(requestedResource to Quantity(value as kotlin.String))
-                    }
-                    else -> {
-                        val values = mutableMapOf<kotlin.String, Quantity>()
-                        it.resources.requests.forEach { entry -> values[entry.key] = entry.value }
-                        values[requestedResource] = Quantity(value as kotlin.String)
-                        it.resources.requests = values
-                    }
+        when (k8sResource) {
+            is Deployment -> {
+                k8sResource.spec.template.spec.containers.filter { it.name == container }.forEach {
+                    setRequests(it, value as kotlin.String)
                 }
             }
+            is StatefulSet -> {
+                k8sResource.spec.template.spec.containers.filter { it.name == container }.forEach {
+                    setRequests(it, value as kotlin.String)
+                }
+            }
+            else -> {
+                throw IllegalArgumentException("ResourceRequestPatcher not applicable for $k8sResource")
+            }
+        }
+    }
+
+    private fun setRequests(container: Container, value: String) {
+        when {
+            container.resources == null -> {
+                val resource = ResourceRequirements()
+                resource.requests = mapOf(requestedResource to Quantity(value))
+                container.resources = resource
+            }
+            container.resources.requests.isEmpty() -> {
+                container.resources.requests = mapOf(requestedResource to Quantity(value))
+            }
+            else -> {
+                val values = mutableMapOf<String, Quantity>()
+                container.resources.requests.forEach { entry -> values[entry.key] = entry.value }
+                values[requestedResource] = Quantity(value)
+                container.resources.requests = values
+            }
         }
     }
 }