Skip to content

Commit 217ade5

Browse files
Add autoscaling configurations for all deployments in Plane CE, enabling HPA with specific resource utilization targets in values.yaml. Update deployment templates to reference individual autoscaling settings for each component.
1 parent c76b1a7 commit 217ade5

19 files changed

+528
-14
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ test-helm.yaml
44
*/local-values.yaml
55
test.yaml
66
test-*.yaml
7+
charts/plane-ce/charts
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
{{- define "imagePullSecret" }}
22
{{- printf "{\"auths\":{\"%s\":{\"username\":\"%s\",\"password\":\"%s\"}}}" .Values.dockerRegistry.host .Values.dockerRegistry.loginid .Values.dockerRegistry.password | b64enc }}
3+
{{- end }}
4+
5+
{{- define "enable.hpa" -}}
6+
{{- $metrics := lookup "rbac.authorization.k8s.io/v1" "ClusterRole" "" "system:metrics-server" }}
7+
{{- if not $metrics }}
8+
false
9+
{{- else }}
10+
true
11+
{{- end }}
312
{{- end }}

charts/plane-ce/templates/workloads/admin.deployment.yaml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
apiVersion: v1
32
kind: Service
43
metadata:
@@ -59,4 +58,40 @@ spec:
5958
serviceAccount: {{ .Release.Name }}-srv-account
6059
serviceAccountName: {{ .Release.Name }}-srv-account
6160

62-
---
61+
---
62+
{{- if eq (include "enable.hpa" . | trim) "true" }}
63+
apiVersion: autoscaling/v2
64+
kind: HorizontalPodAutoscaler
65+
metadata:
66+
name: {{ .Release.Name }}-admin-hpa
67+
namespace: {{ .Release.Namespace }}
68+
labels:
69+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-admin-hpa
70+
spec:
71+
scaleTargetRef:
72+
apiVersion: apps/v1
73+
kind: Deployment
74+
name: {{ .Release.Name }}-admin-wl
75+
minReplicas: {{ .Values.admin.autoscaling.minReplicas }}
76+
maxReplicas: {{ .Values.admin.autoscaling.maxReplicas }}
77+
{{- if or .Values.admin.autoscaling.targetCPUUtilizationPercentage .Values.admin.autoscaling.targetMemoryUtilizationPercentage }}
78+
metrics:
79+
{{- if .Values.admin.autoscaling.targetCPUUtilizationPercentage }}
80+
- type: Resource
81+
resource:
82+
name: cpu
83+
target:
84+
type: Utilization
85+
averageUtilization: {{ .Values.admin.autoscaling.targetCPUUtilizationPercentage }}
86+
{{- end }}
87+
{{- if .Values.admin.autoscaling.targetMemoryUtilizationPercentage }}
88+
- type: Resource
89+
resource:
90+
name: memory
91+
target:
92+
type: Utilization
93+
averageUtilization: {{ .Values.admin.autoscaling.targetMemoryUtilizationPercentage }}
94+
{{- end }}
95+
{{- end }}
96+
{{- end }}
97+
---

charts/plane-ce/templates/workloads/api.deployment.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,40 @@ spec:
7676
serviceAccount: {{ .Release.Name }}-srv-account
7777
serviceAccountName: {{ .Release.Name }}-srv-account
7878

79+
---
80+
{{- if eq (include "enable.hpa" . | trim) "true" }}
81+
apiVersion: autoscaling/v2
82+
kind: HorizontalPodAutoscaler
83+
metadata:
84+
name: {{ .Release.Name }}-api-hpa
85+
namespace: {{ .Release.Namespace }}
86+
labels:
87+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-api-hpa
88+
spec:
89+
scaleTargetRef:
90+
apiVersion: apps/v1
91+
kind: Deployment
92+
name: {{ .Release.Name }}-api-wl
93+
minReplicas: {{ .Values.api.autoscaling.minReplicas }}
94+
maxReplicas: {{ .Values.api.autoscaling.maxReplicas }}
95+
{{- if or .Values.api.autoscaling.targetCPUUtilizationPercentage .Values.api.autoscaling.targetMemoryUtilizationPercentage }}
96+
metrics:
97+
{{- if .Values.api.autoscaling.targetCPUUtilizationPercentage }}
98+
- type: Resource
99+
resource:
100+
name: cpu
101+
target:
102+
type: Utilization
103+
averageUtilization: {{ .Values.api.autoscaling.targetCPUUtilizationPercentage }}
104+
{{- end }}
105+
{{- if .Values.api.autoscaling.targetMemoryUtilizationPercentage }}
106+
- type: Resource
107+
resource:
108+
name: memory
109+
target:
110+
type: Utilization
111+
averageUtilization: {{ .Values.api.autoscaling.targetMemoryUtilizationPercentage }}
112+
{{- end }}
113+
{{- end }}
114+
{{- end }}
79115
---

charts/plane-ce/templates/workloads/beat-worker.deployment.yaml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,40 @@ spec:
4646
serviceAccount: {{ .Release.Name }}-srv-account
4747
serviceAccountName: {{ .Release.Name }}-srv-account
4848

49-
---
49+
---
50+
{{- if eq (include "enable.hpa" . | trim) "true" }}
51+
apiVersion: autoscaling/v2
52+
kind: HorizontalPodAutoscaler
53+
metadata:
54+
name: {{ .Release.Name }}-beat-worker-hpa
55+
namespace: {{ .Release.Namespace }}
56+
labels:
57+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-beat-worker-hpa
58+
spec:
59+
scaleTargetRef:
60+
apiVersion: apps/v1
61+
kind: Deployment
62+
name: {{ .Release.Name }}-beat-worker-wl
63+
minReplicas: {{ .Values.beatworker.autoscaling.minReplicas }}
64+
maxReplicas: {{ .Values.beatworker.autoscaling.maxReplicas }}
65+
{{- if or .Values.beatworker.autoscaling.targetCPUUtilizationPercentage .Values.beatworker.autoscaling.targetMemoryUtilizationPercentage }}
66+
metrics:
67+
{{- if .Values.beatworker.autoscaling.targetCPUUtilizationPercentage }}
68+
- type: Resource
69+
resource:
70+
name: cpu
71+
target:
72+
type: Utilization
73+
averageUtilization: {{ .Values.beatworker.autoscaling.targetCPUUtilizationPercentage }}
74+
{{- end }}
75+
{{- if .Values.beatworker.autoscaling.targetMemoryUtilizationPercentage }}
76+
- type: Resource
77+
resource:
78+
name: memory
79+
target:
80+
type: Utilization
81+
averageUtilization: {{ .Values.beatworker.autoscaling.targetMemoryUtilizationPercentage }}
82+
{{- end }}
83+
{{- end }}
84+
{{- end }}
85+
---

charts/plane-ce/templates/workloads/live.deployment.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,39 @@ spec:
6666
serviceAccountName: {{ .Release.Name }}-srv-account
6767

6868
---
69+
{{- if eq (include "enable.hpa" . | trim) "true" }}
70+
apiVersion: autoscaling/v2
71+
kind: HorizontalPodAutoscaler
72+
metadata:
73+
name: {{ .Release.Name }}-live-hpa
74+
namespace: {{ .Release.Namespace }}
75+
labels:
76+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-hpa
77+
spec:
78+
scaleTargetRef:
79+
apiVersion: apps/v1
80+
kind: Deployment
81+
name: {{ .Release.Name }}-live-wl
82+
minReplicas: {{ .Values.live.autoscaling.minReplicas }}
83+
maxReplicas: {{ .Values.live.autoscaling.maxReplicas }}
84+
{{- if or .Values.live.autoscaling.targetCPUUtilizationPercentage .Values.live.autoscaling.targetMemoryUtilizationPercentage }}
85+
metrics:
86+
{{- if .Values.live.autoscaling.targetCPUUtilizationPercentage }}
87+
- type: Resource
88+
resource:
89+
name: cpu
90+
target:
91+
type: Utilization
92+
averageUtilization: {{ .Values.live.autoscaling.targetCPUUtilizationPercentage }}
93+
{{- end }}
94+
{{- if .Values.live.autoscaling.targetMemoryUtilizationPercentage }}
95+
- type: Resource
96+
resource:
97+
name: memory
98+
target:
99+
type: Utilization
100+
averageUtilization: {{ .Values.live.autoscaling.targetMemoryUtilizationPercentage }}
101+
{{- end }}
102+
{{- end }}
103+
{{- end }}
104+
---

charts/plane-ce/templates/workloads/space.deployment.yaml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,40 @@ spec:
5959
serviceAccount: {{ .Release.Name }}-srv-account
6060
serviceAccountName: {{ .Release.Name }}-srv-account
6161

62-
---
62+
---
63+
{{- if eq (include "enable.hpa" . | trim) "true" }}
64+
apiVersion: autoscaling/v2
65+
kind: HorizontalPodAutoscaler
66+
metadata:
67+
name: {{ .Release.Name }}-space-hpa
68+
namespace: {{ .Release.Namespace }}
69+
labels:
70+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-space-hpa
71+
spec:
72+
scaleTargetRef:
73+
apiVersion: apps/v1
74+
kind: Deployment
75+
name: {{ .Release.Name }}-space-wl
76+
minReplicas: {{ .Values.space.autoscaling.minReplicas }}
77+
maxReplicas: {{ .Values.space.autoscaling.maxReplicas }}
78+
{{- if or .Values.space.autoscaling.targetCPUUtilizationPercentage .Values.space.autoscaling.targetMemoryUtilizationPercentage }}
79+
metrics:
80+
{{- if .Values.space.autoscaling.targetCPUUtilizationPercentage }}
81+
- type: Resource
82+
resource:
83+
name: cpu
84+
target:
85+
type: Utilization
86+
averageUtilization: {{ .Values.space.autoscaling.targetCPUUtilizationPercentage }}
87+
{{- end }}
88+
{{- if .Values.space.autoscaling.targetMemoryUtilizationPercentage }}
89+
- type: Resource
90+
resource:
91+
name: memory
92+
target:
93+
type: Utilization
94+
averageUtilization: {{ .Values.space.autoscaling.targetMemoryUtilizationPercentage }}
95+
{{- end }}
96+
{{- end }}
97+
{{- end }}
98+
---

charts/plane-ce/templates/workloads/web.deployment.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,40 @@ spec:
5959
serviceAccount: {{ .Release.Name }}-srv-account
6060
serviceAccountName: {{ .Release.Name }}-srv-account
6161

62+
---
63+
{{- if eq (include "enable.hpa" . | trim) "true" }}
64+
apiVersion: autoscaling/v2
65+
kind: HorizontalPodAutoscaler
66+
metadata:
67+
name: {{ .Release.Name }}-web-hpa
68+
namespace: {{ .Release.Namespace }}
69+
labels:
70+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-web-hpa
71+
spec:
72+
scaleTargetRef:
73+
apiVersion: apps/v1
74+
kind: Deployment
75+
name: {{ .Release.Name }}-web-wl
76+
minReplicas: {{ .Values.web.autoscaling.minReplicas }}
77+
maxReplicas: {{ .Values.web.autoscaling.maxReplicas }}
78+
{{- if or .Values.web.autoscaling.targetCPUUtilizationPercentage .Values.web.autoscaling.targetMemoryUtilizationPercentage }}
79+
metrics:
80+
{{- if .Values.web.autoscaling.targetCPUUtilizationPercentage }}
81+
- type: Resource
82+
resource:
83+
name: cpu
84+
target:
85+
type: Utilization
86+
averageUtilization: {{ .Values.web.autoscaling.targetCPUUtilizationPercentage }}
87+
{{- end }}
88+
{{- if .Values.web.autoscaling.targetMemoryUtilizationPercentage }}
89+
- type: Resource
90+
resource:
91+
name: memory
92+
target:
93+
type: Utilization
94+
averageUtilization: {{ .Values.web.autoscaling.targetMemoryUtilizationPercentage }}
95+
{{- end }}
96+
{{- end }}
97+
{{- end }}
6298
---

charts/plane-ce/templates/workloads/worker.deployment.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,40 @@ spec:
4545
serviceAccount: {{ .Release.Name }}-srv-account
4646
serviceAccountName: {{ .Release.Name }}-srv-account
4747

48+
---
49+
{{- if eq (include "enable.hpa" . | trim) "true" }}
50+
apiVersion: autoscaling/v2
51+
kind: HorizontalPodAutoscaler
52+
metadata:
53+
name: {{ .Release.Name }}-worker-hpa
54+
namespace: {{ .Release.Namespace }}
55+
labels:
56+
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-worker-hpa
57+
spec:
58+
scaleTargetRef:
59+
apiVersion: apps/v1
60+
kind: Deployment
61+
name: {{ .Release.Name }}-worker-wl
62+
minReplicas: {{ .Values.worker.autoscaling.minReplicas }}
63+
maxReplicas: {{ .Values.worker.autoscaling.maxReplicas }}
64+
{{- if or .Values.worker.autoscaling.targetCPUUtilizationPercentage .Values.worker.autoscaling.targetMemoryUtilizationPercentage }}
65+
metrics:
66+
{{- if .Values.worker.autoscaling.targetCPUUtilizationPercentage }}
67+
- type: Resource
68+
resource:
69+
name: cpu
70+
target:
71+
type: Utilization
72+
averageUtilization: {{ .Values.worker.autoscaling.targetCPUUtilizationPercentage }}
73+
{{- end }}
74+
{{- if .Values.worker.autoscaling.targetMemoryUtilizationPercentage }}
75+
- type: Resource
76+
resource:
77+
name: memory
78+
target:
79+
type: Utilization
80+
averageUtilization: {{ .Values.worker.autoscaling.targetMemoryUtilizationPercentage }}
81+
{{- end }}
82+
{{- end }}
83+
{{- end }}
4884
---

0 commit comments

Comments
 (0)