feat: Add HPA for ArgoCD server and repoServer components (#240)
* argo-cd: add optional hpa, cleanup whitespace
This commit is contained in:
parent
fdb6093011
commit
d9d7862864
8 changed files with 98 additions and 4 deletions
|
@ -2,7 +2,7 @@ apiVersion: v1
|
||||||
appVersion: "1.4.2"
|
appVersion: "1.4.2"
|
||||||
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
||||||
name: argo-cd
|
name: argo-cd
|
||||||
version: 1.7.6
|
version: 1.8.0
|
||||||
home: https://github.com/argoproj/argo-helm
|
home: https://github.com/argoproj/argo-helm
|
||||||
icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png
|
icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png
|
||||||
keywords:
|
keywords:
|
||||||
|
|
|
@ -101,6 +101,11 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i
|
||||||
| Key | Type | Default | Description |
|
| Key | Type | Default | Description |
|
||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| repoServer.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
|
| repoServer.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
|
||||||
|
| repoServer.autoscaling.enabled | Enable Horizontal Pod Autoscaler (HPA) for the repo server | `false` |
|
||||||
|
| repoServer.autoscaling.minReplicas | Minimum number of replicas for the repo server HPA | `1` |
|
||||||
|
| repoServer.autoscaling.maxReplicas | Maximum number of replicas for the repo server HPA | `5` |
|
||||||
|
| repoServer.autoscaling.targetCPUUtilizationPercentage | Average CPU utilization percentage for the repo server HPA | `50` |
|
||||||
|
| repoServer.autoscaling.targetMemoryUtilizationPercentage | Average memory utilization percentage for the repo server HPA | `50` |
|
||||||
| repoServer.containerPort | Repo server port | `8081` |
|
| repoServer.containerPort | Repo server port | `8081` |
|
||||||
| repoServer.extraArgs | Additional arguments for the repo server. A list of key:value pairs. | `[]` |
|
| repoServer.extraArgs | Additional arguments for the repo server. A list of key:value pairs. | `[]` |
|
||||||
| repoServer.env | Environment variables for the repo server. | `[]` |
|
| repoServer.env | Environment variables for the repo server. | `[]` |
|
||||||
|
@ -143,6 +148,11 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i
|
||||||
| Key | Type | Default | Description |
|
| Key | Type | Default | Description |
|
||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| server.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
|
| server.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
|
||||||
|
| server.autoscaling.enabled | Enable Horizontal Pod Autoscaler (HPA) for the server | `false` |
|
||||||
|
| server.autoscaling.minReplicas | Minimum number of replicas for the server HPA | `1` |
|
||||||
|
| server.autoscaling.maxReplicas | Maximum number of replicas for the server HPA | `5` |
|
||||||
|
| server.autoscaling.targetCPUUtilizationPercentage | Average CPU utilization percentage for the server HPA | `50` |
|
||||||
|
| server.autoscaling.targetMemoryUtilizationPercentage | Average memory utilization percentage for the server HPA | `50` |
|
||||||
| server.certificate.additionalHosts | Certificate manager additional hosts | `[]` |
|
| server.certificate.additionalHosts | Certificate manager additional hosts | `[]` |
|
||||||
| server.certificate.domain | Certificate manager domain | `"argocd.example.com"` |
|
| server.certificate.domain | Certificate manager domain | `"argocd.example.com"` |
|
||||||
| server.certificate.enabled | Enables a certificate manager certificate. | `false` |
|
| server.certificate.enabled | Enables a certificate manager certificate. | `false` |
|
||||||
|
|
|
@ -68,7 +68,7 @@ spec:
|
||||||
name: {{ .Values.controller.name }}
|
name: {{ .Values.controller.name }}
|
||||||
{{- if .Values.controller.containerSecurityContext }}
|
{{- if .Values.controller.containerSecurityContext }}
|
||||||
securityContext: {{- toYaml .Values.controller.containerSecurityContext | nindent 10 }}
|
securityContext: {{- toYaml .Values.controller.containerSecurityContext | nindent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.controller.env }}
|
{{- if .Values.controller.env }}
|
||||||
env:
|
env:
|
||||||
{{- toYaml .Values.controller.env | nindent 8 }}
|
{{- toYaml .Values.controller.env | nindent 8 }}
|
||||||
|
|
|
@ -16,7 +16,9 @@ spec:
|
||||||
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.repoServer.name }}
|
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.repoServer.name }}
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
revisionHistoryLimit: 5
|
revisionHistoryLimit: 5
|
||||||
|
{{- if (ne .Values.repoServer.autoscaling.enabled true) }}
|
||||||
replicas: {{ .Values.repoServer.replicas }}
|
replicas: {{ .Values.repoServer.replicas }}
|
||||||
|
{{- end }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- if .Values.repoServer.podAnnotations }}
|
{{- if .Values.repoServer.podAnnotations }}
|
||||||
|
@ -61,7 +63,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.repoServer.containerSecurityContext }}
|
{{- if .Values.repoServer.containerSecurityContext }}
|
||||||
securityContext: {{- toYaml .Values.repoServer.containerSecurityContext | nindent 10 }}
|
securityContext: {{- toYaml .Values.repoServer.containerSecurityContext | nindent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.repoServer.env }}
|
{{- if .Values.repoServer.env }}
|
||||||
env:
|
env:
|
||||||
{{- toYaml .Values.repoServer.env | nindent 8 }}
|
{{- toYaml .Values.repoServer.env | nindent 8 }}
|
||||||
|
|
33
charts/argo-cd/templates/argocd-repo-server/hpa.yaml
Normal file
33
charts/argo-cd/templates/argocd-repo-server/hpa.yaml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{{- if .Values.repoServer.autoscaling.enabled }}
|
||||||
|
apiVersion: autoscaling/v2beta1
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.repoServer.name }}-hpa
|
||||||
|
helm.sh/chart: {{ include "argo-cd.chart" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: argocd
|
||||||
|
app.kubernetes.io/component: {{ .Values.repoServer.name }}
|
||||||
|
name: {{ template "argo-cd.repoServer.fullname" . }}-hpa
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
name: {{ template "argo-cd.repoServer.fullname" . }}
|
||||||
|
minReplicas: {{ .Values.repoServer.autoscaling.minReplicas }}
|
||||||
|
maxReplicas: {{ .Values.repoServer.autoscaling.maxReplicas }}
|
||||||
|
metrics:
|
||||||
|
{{- with .Values.repoServer.autoscaling.targetCPUUtilizationPercentage }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
targetAverageUtilization: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.repoServer.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: memory
|
||||||
|
targetAverageUtilization: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -16,7 +16,9 @@ spec:
|
||||||
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.server.name }}
|
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.server.name }}
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
revisionHistoryLimit: 5
|
revisionHistoryLimit: 5
|
||||||
|
{{- if (ne .Values.server.autoscaling.enabled true) }}
|
||||||
replicas: {{ .Values.server.replicas }}
|
replicas: {{ .Values.server.replicas }}
|
||||||
|
{{- end }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- if .Values.server.podAnnotations }}
|
{{- if .Values.server.podAnnotations }}
|
||||||
|
@ -69,7 +71,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.server.containerSecurityContext }}
|
{{- if .Values.server.containerSecurityContext }}
|
||||||
securityContext: {{- toYaml .Values.server.containerSecurityContext | nindent 10 }}
|
securityContext: {{- toYaml .Values.server.containerSecurityContext | nindent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.server.env }}
|
{{- if .Values.server.env }}
|
||||||
env:
|
env:
|
||||||
{{- toYaml .Values.server.env | nindent 8 }}
|
{{- toYaml .Values.server.env | nindent 8 }}
|
||||||
|
|
33
charts/argo-cd/templates/argocd-server/hpa.yaml
Normal file
33
charts/argo-cd/templates/argocd-server/hpa.yaml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{{- if .Values.server.autoscaling.enabled }}
|
||||||
|
apiVersion: autoscaling/v2beta1
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.server.name }}-hpa
|
||||||
|
helm.sh/chart: {{ include "argo-cd.chart" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: argocd
|
||||||
|
app.kubernetes.io/component: {{ .Values.server.name }}
|
||||||
|
name: {{ template "argo-cd.server.fullname" . }}-hpa
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
name: {{ template "argo-cd.server.fullname" . }}
|
||||||
|
minReplicas: {{ .Values.server.autoscaling.minReplicas }}
|
||||||
|
maxReplicas: {{ .Values.server.autoscaling.maxReplicas }}
|
||||||
|
metrics:
|
||||||
|
{{- with .Values.server.autoscaling.targetCPUUtilizationPercentage }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
targetAverageUtilization: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.server.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: memory
|
||||||
|
targetAverageUtilization: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -271,6 +271,13 @@ server:
|
||||||
|
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
|
||||||
|
autoscaling:
|
||||||
|
enabled: false
|
||||||
|
minReplicas: 1
|
||||||
|
maxReplicas: 5
|
||||||
|
targetCPUUtilizationPercentage: 50
|
||||||
|
targetMemoryUtilizationPercentage: 50
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: # argoproj/argocd
|
repository: # argoproj/argocd
|
||||||
tag: # v1.4.2
|
tag: # v1.4.2
|
||||||
|
@ -519,6 +526,13 @@ repoServer:
|
||||||
|
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
|
||||||
|
autoscaling:
|
||||||
|
enabled: false
|
||||||
|
minReplicas: 1
|
||||||
|
maxReplicas: 5
|
||||||
|
targetCPUUtilizationPercentage: 50
|
||||||
|
targetMemoryUtilizationPercentage: 50
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: # argoproj/argocd
|
repository: # argoproj/argocd
|
||||||
tag: # v1.4.2
|
tag: # v1.4.2
|
||||||
|
|
Loading…
Reference in a new issue