diff --git a/.gitlab/production.yaml b/.gitlab/production.yaml
index 0b84a801fa84598de72a9971cc93e8dcf9e8a495..3fc2789b5d70105422db4ffcf8e8350061947b13 100644
--- a/.gitlab/production.yaml
+++ b/.gitlab/production.yaml
@@ -57,8 +57,26 @@ ingress:
       secretName: metager-tls-otherdomains
 
 autoscaling:
-  maxReplicas: 5
+  minReplicas: 2
 
 podAnnotations:
   prometheus.io/scrape: "true"
   prometheus.io/port: "8080"
+
+resources:
+  requests:
+    fpm:
+      cpu: 1
+      memory: 500M
+    scheduler:
+      cpu: 100m
+      memory: 100M
+    worker:
+      cpu: 1
+      memory: 100M
+    nginx:
+      cpu: 100m
+      memory: 100M
+    redis:
+      cpu: 100m
+      memory: 1Gi
diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml
index c54a99d97ddf7fa086847023062192288c489af0..c447ac75fd9b4288436331889013a5ede406baf9 100644
--- a/chart/templates/deployment.yaml
+++ b/chart/templates/deployment.yaml
@@ -101,9 +101,8 @@ spec:
             periodSeconds: 1
           resources:
             requests:
-              cpu: 1
-              memory: 500M
-            limits:
+              {{- toYaml .Values.resources.requests.fpm | nindent 14 }}
+            limits: {}
         - name: scheduler
           securityContext:
             {{- toYaml .Values.securityContext | nindent 12 }}
@@ -146,9 +145,8 @@ spec:
               port: http
           resources:
             requests:
-              cpu: 100m
-              memory: 100M
-            limits:
+              {{- toYaml .Values.resources.requests.scheduler | nindent 14 }}
+            limits: {}
         - name: worker
           securityContext:
             {{- toYaml .Values.securityContext | nindent 12 }}
@@ -182,8 +180,7 @@ spec:
               port: http
           resources:
             requests:
-              cpu: 1
-              memory: 100M
+              {{- toYaml .Values.resources.requests.worker | nindent 14 }}
             limits:
         - name: nginx
           securityContext:
@@ -210,9 +207,8 @@ spec:
             periodSeconds: 1
           resources:
             requests:
-              cpu: 100m
-              memory: 100M
-            limits:
+              {{- toYaml .Values.resources.requests.nginx | nindent 14 }}
+            limits: {}
         - name: redis
           image: "{{ template "redis_image" . }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
@@ -236,8 +232,7 @@ spec:
             initialDelaySeconds: 2
           resources:
             requests:
-              cpu: 100m
-              memory: 1Gi
+              {{- toYaml .Values.resources.requests.redis | nindent 14 }}
             limits:
           securityContext:
             runAsUser: 999
diff --git a/chart/values.yaml b/chart/values.yaml
index 43c0677cff9c0d7eae1b0691ba2c010afd5482ee..3e3bb2ca62f862d0ecae32474d7aa6faff8b022d 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -106,21 +106,16 @@ ingress:
   #      - chart-example.local
 
 resources:
-  {}
-  # We usually recommend not to specify default resources and to leave this as a conscious
-  # choice for the user. This also increases chances charts run on environments with little
-  # resources, such as Minikube. If you do want to specify resources, uncomment the following
-  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
-  # limits:
-  #   cpu: 100m
-  #   memory: 128Mi
-  # requests:
-  #   cpu: 100m
-  #   memory: 128Mi
+  requests:
+    fpm: {}
+    scheduler: {}
+    worker: {}
+    nginx: {}
+    redis: {}
 
 autoscaling:
   enabled: true
-  minReplicas: 2
+  minReplicas: 1
   maxReplicas: 5
   targetCPUUtilizationPercentage: 85
   #targetMemoryUtilizationPercentage: 80