โšก ~/naveed Interview Prep
โšก Portfolio Home โœ๏ธ Engineering Blog Deep Dives ๐ŸŽฏ Interview Hub 998+ Scenarios โ˜ธ๏ธ Kubernetes Mastery Hub 24 Modules ๐ŸŽฎ DevOps Arcade & Quizzes Subnet Blitz โšก ๐Ÿ—บ๏ธ DevOps Roadmaps PDFs & Guides ๐Ÿค– Morpheus Analysis AI Quant โ†— ๐Ÿ› ๏ธ Developer Tools Utilities ๐Ÿงช Labs & Experiments ๐Ÿ“„ Interactive CV & Certs ๐Ÿ”— All Links & Socials โšก Join The Dispatch (Weekly SRE Newsletter) →
Staff SRE / Principal Architect [L3] CI/CD ๐Ÿ” Supply Chain Security & Advanced CI/CD Staff SRE Scenario [L3]

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
Want more CI/CD scenarios?
Explore our complete collection of scenario-based CI/CD interview runbooks.
Browse All CI/CD Questions →

๐Ÿ“š Related Production Scenarios in CI/CD