Skip to content
Open
101 changes: 68 additions & 33 deletions charts/plane-enterprise/README.md

Large diffs are not rendered by default.

340 changes: 234 additions & 106 deletions charts/plane-enterprise/questions.yml

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions charts/plane-enterprise/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,12 @@
annotations: {{ toYaml . | nindent 4 }}
{{- end }}
{{- end }}

{{- define "enable.hpa" -}}
{{- $metrics := lookup "rbac.authorization.k8s.io/v1" "ClusterRole" "" "system:metrics-server" }}
{{- if not $metrics }}
false
{{- else }}
true
{{- end }}
{{- end }}
43 changes: 40 additions & 3 deletions charts/plane-enterprise/templates/workloads/admin.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,53 @@ spec:
tty: true
resources:
requests:
memory: {{ .Values.services.admin.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.admin.cpuRequest | default "50m" | quote }}
cpu: {{ .Values.services.admin.cpuRequest | default "100m" | quote }}
memory: {{ .Values.services.admin.memoryRequest | default "200Mi" | quote }}
limits:
memory: {{ .Values.services.admin.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.admin.cpuLimit | default "500m" | quote}}
memory: {{ .Values.services.admin.memoryLimit | default "1000Mi" | quote }}
{{- if .Values.extraEnv }}
env:
{{- toYaml .Values.extraEnv | nindent 10 }}
{{- end }}
{{- include "plane.podScheduling" .Values.services.admin }}
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
---
{{- if eq (include "enable.hpa" . | trim) "true" }}

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-admin-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-admin-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-admin-wl
minReplicas: {{ .Values.services.admin.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.admin.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.admin.autoscaling.targetCPUUtilizationPercentage .Values.services.admin.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.admin.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.admin.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.admin.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.admin.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
---
48 changes: 43 additions & 5 deletions charts/plane-enterprise/templates/workloads/api.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ spec:
tty: true
resources:
requests:
memory: {{ .Values.services.api.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.api.cpuRequest | default "50m" | quote }}
cpu: {{ .Values.services.api.cpuRequest | default "1000m" | quote }}
memory: {{ .Values.services.api.memoryRequest | default "1000Mi" | quote }}
limits:
memory: {{ .Values.services.api.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.api.cpuLimit | default "500m" | quote}}
cpu: {{ .Values.services.api.cpuLimit | default "2000m" | quote}}
memory: {{ .Values.services.api.memoryLimit | default "2000Mi" | quote }}
{{- if and .Values.airgapped.enabled .Values.airgapped.s3SecretName .Values.airgapped.s3SecretKey }}
volumeMounts:
- name: s3-custom-ca
Expand Down Expand Up @@ -140,4 +140,42 @@ spec:
{{- include "plane.podScheduling" .Values.services.api }}
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
---

---
{{- if eq (include "enable.hpa" . | trim) "true" }}

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-api-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-api-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-api-wl
minReplicas: {{ .Values.services.api.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.api.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.api.autoscaling.targetCPUUtilizationPercentage .Values.services.api.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.api.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.api.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.api.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.api.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
---
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ spec:
tty: true
resources:
requests:
memory: {{ .Values.services.beatworker.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.beatworker.cpuRequest | default "50m" | quote }}
cpu: {{ .Values.services.beatworker.cpuRequest | default "500m" | quote }}
memory: {{ .Values.services.beatworker.memoryRequest | default "1000Mi" | quote }}
limits:
memory: {{ .Values.services.beatworker.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.beatworker.cpuLimit | default "500m" | quote}}
cpu: {{ .Values.services.beatworker.cpuLimit | default "1000m" | quote}}
memory: {{ .Values.services.beatworker.memoryLimit | default "2000Mi" | quote }}
command:
- ./bin/docker-entrypoint-beat.sh
envFrom:
Expand All @@ -55,4 +55,41 @@ spec:
{{- include "plane.podScheduling" .Values.services.beatworker }}
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
---
{{- if eq (include "enable.hpa" . | trim) "true" }}

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-beat-worker-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-beat-worker-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-beat-worker-wl
minReplicas: {{ .Values.services.beatworker.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.beatworker.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.beatworker.autoscaling.targetCPUUtilizationPercentage .Values.services.beatworker.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.beatworker.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.beatworker.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.beatworker.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.beatworker.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
---
44 changes: 41 additions & 3 deletions charts/plane-enterprise/templates/workloads/email.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ spec:
failureThreshold: 3
resources:
requests:
memory: {{ .Values.services.email_service.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.email_service.cpuRequest | default "50m" | quote }}
cpu: {{ .Values.services.email_service.cpuRequest | default "100m" | quote }}
memory: {{ .Values.services.email_service.memoryRequest | default "200Mi" | quote }}
limits:
memory: {{ .Values.services.email_service.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.email_service.cpuLimit | default "500m" | quote}}
memory: {{ .Values.services.email_service.memoryLimit | default "1000Mi" | quote }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-email-vars
Expand Down Expand Up @@ -105,5 +105,43 @@ spec:
{{- include "plane.podScheduling" .Values.services.email_service }}
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account

---
{{- if eq (include "enable.hpa" . | trim) "true" }}

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-email-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-email-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-email-app
minReplicas: {{ .Values.services.email_service.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.email_service.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.email_service.autoscaling.targetCPUUtilizationPercentage .Values.services.email_service.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.email_service.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.email_service.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.email_service.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.email_service.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
---
{{- end }}
45 changes: 41 additions & 4 deletions charts/plane-enterprise/templates/workloads/live.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ spec:
tty: true
resources:
requests:
memory: {{ .Values.services.live.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.live.cpuRequest | default "50m" | quote }}
cpu: {{ .Values.services.live.cpuRequest | default "500m" | quote }}
memory: {{ .Values.services.live.memoryRequest | default "1000Mi" | quote }}
limits:
memory: {{ .Values.services.live.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.live.cpuLimit | default "500m" | quote}}
cpu: {{ .Values.services.live.cpuLimit | default "1000m" | quote}}
memory: {{ .Values.services.live.memoryLimit | default "2000Mi" | quote }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-live-vars
Expand All @@ -68,3 +68,40 @@ spec:
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
---
{{- if eq (include "enable.hpa" . | trim) "true" }}

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-live-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-live-wl
minReplicas: {{ .Values.services.live.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.live.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.live.autoscaling.targetCPUUtilizationPercentage .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.live.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.live.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.live.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
Comment on lines 70 to +106
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Cast numeric knobs to int to avoid “cannot unmarshal string into int32”

If a user sets these values as strings in values.yaml (common Helm pattern) the rendered YAML will emit quoted scalars, and kubectl apply will fail. Pipe through | int to guarantee correct type:

-  minReplicas: {{ .Values.services.live.autoscaling.minReplicas | default 1 }}
-  maxReplicas: {{ .Values.services.live.autoscaling.maxReplicas | default 5 }}
+  minReplicas: {{ .Values.services.live.autoscaling.minReplicas | default 1 | int }}
+  maxReplicas: {{ .Values.services.live.autoscaling.maxReplicas | default 5 | int }}

-          averageUtilization: {{ .Values.services.live.autoscaling.targetCPUUtilizationPercentage | default 90 }}
+          averageUtilization: {{ .Values.services.live.autoscaling.targetCPUUtilizationPercentage | default 90 | int }}

Repeat the | int addition for the memory metric block as well.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
{{- if eq (include "enable.hpa" . | trim) "true" }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-live-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-live-wl
minReplicas: {{ .Values.services.live.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.live.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.live.autoscaling.targetCPUUtilizationPercentage .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.live.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.live.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.live.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
---
{{- if eq (include "enable.hpa" . | trim) "true" }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-live-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-live-wl
minReplicas: {{ .Values.services.live.autoscaling.minReplicas | default 1 | int }}
maxReplicas: {{ .Values.services.live.autoscaling.maxReplicas | default 5 | int }}
{{- if or .Values.services.live.autoscaling.targetCPUUtilizationPercentage .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.live.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.live.autoscaling.targetCPUUtilizationPercentage | default 90 | int }}
{{- end }}
{{- if .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.live.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
🤖 Prompt for AI Agents
In charts/plane-enterprise/templates/workloads/live.deployment.yaml between
lines 69 and 105, the minReplicas, maxReplicas, and averageUtilization values
for CPU and memory metrics may be rendered as strings if set as strings in
values.yaml, causing kubectl apply to fail. Fix this by piping these values
through the int function (| int) to ensure they are rendered as integers. Apply
this change to minReplicas, maxReplicas, targetCPUUtilizationPercentage, and
targetMemoryUtilizationPercentage fields.

---
46 changes: 42 additions & 4 deletions charts/plane-enterprise/templates/workloads/silo.deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@ spec:
tty: true
resources:
requests:
memory: {{ .Values.services.silo.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.silo.cpuRequest | default "50m" | quote }}
cpu: {{ .Values.services.silo.cpuRequest | default "250m" | quote }}
memory: {{ .Values.services.silo.memoryRequest | default "1000Mi" | quote }}
limits:
memory: {{ .Values.services.silo.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.silo.cpuLimit | default "500m" | quote}}
cpu: {{ .Values.services.silo.cpuLimit | default "1000m" | quote}}
memory: {{ .Values.services.silo.memoryLimit | default "2000Mi" | quote }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-silo-vars
Expand All @@ -90,5 +90,43 @@ spec:
{{- include "plane.podScheduling" .Values.services.silo }}
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account

---
{{- if eq (include "enable.hpa" . | trim) "true" }}

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-silo-hpa
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-silo-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-silo-wl
minReplicas: {{ .Values.services.silo.autoscaling.minReplicas | default 1 }}
maxReplicas: {{ .Values.services.silo.autoscaling.maxReplicas | default 5 }}
{{- if or .Values.services.silo.autoscaling.targetCPUUtilizationPercentage .Values.services.silo.autoscaling.targetMemoryUtilizationPercentage }}
metrics:
{{- if .Values.services.silo.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.services.silo.autoscaling.targetCPUUtilizationPercentage | default 90 }}
{{- end }}
{{- if .Values.services.silo.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.services.silo.autoscaling.targetMemoryUtilizationPercentage | default 90 }}
{{- end }}
{{- end }}
{{- end }}
---
{{- end }}
Loading
Loading