Files
jarvis-selfhost/kubernetes/07-disruption.yaml
T
2026-08-30 09:58:08 +02:00

37 lines
1.1 KiB
YAML

# What a node drain may take away.
#
# `minAvailable: 1` on both, so a cluster upgrade cannot evict the last pod of either. With the
# API's 90-second grace period a drain will take a minute or two per pod — that is the run drain
# doing its job, not a stall.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
# With the Ingress, after the Deployments they protect. A PodDisruptionBudget naming a
# selector that matches nothing is not an error and not a warning — it is simply not
# protecting anything, which is the one state it must never be in quietly.
annotations:
argocd.argoproj.io/sync-wave: "2"
name: jarvis-api
namespace: jarvis
spec:
minAvailable: 1
selector:
matchLabels:
app.kubernetes.io/name: jarvis
app.kubernetes.io/component: api
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
# Same wave, same reason.
annotations:
argocd.argoproj.io/sync-wave: "2"
name: jarvis-web
namespace: jarvis
spec:
minAvailable: 1
selector:
matchLabels:
app.kubernetes.io/name: jarvis
app.kubernetes.io/component: web