104 lines
2.5 KiB
YAML
104 lines
2.5 KiB
YAML
---
|
|
# HorizontalPodAutoscalers for neuron-prod
|
|
# Single Legion node today — minReplicas=1 prevents unnecessary idle waste.
|
|
# When GCP GKE is live these minimums should go to 2 for HA.
|
|
apiVersion: autoscaling/v2
|
|
kind: HorizontalPodAutoscaler
|
|
metadata:
|
|
name: neuron-mcp-hpa
|
|
namespace: neuron-prod
|
|
spec:
|
|
scaleTargetRef:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
name: neuron-mcp-blue
|
|
minReplicas: 1
|
|
maxReplicas: 6
|
|
metrics:
|
|
- type: Resource
|
|
resource:
|
|
name: cpu
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 65
|
|
- type: Resource
|
|
resource:
|
|
name: memory
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 80
|
|
behavior:
|
|
scaleDown:
|
|
stabilizationWindowSeconds: 300 # Don't thrash — wait 5m before scaling down
|
|
policies:
|
|
- type: Pods
|
|
value: 1
|
|
periodSeconds: 120
|
|
scaleUp:
|
|
stabilizationWindowSeconds: 30
|
|
policies:
|
|
- type: Pods
|
|
value: 2
|
|
periodSeconds: 60
|
|
---
|
|
apiVersion: autoscaling/v2
|
|
kind: HorizontalPodAutoscaler
|
|
metadata:
|
|
name: neuron-rest-hpa
|
|
namespace: neuron-prod
|
|
spec:
|
|
scaleTargetRef:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
name: neuron-rest
|
|
minReplicas: 1
|
|
maxReplicas: 4
|
|
metrics:
|
|
- type: Resource
|
|
resource:
|
|
name: cpu
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 65
|
|
- type: Resource
|
|
resource:
|
|
name: memory
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 80
|
|
behavior:
|
|
scaleDown:
|
|
stabilizationWindowSeconds: 300
|
|
scaleUp:
|
|
stabilizationWindowSeconds: 30
|
|
---
|
|
apiVersion: autoscaling/v2
|
|
kind: HorizontalPodAutoscaler
|
|
metadata:
|
|
name: neuron-marketing-hpa
|
|
namespace: neuron-prod
|
|
spec:
|
|
scaleTargetRef:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
name: neuron-marketing
|
|
# minReplicas=1 to match the file's own convention (see header comment).
|
|
# Kubernetes only allows minReplicas=0 when at least one Object or External
|
|
# metric is configured (queue depth, custom signal, etc.); with only a
|
|
# Resource (CPU) metric, scale-to-zero is rejected and the whole HPA is
|
|
# invalid — which was blocking neuron-prod's Argo CD sync.
|
|
minReplicas: 1
|
|
maxReplicas: 8
|
|
metrics:
|
|
- type: Resource
|
|
resource:
|
|
name: cpu
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 70
|
|
behavior:
|
|
scaleDown:
|
|
stabilizationWindowSeconds: 120
|
|
scaleUp:
|
|
stabilizationWindowSeconds: 15
|