diff --git a/.github/workflows/chart-preview.yml b/.github/workflows/chart-preview.yml index 7b45d60f..8c586fe2 100644 --- a/.github/workflows/chart-preview.yml +++ b/.github/workflows/chart-preview.yml @@ -92,6 +92,11 @@ jobs: sed -i "s/name: ${{env.CHART_REPO}}/name: ${{ env.CHART_PREFIX }}-${{env.CHART_REPO}}/" charts/${{env.CHART_REPO}}/Chart.yaml sed -i "s/description: .*/description: ${flatBranchName}/g" charts/${{env.CHART_REPO}}/Chart.yaml # sed -i "s/version: \(.*\)/version: \1-${flatBranchName}/" charts/${{env.CHART_REPO}}/Chart.yaml + + # Add required repositories and build dependencies + helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/ + helm repo update + helm dependency build charts/$CHART_REPO helm package --sign --key "$CR_KEY" --keyring $CR_KEYRING --passphrase-file "$CR_PASSPHRASE_FILE" charts/$CHART_REPO -u -d ${{ env.EXPORT_DIR }}/${{env.CHART_REPO}}/charts cp charts/${{env.CHART_REPO}}/README.md ${{ env.EXPORT_DIR }}/${{env.CHART_REPO}}/${{env.CHART_REPO}}.md diff --git a/.github/workflows/chart-releaser.yml b/.github/workflows/chart-releaser.yml index 5fa01ffe..f4c70ab3 100644 --- a/.github/workflows/chart-releaser.yml +++ b/.github/workflows/chart-releaser.yml @@ -98,6 +98,12 @@ jobs: echo "MARK_AS_PRERELASE=true" >> $GITHUB_ENV echo "PAGES_INDEX_PATH=${flatBranchName}" >> $GITHUB_ENV + - name: Build Dependencies + run: | + if [ "${{ github.event.inputs.plane-ce }}" = "true" ]; then + helm dependency build charts/${{ env.CHART_NAME_CE }} + fi + - name: Release Charts uses: mguptahub/chart-releaser-action@v1.6.2 with: diff --git a/.gitignore b/.gitignore index 3a4745cd..4653df4b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ test-helm.yaml */local-values.yaml test.yaml test-*.yaml +charts/plane-ce/charts diff --git a/charts/plane-ce/Chart.lock b/charts/plane-ce/Chart.lock index e69de29b..9acd48c0 100644 --- a/charts/plane-ce/Chart.lock +++ b/charts/plane-ce/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: metrics-server + repository: https://kubernetes-sigs.github.io/metrics-server/ + version: 3.12.2 +digest: sha256:9be099fcb7bb171b96598c6135df06c9feb60535737dd4adfdc601d44e23d6bf +generated: "2025-05-20T13:23:06.095553+05:30" diff --git a/charts/plane-ce/Chart.yaml b/charts/plane-ce/Chart.yaml index f70e01a1..b352b441 100644 --- a/charts/plane-ce/Chart.yaml +++ b/charts/plane-ce/Chart.yaml @@ -15,3 +15,8 @@ sources: annotations: artifacthub.io/license: AGPL-3.0 + +dependencies: + - name: metrics-server + version: 3.12.2 + repository: https://kubernetes-sigs.github.io/metrics-server/ \ No newline at end of file diff --git a/charts/plane-ce/questions.yml b/charts/plane-ce/questions.yml index 4074f871..1e12c612 100644 --- a/charts/plane-ce/questions.yml +++ b/charts/plane-ce/questions.yml @@ -55,7 +55,30 @@ questions: label: "Assign Cluster IP" type: boolean default: false - + - variable: web.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: web.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "web.autoscaling.enabled=true" + - variable: web.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "web.autoscaling.enabled=true" + - variable: web.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "web.autoscaling.enabled=true" + - variable: web.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "web.autoscaling.enabled=true" - variable: space.image label: Space Docker Image type: string @@ -87,7 +110,30 @@ questions: label: "Assign Cluster IP" type: boolean default: false - + - variable: space.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: space.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "space.autoscaling.enabled=true" + - variable: space.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "space.autoscaling.enabled=true" + - variable: space.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "space.autoscaling.enabled=true" + - variable: space.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "space.autoscaling.enabled=true" - variable: admin.image label: Admin Docker Image type: string @@ -119,7 +165,30 @@ questions: label: "Assign Cluster IP" type: boolean default: true - + - variable: admin.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: admin.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "admin.autoscaling.enabled=true" + - variable: admin.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "admin.autoscaling.enabled=true" + - variable: admin.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "admin.autoscaling.enabled=true" + - variable: admin.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "admin.autoscaling.enabled=true" - variable: live.image label: Live Docker Image type: string @@ -164,7 +233,30 @@ questions: label: "Live Sentry Traces Sample Rate" type: string default: "" - + - variable: live.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: live.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "live.autoscaling.enabled=true" + - variable: live.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "live.autoscaling.enabled=true" + - variable: live.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "live.autoscaling.enabled=true" + - variable: live.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "live.autoscaling.enabled=true" - variable: api.image label: Backend Docker Image type: string @@ -218,7 +310,30 @@ questions: label: "API Key Rate Limit" type: string default: "60/minute" - + - variable: api.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: api.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "api.autoscaling.enabled=true" + - variable: api.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "api.autoscaling.enabled=true" + - variable: api.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "api.autoscaling.enabled=true" + - variable: api.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "api.autoscaling.enabled=true" - variable: worker.replicas label: "Default Replica Count" type: int @@ -233,7 +348,30 @@ questions: label: "CPU Limit" type: string default: 500m - + - variable: worker.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: worker.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "worker.autoscaling.enabled=true" + - variable: worker.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "worker.autoscaling.enabled=true" + - variable: worker.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "worker.autoscaling.enabled=true" + - variable: worker.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "worker.autoscaling.enabled=true" - variable: beatworker.replicas label: "Default Replica Count" type: int @@ -248,7 +386,30 @@ questions: label: "CPU Limit" type: string default: 500m - + - variable: beatworker.autoscaling.enabled + label: "Enable Autoscaling" + type: boolean + default: true + - variable: beatworker.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + show_if: "beatworker.autoscaling.enabled=true" + - variable: beatworker.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 3 + show_if: "beatworker.autoscaling.enabled=true" + - variable: beatworker.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 80 + show_if: "beatworker.autoscaling.enabled=true" + - variable: beatworker.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 70 + show_if: "beatworker.autoscaling.enabled=true" - variable: redis.local_setup label: "Install Redis" type: boolean diff --git a/charts/plane-ce/templates/_helpers.tpl b/charts/plane-ce/templates/_helpers.tpl index b33a3714..d510b98a 100644 --- a/charts/plane-ce/templates/_helpers.tpl +++ b/charts/plane-ce/templates/_helpers.tpl @@ -1,3 +1,12 @@ {{- define "imagePullSecret" }} {{- printf "{\"auths\":{\"%s\":{\"username\":\"%s\",\"password\":\"%s\"}}}" .Values.dockerRegistry.host .Values.dockerRegistry.loginid .Values.dockerRegistry.password | b64enc }} +{{- end }} + +{{- define "enable.hpa" -}} +{{- $metrics := lookup "rbac.authorization.k8s.io/v1" "ClusterRole" "" "system:metrics-server" }} +{{- if not $metrics }} +false +{{- else }} +true +{{- end }} {{- end }} \ No newline at end of file diff --git a/charts/plane-ce/templates/workloads/admin.deployment.yaml b/charts/plane-ce/templates/workloads/admin.deployment.yaml index be32eb64..243f5b26 100644 --- a/charts/plane-ce/templates/workloads/admin.deployment.yaml +++ b/charts/plane-ce/templates/workloads/admin.deployment.yaml @@ -1,4 +1,3 @@ - apiVersion: v1 kind: Service metadata: @@ -59,4 +58,41 @@ spec: serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account ---- \ No newline at end of file +--- + +{{- 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.admin.autoscaling.minReplicas }} + maxReplicas: {{ .Values.admin.autoscaling.maxReplicas }} + {{- if or .Values.admin.autoscaling.targetCPUUtilizationPercentage .Values.admin.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.admin.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.admin.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.admin.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.admin.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} +--- diff --git a/charts/plane-ce/templates/workloads/api.deployment.yaml b/charts/plane-ce/templates/workloads/api.deployment.yaml index 2da395df..7c5be571 100644 --- a/charts/plane-ce/templates/workloads/api.deployment.yaml +++ b/charts/plane-ce/templates/workloads/api.deployment.yaml @@ -76,4 +76,41 @@ 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 }}-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.api.autoscaling.minReplicas }} + maxReplicas: {{ .Values.api.autoscaling.maxReplicas }} + {{- if or .Values.api.autoscaling.targetCPUUtilizationPercentage .Values.api.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.api.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.api.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.api.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.api.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-ce/templates/workloads/beat-worker.deployment.yaml b/charts/plane-ce/templates/workloads/beat-worker.deployment.yaml index b827fc37..cc23c031 100644 --- a/charts/plane-ce/templates/workloads/beat-worker.deployment.yaml +++ b/charts/plane-ce/templates/workloads/beat-worker.deployment.yaml @@ -46,4 +46,40 @@ spec: serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account ---- \ No newline at end of file +--- +{{- 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.beatworker.autoscaling.minReplicas }} + maxReplicas: {{ .Values.beatworker.autoscaling.maxReplicas }} + {{- if or .Values.beatworker.autoscaling.targetCPUUtilizationPercentage .Values.beatworker.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.beatworker.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.beatworker.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.beatworker.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.beatworker.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} +--- diff --git a/charts/plane-ce/templates/workloads/live.deployment.yaml b/charts/plane-ce/templates/workloads/live.deployment.yaml index 659b14c5..b431a2b2 100644 --- a/charts/plane-ce/templates/workloads/live.deployment.yaml +++ b/charts/plane-ce/templates/workloads/live.deployment.yaml @@ -66,3 +66,40 @@ spec: 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.live.autoscaling.minReplicas }} + maxReplicas: {{ .Values.live.autoscaling.maxReplicas }} + {{- if or .Values.live.autoscaling.targetCPUUtilizationPercentage .Values.live.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.live.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.live.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.live.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.live.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} +--- diff --git a/charts/plane-ce/templates/workloads/space.deployment.yaml b/charts/plane-ce/templates/workloads/space.deployment.yaml index 192fd3f5..85cdfa69 100644 --- a/charts/plane-ce/templates/workloads/space.deployment.yaml +++ b/charts/plane-ce/templates/workloads/space.deployment.yaml @@ -59,4 +59,40 @@ spec: serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account ---- \ No newline at end of file +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-space-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-space-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-space-wl + minReplicas: {{ .Values.space.autoscaling.minReplicas }} + maxReplicas: {{ .Values.space.autoscaling.maxReplicas }} + {{- if or .Values.space.autoscaling.targetCPUUtilizationPercentage .Values.space.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.space.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.space.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.space.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.space.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} +--- diff --git a/charts/plane-ce/templates/workloads/web.deployment.yaml b/charts/plane-ce/templates/workloads/web.deployment.yaml index e4fa7c4c..1fa23ef6 100644 --- a/charts/plane-ce/templates/workloads/web.deployment.yaml +++ b/charts/plane-ce/templates/workloads/web.deployment.yaml @@ -59,4 +59,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 }}-web-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-web-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-web-wl + minReplicas: {{ .Values.web.autoscaling.minReplicas }} + maxReplicas: {{ .Values.web.autoscaling.maxReplicas }} + {{- if or .Values.web.autoscaling.targetCPUUtilizationPercentage .Values.web.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.web.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.web.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.web.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.web.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-ce/templates/workloads/worker.deployment.yaml b/charts/plane-ce/templates/workloads/worker.deployment.yaml index 956ccdb4..e2249f02 100644 --- a/charts/plane-ce/templates/workloads/worker.deployment.yaml +++ b/charts/plane-ce/templates/workloads/worker.deployment.yaml @@ -45,4 +45,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 }}-worker-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-worker-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-worker-wl + minReplicas: {{ .Values.worker.autoscaling.minReplicas }} + maxReplicas: {{ .Values.worker.autoscaling.maxReplicas }} + {{- if or .Values.worker.autoscaling.targetCPUUtilizationPercentage .Values.worker.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.worker.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.worker.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.worker.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.worker.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-ce/values.yaml b/charts/plane-ce/values.yaml index 422d2d2d..6d3baa86 100644 --- a/charts/plane-ce/values.yaml +++ b/charts/plane-ce/values.yaml @@ -76,6 +76,12 @@ web: image: artifacts.plane.so/makeplane/plane-frontend pullPolicy: Always assign_cluster_ip: false + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 space: replicas: 1 @@ -84,6 +90,12 @@ space: image: artifacts.plane.so/makeplane/plane-space pullPolicy: Always assign_cluster_ip: false + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 admin: replicas: 1 @@ -92,6 +104,12 @@ admin: image: artifacts.plane.so/makeplane/plane-admin pullPolicy: Always assign_cluster_ip: false + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 live: replicas: 1 @@ -100,6 +118,12 @@ live: image: artifacts.plane.so/makeplane/plane-live pullPolicy: Always assign_cluster_ip: false + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 api: replicas: 1 @@ -108,6 +132,12 @@ api: image: artifacts.plane.so/makeplane/plane-backend pullPolicy: Always assign_cluster_ip: false + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 worker: replicas: 1 @@ -115,6 +145,12 @@ worker: cpuLimit: 500m image: artifacts.plane.so/makeplane/plane-backend pullPolicy: Always + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 beatworker: replicas: 1 @@ -122,6 +158,12 @@ beatworker: cpuLimit: 500m image: artifacts.plane.so/makeplane/plane-backend pullPolicy: Always + autoscaling: + enabled: true + minReplicas: 1 + maxReplicas: 3 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 70 external_secrets: # Name of the existing Kubernetes Secret resource; see README for more details @@ -166,3 +208,4 @@ env: live_sentry_traces_sample_rate: "" api_key_rate_limit: "60/minute" +