Skip to main content
DevOps Insightsguides & answers
N

Neeraj Jha

Platform administrator and lead writer.

Joined March 3, 202634 articles0 comments

Articles by Neeraj Jha

Diagram of How an upgrade breaks every plan: 1. Provider upgrade, 2. Identity support changes, 3. Existing resources read, 4. Every plan fails, 5. Next release or a pin.
3 min
TerraformIntermediateNew

Terraform Identity Errors After a Provider Upgrade

Missing Resource Identity After Read and Unexpected Identity Change usually start right after a provider upgrade. Why they are provider bugs, and the upgrade-or-pin fix that clears them.

#Terraform#AWS

Neeraj Jha

Diagram of Reading the memory curve: 1. Flat, near the limit, 2. Raise the limit, 3. Steady climb, regular kills, 4. Fix the code, 5. Fine, then one big request, 6. Size for the peak.
3 min
KubernetesIntermediateNew

OOMKilled and Exit Code 137: Limit, Leak or Spike?

OOMKilled means the kernel killed a Kubernetes container for using too much memory. How to tell a low limit from a leak or a one-off spike before you raise anything.

#Kubernetes#troubleshooting

Neeraj Jha

Diagram of Which push failure is yours?: 1. Read the error, 2. blob unknown, image digest, 3. Fix one, 4. timeout awaiting headers, 5. Fix two.
3 min
ContainersIntermediateNew

docker push Failing Since Docker 29.7? Two Causes

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.

#Docker#CI/CD

Neeraj Jha

Diagram of One turn of the loop: 1. Container starts, 2. It exits, 3. Kubernetes restarts it, 4. Back-off grows, 5. You read the previous run.
3 min
KubernetesBeginnerNew

CrashLoopBackOff: Find the Cause in Three Commands

CrashLoopBackOff means a Kubernetes container keeps exiting and being restarted. Read the previous container's logs, its exit reason and the pod events, and the cause is usually on screen.

#Kubernetes#troubleshooting

Neeraj Jha

Diagram of How one lowercase letter fails an apply: 1. Plan, 2. Apply, 3. Provider returns, 4. Terraform compares, 5. Error, object tainted.
3 min
TerraformIntermediateNew

Provider Produced Inconsistent Result After Apply, Explained

Provider produced inconsistent result after apply means the API rewrote a value you sent. How to read the was and but now values, fix the configuration, and avoid the tainted resource it leaves behind.

#Terraform

Neeraj Jha

Diagram of Why a 9 GB build dies at 6 GB: 1. Job starts on ubuntu-26.04, 2. Build writes temp files, 3. Quota reached, 4. disk quota exceeded, 5. Fix applied.
3 min
CI/CDIntermediateNew

Ubuntu 26.04 Puts /tmp in RAM: Big CI Builds Run Out

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.

#GitHub Actions#Linux#CI/CD

Neeraj Jha

Diagram of Will pip install here?: 1. You run pip install, 2. Inside a venv?, 3. Marker file present?, 4. pip.conf override?, 5. Refused.
3 min
ScriptingBeginnerNew

pip Says externally-managed-environment: What to Do

Why pip install now fails with externally-managed-environment on Ubuntu 24.04, Debian 12 and Homebrew, and the three fixes that work: a venv, pipx, or apt. Plus why it passes in GitHub Actions and fails in docker build.

#Python#Docker#Linux

Neeraj Jha

Diagram of One request, two controllers: 1. Request arrives, 2. Ingress NGINX matching, 3. Gateway API matching, 4. No match, 5. 404.
3 min
DevOpsIntermediateNew

Leaving Ingress NGINX? Five Things That Will Quietly Return 404

Ingress NGINX was retired in March 2026, and moving the same rules to Gateway API can break routes that worked for years. Five behaviours from the Kubernetes project's own write-up, in plain language, with a check to run before you switch.

#Kubernetes#Nginx

Neeraj Jha

Diagram of From cron line to running job: 1. Your cron line, 2. Default branch only, 3. The queue, 4. Delay or drop, 5. Still enabled?, 6. Your job runs.
3 min
CI/CDBeginnerNew

Why Your GitHub Actions Cron Runs Late, or Not at All

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.

#GitHub Actions#CI/CD

Neeraj Jha

Diagram of An anonymous request for one object: 1. Anything public?, 2. ACLs switched off?, 3. Account settings, 4. Bucket settings, 5. Encryption, 6. Allowed.
4 min
Cloud ComputingBeginnerNew

Your S3 Bucket Is Not Public. That Is the Feature

You added a public bucket policy and still get 403. Block Public Access has four switches at two levels, two of which only refuse new grants. How they combine, why encryption can block the internet too, and the safer way to publish files.

#AWS

Neeraj Jha

Diagram of What a stop and start does to one instance: 1. Stop pressed, 2. Charges pause, 3. Host released, 4. Public IP released, 5. Start pressed, 6. New public IP.
4 min
Cloud ComputingBeginnerNew

Stop, Start, Surprise: What Your EC2 Instance Forgets

What rebooting, stopping, hibernating and terminating an EC2 instance each keep and lose, from AWS's own comparison. Four actions that sound similar and are not, including the public IP that changes and the disk that vanishes.

#AWS#Linux

Neeraj Jha

Diagram of How AWS decides, for a request inside one account: 1. Any explicit Deny?, 2. Resource control policies, 3. Service control policies, 4. The resource's own policy, 5. Your IAM policies, 6. Permissions boundary.
4 min
Cloud ComputingBeginnerNew

AWS Said Access Denied. Here Is How to Find the Policy That Did It

When AWS says AccessDenied, the error names only one of the several policy types it checks in a fixed order: how to find the policy that actually said no. The two phrases that tell you where to look, and the one command to run first.

#AWS

Neeraj Jha

Updated

Diagram: a flaky test branching into three outcomes: fix, quarantine with an owner and deadline, or delete.
7 min
CI/CDIntermediate

Flaky Tests: Fix, Quarantine, or Delete

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.

#CI/CD#SRE

Neeraj Jha

199
A CycloneDX SBOM excerpt beside what an SBOM answers and the questions it does not.
8 min
SecurityIntermediate

SBOMs: What They Answer, and What They Do Not

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.

#CI/CD#Docker

Neeraj Jha

215
Diagram: an AI agent's actions passing through a policy boundary before reaching production, with destructive actions denied.
9 min
DevOpsAdvanced

Giving an AI Agent Production Access

Autonomy is not one decision. The four levels, the three properties that make an action safe to automate, and why the guardrail cannot live in the prompt.

#SRE#AIOps

Neeraj Jha

212
Diagram: an annotated Deployment manifest showing its kind, replica count, pinned image and missing resource requests.
10 min
ContainersBeginner

Reading a Kubernetes YAML You Did Not Write

How to get oriented in a Kubernetes YAML file you did not write: four hundred lines, in production, by somebody who left. An order that works, and why the file may not be what is running.

#Kubernetes#Helm

Neeraj Jha

Updated

221
Funnel narrowing 312 scanner findings down to four fixes.
10 min
SecurityIntermediate

From DevOps to DevSecOps: Turning 312 Findings Into Four

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.

#CI/CD#SRE

Neeraj Jha

189
Diagram: a developer's paved road to production beside the slower route around it.
10 min
DevOpsIntermediate

Platform Engineering: Why Developers Route Around Your Platform

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.

#SRE#CI/CD#Kubernetes

Neeraj Jha

188
Bars showing a node 96 percent requested but 10 percent used, and a new Pod stuck Pending for insufficient CPU.
8 min
InfrastructureIntermediate

Why Your Kubernetes Cluster Is Full at 10% Utilisation

Why a Kubernetes cluster is full at 10% utilisation: the scheduler commits against requests, not usage, and that gap is where most overspend lives. Your dashboards and the scheduler are both right.

#Kubernetes#SRE

Neeraj Jha

179
Diagram: an ML lifecycle from data to train, evaluate, register, deploy and monitor, looping back to retrain on drift.
15 min
DevOpsIntermediate

From DevOps to MLOps and AIOps: What Actually Changes

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.

#MLOps#AIOps#SRE

Neeraj Jha

181
Timeline of an incident: page, acknowledge, mitigate, resolve and review.
10 min
ObservabilityAdvanced

Your First Week On Call: An SRE Incident Response Guide

What to actually do, in order, when a page arrives at 2am for a service you did not write — establishing whether it is real, what changed, and when to escalate.

#SRE#Grafana#Prometheus

Neeraj Jha

212
Diagram: a Helm chart's Chart.yaml, values.yaml and templates rendered into plain Kubernetes YAML and installed as a release.
8 min
ContainersIntermediate

Helm Charts: Packaging Kubernetes Applications

Master Helm charts for Kubernetes — chart structure, values, templates, repositories, environment management, and deployment best practices.

#Kubernetes#Helm

Neeraj Jha

Updated

185
A Bash script using set -euo pipefail, an ERR trap, a required argument and quoted expansions, each annotated.
9 min
ScriptingBeginner

Shell Scripting for DevOps: Essential Bash Automation

Learn essential Bash scripting for DevOps — variables, conditionals, loops, functions, error handling, cron jobs, and practical one-liners.

#Linux

Neeraj Jha

Updated

159
Diagram: an AWS VPC with an internet gateway, a public subnet holding a load balancer and NAT gateway, and a private subnet holding EC2 instances and RDS.
8 min
Cloud ComputingBeginner

AWS EC2 and VPC: Building Your First Cloud Infrastructure

Step-by-step guide to building your first AWS infrastructure — VPCs, subnets, security groups, EC2 instances, and networking fundamentals.

#AWS

Neeraj Jha

Updated

158
A five-step container hardening list beside a docker run command that drops capabilities and runs read-only.
10 min
SecurityAdvanced

Securing Docker Containers, in Order of What It Buys You

The same ten-item checklist, ordered by the threat each item actually closes — and honest about which three matter most and what none of them protect you from.

#Docker#Linux

Neeraj Jha

Updated

169
Diagram: an Ansible control node running a playbook over SSH against three web hosts from its inventory.
7 min
InfrastructureBeginner

Ansible for DevOps: Automating Server Configuration

Get started with Ansible for server automation — inventory, playbooks, roles, common modules, and best practices for DevOps workflows.

#Ansible#Linux

Neeraj Jha

157
Diagram: traffic from a client through an Ingress to a Service and on to three Pods, with the Service's cluster DNS name.
8 min
ContainersIntermediate

Understanding Kubernetes Networking: Services, Ingress, and DNS

Deep dive into Kubernetes networking — ClusterIP, NodePort, LoadBalancer, Ingress controllers, CoreDNS, and Network Policies explained with examples.

#Kubernetes#Nginx

Neeraj Jha

Updated

220
Diagram: a GitOps controller watches a Git repository, applies it to the cluster and reports drift.
6 min
DevOpsAdvanced

GitOps: The Modern Way to Manage Kubernetes Deployments

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

#GitOps#Kubernetes#Helm

Neeraj Jha

505
Diagram: nginx terminating TLS for a client and proxying to three upstream application servers.
7 min
InfrastructureIntermediate

Nginx as a Reverse Proxy: The Config, and What Breaks

The six lines that proxy, the four headers most examples omit, and the three failures a reverse proxy actually produces — 502, 504 and the 499 nobody receives.

#Nginx#Linux#SRE

Neeraj Jha

529
Diagram: Prometheus scraping metrics from exporters and an app, feeding Grafana dashboards and Alertmanager.
7 min
MonitoringBeginner

Monitoring Your Infrastructure with Prometheus and Grafana

Set up a production-grade monitoring stack with Prometheus and Grafana — metrics collection, PromQL queries, alerting, and dashboards.

#Prometheus#Grafana#Docker

Neeraj Jha

Updated

489
Terminal showing ss, journalctl, df and du, ps and dmesg commands, ending with a kernel out-of-memory line.
7 min
DevOpsBeginner

Linux Commands Every DevOps Engineer Must Know

A practical reference of essential Linux commands for DevOps — file operations, text processing, networking, process management, and more.

#Linux#SRE

Neeraj Jha

Updated

485
Diagram: a Terraform resource block going through plan and apply, with the state file read by plan and written by apply.
10 min
InfrastructureBeginner

Infrastructure as Code with Terraform: State, Modules and CI

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

#Terraform#AWS#CI/CD

Neeraj Jha

Updated

418
Diagram: a git push starting a GitHub Actions workflow whose build, test and lint jobs feed package and then deploy.
8 min
CI/CDBeginner

Setting Up a CI/CD Pipeline with GitHub Actions

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

#GitHub Actions#CI/CD

Neeraj Jha

435
Diagram: a Deployment owns a ReplicaSet that keeps three Pods running on nodes, with a Service selecting them by label.
7 min
ContainersIntermediate

Kubernetes 101: The One Idea, Then the Nouns

Kubernetes explained through the control loop under Pods, Deployments and Services, so you can predict what the cluster will do, not just name its parts. Most introductions stop at the nouns.

#Kubernetes#Docker#Helm

Neeraj Jha

Updated

599