feat: add Vertical Pod Autoscaler (VPA) configuration across multiple services for improved resource management

Signed-off-by: zhenyus <zhenyus@mathmast.com>
This commit is contained in:
zhenyus 2025-06-10 23:53:31 +08:00
parent 7063dde811
commit 3aad06eeb7
32 changed files with 549 additions and 6 deletions

View File

@ -0,0 +1,32 @@
{{- if .Values.centralStorage.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-central-storage-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: central-storage
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.centralStorage.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.centralStorage.vpa.minAllowed.cpu }}
memory: {{ .Values.centralStorage.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.centralStorage.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.centralStorage.vpa.maxAllowed.cpu }}
memory: {{ .Values.centralStorage.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.centralStorage.vpa.controlledResources }}
controlledResources:
{{- range .Values.centralStorage.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -87,3 +87,15 @@ centralStorage:
azureStorageDocumentApiEndpoint: https://freeleaps1document.blob.core.windows.net/
metricsEnabled: 'false'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "100m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -73,3 +73,15 @@ centralStorage:
azureStorageDocumentApiEndpoint: https://freeleaps1document.blob.core.windows.net/
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "100m"
memory: "128Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "512Mi"
controlledResources:
- cpu
- memory

View File

@ -69,3 +69,15 @@ central-storage:
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.chat.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-chat-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: chat
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.chat.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.chat.vpa.minAllowed.cpu }}
memory: {{ .Values.chat.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.chat.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.chat.vpa.maxAllowed.cpu }}
memory: {{ .Values.chat.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.chat.vpa.controlledResources }}
controlledResources:
{{- range .Values.chat.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -107,3 +107,15 @@ chat:
redisIsCluster: 'false'
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -93,3 +93,15 @@ chat:
redisIsCluster: 'true'
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "300m"
memory: "512Mi"
controlledResources:
- cpu
- memory

View File

@ -107,4 +107,16 @@ chat:
# METRICS_ENABLED
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
probesEnabled: "false"
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.content.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-content-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: content
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.content.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.content.vpa.minAllowed.cpu }}
memory: {{ .Values.content.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.content.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.content.vpa.maxAllowed.cpu }}
memory: {{ .Values.content.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.content.vpa.controlledResources }}
controlledResources:
{{- range .Values.content.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -87,3 +87,15 @@ content:
centralStorageWebapiUrlBase: http://central-storage-service.freeleaps-alpha.svc.freeleaps.cluster:8005/api/central_storage
metricsEnabled: 'false'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -73,3 +73,15 @@ content:
centralStorageWebapiUrlBase: http://central-storage-service.freeleaps-prod.svc.freeleaps.cluster:8005/api/central_storage
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -69,4 +69,15 @@ content:
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.devsvc.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-devsvc-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: devsvc
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.devsvc.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.devsvc.vpa.minAllowed.cpu }}
memory: {{ .Values.devsvc.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.devsvc.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.devsvc.vpa.maxAllowed.cpu }}
memory: {{ .Values.devsvc.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.devsvc.vpa.controlledResources }}
controlledResources:
{{- range .Values.devsvc.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -90,3 +90,15 @@ devsvc:
codeDepotDomainName: alpha.gitea.freeleaps.mathmast.com
metricsEnabled: 'false'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -76,3 +76,15 @@ devsvc:
codeDepotDomainName: gitea.freeleaps.mathmast.com
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "512Mi"
controlledResources:
- cpu
- memory

View File

@ -75,4 +75,16 @@ devsvc:
# METRICS_ENABLED
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
probesEnabled: "false"
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.freeleaps.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-freeleaps-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: freeleaps
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.freeleaps.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.freeleaps.vpa.minAllowed.cpu }}
memory: {{ .Values.freeleaps.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.freeleaps.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.freeleaps.vpa.maxAllowed.cpu }}
memory: {{ .Values.freeleaps.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.freeleaps.vpa.controlledResources }}
controlledResources:
{{- range .Values.freeleaps.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -87,3 +87,15 @@ freeleaps:
redisIsCluster: 'false'
metricsEnabled: 'false'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "256Mi"
controlledResources:
- cpu
- memory

View File

@ -94,3 +94,15 @@ freeleaps:
redisIsCluster: 'true'
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "256Mi"
controlledResources:
- cpu
- memory

View File

@ -111,4 +111,16 @@ freeleaps:
# METRICS_ENABLED
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
probesEnabled: "false"
vpa:
minAllowed:
enabled: true
cpu: "100m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.frontend.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-frontend-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: frontend
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.frontend.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.frontend.vpa.minAllowed.cpu }}
memory: {{ .Values.frontend.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.frontend.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.frontend.vpa.maxAllowed.cpu }}
memory: {{ .Values.frontend.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.frontend.vpa.controlledResources }}
controlledResources:
{{- range .Values.frontend.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -64,3 +64,15 @@ frontend:
frontendPort: 8080
freeleapsChatEndpoint: http://chat-service.freeleaps-alpha.svc.freeleaps.cluster:8012
freeleapsBackendEndpoint: http://freeleaps-service.freeleaps-alpha.svc.freeleaps.cluster:8001
vpa:
minAllowed:
enabled: false
cpu: "50m"
memory: "32Mi"
maxAllowed:
enabled: true
cpu: "100m"
memory: "64Mi"
controlledResources:
- cpu
- memory

View File

@ -64,3 +64,15 @@ frontend:
frontendPort: 8080
freeleapsChatEndpoint: http://chat-service.freeleaps-prod.svc.freeleaps.cluster:8012
freeleapsBackendEndpoint: http://freeleaps-service.freeleaps-prod.svc.freeleaps.cluster:8001
vpa:
minAllowed:
enabled: true
cpu: "50m"
memory: "32Mi"
maxAllowed:
enabled: true
cpu: "100m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -38,4 +38,16 @@ frontend:
# FREELEAPS_CHAT_ENDPOINT
freeleapsChatEndpoint: ""
# FREELEAPS_BACKEND_ENDPOINT
freeleapsBackendEndpoint: ""
freeleapsBackendEndpoint: ""
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.notification.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-notification-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: notification
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.notification.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.notification.vpa.minAllowed.cpu }}
memory: {{ .Values.notification.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.notification.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.notification.vpa.maxAllowed.cpu }}
memory: {{ .Values.notification.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.notification.vpa.controlledResources }}
controlledResources:
{{- range .Values.notification.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -94,3 +94,15 @@ notification:
twilioAuthToken: ef160748cc22c8b7195b49df4b8eca7e
metricsEnabled: 'false'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "100m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -80,3 +80,15 @@ notification:
twilioAuthToken: ef160748cc22c8b7195b49df4b8eca7e
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -82,4 +82,16 @@ notification:
# METRICS_ENABLED
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
probesEnabled: "false"
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory

View File

@ -0,0 +1,32 @@
{{- if .Values.payment.vpa }}
---
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: {{ .Release.Name }}-payment-vpa
namespace: {{ .Release.Namespace }}
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: payment
resourcePolicy:
containerPolicies:
- containerName: '*'
{{- if .Values.payment.vpa.minAllowed.enabled }}
minAllowed:
cpu: {{ .Values.payment.vpa.minAllowed.cpu }}
memory: {{ .Values.payment.vpa.minAllowed.memory }}
{{- end }}
{{- if .Values.payment.vpa.maxAllowed.enabled }}
maxAllowed:
cpu: {{ .Values.payment.vpa.maxAllowed.cpu }}
memory: {{ .Values.payment.vpa.maxAllowed.memory }}
{{- end }}
{{- if .Values.payment.vpa.controlledResources }}
controlledResources:
{{- range .Values.payment.vpa.controlledResources }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -87,3 +87,15 @@ payment:
siteUrlRoot: https://freeleaps-alpha.com
metricsEnabled: 'false'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: false
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "100m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -73,3 +73,15 @@ payment:
siteUrlRoot: https://freeleaps.com
metricsEnabled: 'true'
probesEnabled: 'true'
vpa:
minAllowed:
enabled: true
cpu: "50m"
memory: "64Mi"
maxAllowed:
enabled: true
cpu: "200m"
memory: "128Mi"
controlledResources:
- cpu
- memory

View File

@ -69,3 +69,15 @@ payment:
metricsEnabled: "false"
# PROBES_ENABLED
probesEnabled: "false"
vpa:
minAllowed:
enabled: false
cpu: "0.5"
memory: "512Mi"
maxAllowed:
enabled: true
cpu: "1"
memory: "1Gi"
controlledResources:
- cpu
- memory