{{- 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 }}