{{- if .Values.engineAutoscaling.enabled }} apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: labels: &labels {{ include "deepgram-self-hosted.labels" . | indent 4}} namespace: {{ .Values.engineAutoscaling.namespace }} name: deepgram-engine-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: {{ .Values.engineAutoscaling.targetName }} pollingInterval: {{ .Values.engineAutoscaling.pollingInterval }} {{- if ( default false (.Values.disasterRecovery).enabled ) }} minReplicaCount: 1 {{- else }} minReplicaCount: {{ .Values.engineAutoscaling.minReplicas }} {{- end }} maxReplicaCount: {{ .Values.engineAutoscaling.maxReplicas }} advanced: horizontalPodAutoscalerConfig: behavior: scaleDown: stabilizationWindowSeconds: {{ .Values.engineAutoscaling.scaledown.stabilizationWindowSeconds }} policies: {{- range .Values.engineAutoscaling.scaledown.policies }} - type: {{ .type }} value: {{ .value }} periodSeconds: {{ .periodseconds }} {{- end }} selectPolicy: {{ .Values.engineAutoscaling.scaledown.selectpolicy }} scaleUp: stabilizationWindowSeconds: {{ .Values.engineAutoscaling.scaleup.stabilizationWindowSeconds }} policies: {{- range .Values.engineAutoscaling.scaleup.policies }} - type: {{ .type }} value: {{ .value }} periodSeconds: {{ .periodseconds }} {{- end }} selectPolicy: {{ .Values.engineAutoscaling.scaleup.selectpolicy }} triggers: {{- if ( default false (.Values.disasterRecovery).enabled ) }} {{- range $.Values.engineAutoscaling.triggers }} {{- if or (eq .type "cpu") (eq .type "memory") }} - metadata: {{- toYaml .metadata | nindent 8 }} type: {{ .type }} metricType: "Utilization" {{- end }} {{- end }} {{- else }} {{- toYaml .Values.engineAutoscaling.triggers | nindent 2 }} {{ end }} {{- end }}