
GitOps: The Modern Way to Manage Kubernetes Deployments
Learn GitOps principles and implement them with ArgoCD — automated Kubernetes deployments driven by Git pull requests.
Neeraj Jha
Topic
A pipeline is the path a change takes from commit to production. Its value is not automation for its own sake: it is that every change travels the same path, so a failure is a signal about the change rather than about who deployed it.
The pipelines worth having are fast enough that nobody avoids them, and honest enough that a green run genuinely means the change is safe. Everything else — caching, parallel jobs, environment promotion — serves those two properties.
Existing pages in an order where each step answers a question the previous one raised, with an exercise at the end.
Step-by-step, with copy-paste commands and an assistant that answers questions about the guide you are reading.
Named errors and symptoms, each with its causes, a command that confirms each one, and the fix.
no signatures found means nothing is attached, while no matching signatures: none of the expected identities matched is followed by the subject and issuer that actually signed.terraform state rm on a resource the plan never touches — because the plan's changes were calculated for a state that no longer exists. There is no flag to force it, and you should not want one: plan again..terraform.lock.hcl records exactly which version of each provider the configuration uses. When the configuration asks for a provider the lock file does not have, or for a version range the locked version is outside of, Terraform stops rather than quietly choose. The fix depends on which: a new provider needs a plain terraform init; a changed version constraint needs terraform init -upgrade, which upgrades every provider, not just the one you changed.BUILDX_NO_DEFAULT_OCI_ARTIFACT=1 (Buildx 0.36.1 or later), then push again.Pairs of things that get mistaken for one another, and the problem the mix-up causes.
reset --hard also throws away uncommitted work: changes you never staged are gone for good.The design decision behind the behaviour, and what it costs you.
A failure followed step by step: what each part of the system does, and what you can change.
The OWASP Top 10 CI/CD Security Risks, each with how it shows up and what to check in your own pipeline.
Run in your browser; nothing you paste is sent anywhere.
A question, then the follow-ups an interviewer asks when the first answer is right.
Ordered by how much they are read.

Learn GitOps principles and implement them with ArgoCD — automated Kubernetes deployments driven by Git pull requests.
Neeraj Jha

Build a complete CI/CD pipeline with GitHub Actions — from running tests on every PR to automated production deployments.
Neeraj Jha

Learn Infrastructure as Code with Terraform — from your first resource to production-ready modules, state management, and CI integration.
Neeraj Jha
Updated

Most teams generate an SBOM and never read one. The single question it answers well, the four things it does not, and the difference between a compliance artifact and an operational one.
Neeraj Jha

The question is not how to eliminate flakiness. It is what to do with each flaky test — and there are exactly three answers, one of which people resist and should not.
Neeraj Jha

Security scanners produce findings, and findings are not work until somebody can act on them: how a DevSecOps team turns 312 of them into four. The triage, the gate decision, and why false positives destroy the whole programme.
Neeraj Jha

What actually changes moving from DevOps to platform engineering: your work stops being mandatory and starts being optional, and every design decision is now a negotiation with somebody's convenience.
Neeraj Jha

MLOps and AIOps sound alike and are different jobs. What transfers from DevOps, the one assumption that breaks, and the failure modes worth learning before you need them — with examples.
Neeraj Jha

Why a GitHub Actions scheduled workflow runs late or not at all: at most every five minutes, delays at busy times, default branch only, and UTC by default. Plus the 60-day switch-off in public repositories, and how to stop being surprised.
Neeraj Jha

Since Docker 29.7, docker push can fail with blob unknown to registry on GitLab or with timeout awaiting response headers on slow registries. How to tell which one you have, and what fixes each.
Neeraj Jha

Ubuntu 26.04 mounts /tmp as a RAM disk with a per-user quota, so large builds fail with disk quota exceeded on the ubuntu-26.04 runner. How to check your job and the two-line fix.
Neeraj Jha
Real questions from the community, with an accepted answer.