veylant/deploy/helm/veylant-proxy/templates/hpa.yaml
2026-02-23 13:35:04 +01:00

44 lines
1.3 KiB
YAML

{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "veylant-proxy.fullname" . }}
labels:
{{- include "veylant-proxy.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "veylant-proxy.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage | default 70 }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage | default 80 }}
behavior:
scaleUp:
# React quickly to traffic spikes — allow doubling replicas every 60s.
stabilizationWindowSeconds: 30
policies:
- type: Percent
value: 100
periodSeconds: 60
scaleDown:
# Scale down conservatively to avoid oscillation.
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 25
periodSeconds: 60
{{- end }}