Q: You implement a full GitOps pipeline where ArgoCD manages production. A developer accidentally pushes a Kubernetes deployment with `replicas: 0` to the GitOps repository. ArgoCD syncs it, silently taking down the entire service. How do you add a policy gate that prevents zero-replica deployments from ever reaching the GitOps repository?
Two layers of defence โ one at the Git level, one at the cluster level:
#CI/CD #๐ Supply Chain Security & Advanced CI/CD #L3 #DevOps #Automation #Pipelines
๐๏ธ Candidate Opening & Architectural Context
""In our delivery pipeline supporting multiple engineering squads, pipeline reliability was paramount. The interviewer is testing: Pre-merge policy gates, Conftest in CI, OPA/Kyverno at admission.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement
๐ ๏ธ Production Runbook & Step-by-Step Resolution
1๏ธโฃ
Production Solution & Architecture
Two layers of defence โ one at the Git level, one at the cluster level: Layer 1 โ CI policy gate on PR: In the CI pipeline that validates the GitOps repo, add a conftest check: Run conftest test on every PR diff. The PR is blocked from merging until this passes. Layer 2 โ Admission controller in the cluster: Install a Kyverno policy as a final defence: Even if the Git gate is bypassed, the Kubernetes API server rejects the manifest. ArgoCD sync fails with a clear error message, and the service remains unaffected.
deny[msg] {
input.kind == "Deployment"
input.spec.replicas == 0
msg := sprintf("Deployment %v has replicas=0 which would cause an outage", [input.metadata.name])
}
๐ก The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Two layers of defence โ one at the Git level, one at the cluster level:."
โก 60-Second Elevator Pitch Talking Points
- Immediate Triage: Two layers of defence โ one at the Git level, one at the cluster level:
- Run targeted verification commands before modifying configuration.
- Automate permanent guardrails (CI check, alerts, IaC policy) to prevent recurrence.
Advertisement