From 826e1bac8738fec7b5369b6bffffe648751fc57d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Ara=C3=BAjo?= <davidaraujo@av.it.pt>
Date: Mon, 11 Dec 2023 17:03:55 +0000
Subject: [PATCH] HPA in services

HPA in webui service
---
 manifests/deviceservice.yaml     | 35 ++++++++++++++++++++++++--------
 manifests/monitoringservice.yaml | 35 ++++++++++++++++++++++++--------
 manifests/webuiservice.yaml      | 35 ++++++++++++++++++++++++++------
 3 files changed, 83 insertions(+), 22 deletions(-)

diff --git a/manifests/deviceservice.yaml b/manifests/deviceservice.yaml
index fdc3cea02..6181fc63a 100644
--- a/manifests/deviceservice.yaml
+++ b/manifests/deviceservice.yaml
@@ -70,11 +70,30 @@ spec:
   selector:
     app: deviceservice
   ports:
-    - name: grpc
-      protocol: TCP
-      port: 2020
-      targetPort: 2020
-    - name: metrics
-      protocol: TCP
-      port: 9192
-      targetPort: 9192
+  - name: grpc
+    protocol: TCP
+    port: 2020
+    targetPort: 2020
+  - name: metrics
+    protocol: TCP
+    port: 9192
+    targetPort: 9192
+---
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: deviceservice-hpa
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: deviceservice
+  minReplicas: 1
+  maxReplicas: 10
+  metrics:
+  - type: Resource
+    resource:
+      name: cpu
+      target:
+        type: Utilization
+        averageUtilization: 80
diff --git a/manifests/monitoringservice.yaml b/manifests/monitoringservice.yaml
index 3a4d43cd9..6700afdd6 100644
--- a/manifests/monitoringservice.yaml
+++ b/manifests/monitoringservice.yaml
@@ -65,11 +65,30 @@ spec:
   selector:
     app: monitoringservice
   ports:
-    - name: grpc
-      protocol: TCP
-      port: 7070
-      targetPort: 7070
-    - name: metrics
-      protocol: TCP
-      port: 9192
-      targetPort: 9192
+  - name: grpc
+    protocol: TCP
+    port: 7070
+    targetPort: 7070
+  - name: metrics
+    protocol: TCP
+    port: 9192
+    targetPort: 9192
+---
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: monitoringservice-hpa
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: monitoringservice
+  minReplicas: 1
+  maxReplicas: 10
+  metrics:
+  - type: Resource
+    resource:
+      name: cpu
+      target:
+        type: Utilization
+        averageUtilization: 80
diff --git a/manifests/webuiservice.yaml b/manifests/webuiservice.yaml
index bb2573c45..87fe57719 100644
--- a/manifests/webuiservice.yaml
+++ b/manifests/webuiservice.yaml
@@ -111,9 +111,32 @@ spec:
   selector:
     app: webuiservice
   ports:
-    - name: webui
-      port: 8004
-      targetPort: 8004
-    - name: grafana
-      port: 3000
-      targetPort: 3000
+  - name: webui
+    port: 8004
+    targetPort: 8004
+  - name: grafana
+    port: 3000
+    targetPort: 3000
+# TESTING
+---
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: webuiservice-hpa
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: webuiservice
+  minReplicas: 1
+  maxReplicas: 20
+  metrics:
+  - type: Resource
+    resource:
+      name: cpu
+      target:
+        type: Utilization
+        averageUtilization: 50
+  #behavior:
+  #  scaleDown:
+  #    stabilizationWindowSeconds: 30
-- 
GitLab