<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>DevOps on Shubham Singh</title>
    <link>https://1shubham7.blog/tags/devops/</link>
    <description>Recent content in DevOps on Shubham Singh</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 16 Aug 2023 11:12:44 +0530</lastBuildDate><atom:link href="https://1shubham7.blog/tags/devops/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>25 Helm Features You Didn&#39;t Know About That Make You a Better SRE</title>
      <link>https://1shubham7.blog/helm-features-for-sres/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/helm-features-for-sres/</guid>
      <description>Twenty-five Helm flags, template functions, chart features and tools that most daily users never touch, each with the operational problem it solves. Written after two years of writing and managing Helm packages in production.</description>
    </item>
    
    <item>
      <title>A Spec-Driven Workflow for AI Coding Agents, and the Hook That Enforces It</title>
      <link>https://1shubham7.blog/spec-driven-multi-agent-workflow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/spec-driven-multi-agent-workflow/</guid>
      <description>A spec-driven workflow for Claude Code agents: a numbered spec that gets attacked before any code, checks set up before features, three roles with walls between them, a PreToolUse hook that enforces the rules, and injected bugs to grade the tests. Written after running it once and logging every confident mistake.</description>
    </item>
    
    <item>
      <title>Agent Harness: Everything That Isn&#39;t the Model</title>
      <link>https://1shubham7.blog/agent-harness/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/agent-harness/</guid>
      <description>What an agent harness actually is, where the word comes from, and the dozen or so primitives hiding inside the term. A companion to the loop engineering post.</description>
    </item>
    
    <item>
      <title>eBPF Explained: How Code Runs Inside the Linux Kernel, and Why Cilium Is Built on It</title>
      <link>https://1shubham7.blog/ebpf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/ebpf/</guid>
      <description>What eBPF actually is, why the verifier means it can&amp;#39;t crash your kernel, hooks and maps in plain words, two runnable examples with bpftrace and libbpf, and how Cilium turns all of it into a CNI.</description>
    </item>
    
    <item>
      <title>Helm Hooks: What They Actually Do, When to Use Them, and When Not To</title>
      <link>https://1shubham7.blog/helm-hooks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/helm-hooks/</guid>
      <description>What Helm does with a hook step by step, the three things hooks do not do that everyone assumes they do, a migration Job that survives a rollback, and when an initContainer or an Argo CD sync wave is the better tool. Written after two years of writing and managing Helm packages in production.</description>
    </item>
    
    <item>
      <title>How Log Collectors Collect and Label Your Logs</title>
      <link>https://1shubham7.blog/log-collection-and-labels/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/log-collection-and-labels/</guid>
      <description>A container log line on disk contains no idea which pod wrote it. Everything you filter by later is constructed by the collector at collection time. What the file actually looks like, how collectors find it, where every label comes from, and why that design decides the health of your logging stack.</description>
    </item>
    
    <item>
      <title>Learning Rust as an SRE: The Parts That Matter for Infra Tooling</title>
      <link>https://1shubham7.blog/rust-for-sres/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/rust-for-sres/</guid>
      <description>I learned enough Rust in a weekend to read, review and debug the CLIs, API clients and daemons that show up in infra work. This is the subset that mattered, the compiler errors you will actually hit, and the parts of the language I deliberately skipped.</description>
    </item>
    
    <item>
      <title>Loop Engineering: How to Create Loops in Claude Code</title>
      <link>https://1shubham7.blog/claude-code-loops/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/claude-code-loops/</guid>
      <description>What loop engineering actually means, where the term came from, and how /loop and /goal turn Claude Code into something that babysits deployments and works until the tests pass.</description>
    </item>
    
    <item>
      <title>Where Linux Meets Kubernetes: Six Mental Models for When top Isn&#39;t Enough</title>
      <link>https://1shubham7.blog/linux-concepts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/linux-concepts/</guid>
      <description>Processes and signals, namespaces and cgroups, memory, storage, networking, and identity: the mechanism behind each, the two or three ways it breaks under a pod, and the one check that confirms it. Written from on-call across 100&#43; production Kubernetes clusters.</description>
    </item>
    
    <item>
      <title>CiliumNetworkPolicy Anti-Patterns: 8 Ways Correct-Looking YAML Silently Drops Traffic</title>
      <link>https://1shubham7.blog/cnp-antipatterns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/cnp-antipatterns/</guid>
      <description>Lessons from writing CiliumNetworkPolicies for the KubeAid-addons chart - toServices port traps, labels Cilium ignores, toFQDNs without a DNS rule, default-deny surprises, and why every namespace needs exactly one default-deny.</description>
    </item>
    
    <item>
      <title>Ten Things to Get Right Before You Run Loki in Production</title>
      <link>https://1shubham7.blog/loki-production-checklist/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/loki-production-checklist/</guid>
      <description>Deployment mode, object storage, label cardinality, multi-tenancy and auth, cross-cluster shipping, and the failures that are silent rather than loud. Written after moving a Loki install twice and debugging an object store that corrupted everything it was given.</description>
    </item>
    
    <item>
      <title>Marp: Slides That Live in Git Next to the Code They Talk About</title>
      <link>https://1shubham7.blog/marp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/marp/</guid>
      <description>What Marp is, where it came from, how Marpit turns a Markdown file into a deck, rendering to PDF and PPTX with the CLI, and how to keep a theme shared across every deck instead of copy-pasting CSS.</description>
    </item>
    
    <item>
      <title>Why Your DaemonSet Rolling Update Gets Stuck on hostPort Pods</title>
      <link>https://1shubham7.blog/daemonsets-rollouts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/daemonsets-rollouts/</guid>
      <description>A breakdown of why DaemonSets using hostPort can get stuck in Pending during rolling updates, and why the default maxSurge/maxUnavailable settings aren&amp;#39;t always right for them.</description>
    </item>
    
    <item>
      <title>MCP Explained: What It Is and Why It Exists</title>
      <link>https://1shubham7.blog/mcp-servers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/mcp-servers/</guid>
      <description>A breakdown of the Model Context Protocol - the problem it solves, its architecture, and how a tool call actually works under the hood.</description>
    </item>
    
    <item>
      <title>Pod Disruption Budgets Explained: How Kubernetes Protects You From Voluntary Disruptions</title>
      <link>https://1shubham7.blog/pdb/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/pdb/</guid>
      <description>What a PodDisruptionBudget actually does, the difference between voluntary and involuntary disruptions, how the eviction API respects it, and the mistakes that quietly break node drains and cluster upgrades.</description>
    </item>
    
    <item>
      <title>Kubernetes Audit Logging: Stages, Levels, and Policy Design</title>
      <link>https://1shubham7.blog/audit-logging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/audit-logging/</guid>
      <description>A breakdown of how kube-apiserver audit events actually work - request stages, audit levels, writing policies, and how SREs tune them differently for prod vs dev clusters.</description>
    </item>
    
    <item>
      <title>Getting Started with CISO Assistant on Kubernetes</title>
      <link>https://1shubham7.blog/ciso-assisstant/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/ciso-assisstant/</guid>
      <description>Deploying CISO Assistant via Helm, creating your first superuser, adding users, and how evidence storage actually works.</description>
    </item>
    
    <item>
      <title>Backing Up and Restoring Redis on Kubernetes</title>
      <link>https://1shubham7.blog/redis-backup-restore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/redis-backup-restore/</guid>
      <description>How to backup and restore Redis on Kubernetes using RDB snapshots - and why just copying dump.rdb is not enough.</description>
    </item>
    
    <item>
      <title>Kubernetes Local Storage: PVs, Nodes, and the WaitForFirstConsumer Trap</title>
      <link>https://1shubham7.blog/pv-shift/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/pv-shift/</guid>
      <description>Why your pod is stuck in Pending, why it lands on the wrong node, and how WaitForFirstConsumer fixes local storage scheduling for good.</description>
    </item>
    
    <item>
      <title>Grafana Showed My Node Was Out of Memory. It Wasn&#39;t.</title>
      <link>https://1shubham7.blog/grafana-dashboards/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/grafana-dashboards/</guid>
      <description>Two Grafana dashboards, same node, same timestamp - one shows 62 GB used, other shows 10 GB. Both are correct. Here&amp;#39;s the full story of how Linux memory actually works and which number you should actually be watching.</description>
    </item>
    
    <item>
      <title>Technical Writer (GeeksforGeeks)</title>
      <link>https://1shubham7.blog/experience/gfg/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/experience/gfg/</guid>
      <description>Outline Worked as a Technical Writing at GeeksforGeeks, creating educational content focused on DevOps, Kubernetes, Docker, and web technologies. Contributed consistently to learner-facing material and simplifying complex technical concepts for students and early-career engineers. My work reached more than 180,000 learners globally.
Wrote more than 200 tutorials and articles as part of my work that reached more than 180,000 learners. These tutorials and articles were mainly focused on DevOps, Kubernetes, Docker, and Web design.</description>
    </item>
    
    <item>
      <title>Deploying Grafana OnCall in an Air-Gapped Kubernetes Cluster</title>
      <link>https://1shubham7.blog/air-gapped-oncal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/air-gapped-oncal/</guid>
      <description>A step-by-step guide to running Grafana OnCall without any egress to grafana.com — using OCI artifacts, init containers, and Kubernetes secrets to deliver plugins in restricted environments.</description>
    </item>
    
    <item>
      <title>CNCF Zero to Merge</title>
      <link>https://1shubham7.blog/experience/cncf-zero-to-merge/</link>
      <pubDate>Wed, 16 Aug 2023 11:12:44 +0530</pubDate>
      
      <guid>https://1shubham7.blog/experience/cncf-zero-to-merge/</guid>
      <description>CNCF Zero to merge is an Incubator program that help you work with CNCF projects, understand large and complex codebases and contribute to them.</description>
    </item>
    
    <item>
      <title>Kubernetes Statefulsets</title>
      <link>https://1shubham7.blog/statefulsets/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/statefulsets/</guid>
      <description>In simplest terms StatefulSets are Kubernetes component that is used specifically for stateful applications. These are workload API object used to manage stateful applications. They manage the deployment and scaling of a set of Pods (Creating more replicas or deleting them), and StatefulSets are also responsible for the ordering and uniqueness of these Pods. StatefulSet was released in the Kubernetes 1.9 release, let see K8s Statefulsets in this article...</description>
    </item>
    
    <item>
      <title>Beginners guide to Kubernetes namespaces</title>
      <link>https://1shubham7.blog/namespaces/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/namespaces/</guid>
      <description>Namespaces are Kubernetes Objects used to divide a Cluster into smaller organized sub clusters as per different needs. Namespaces enables users to isolate group of resources within a cluster, this is useful when multiple teams are working on a shared cluster and each team is independent of others. In this article, we will discuss how to change or switch namespaces in a Kubernetes cluster, but before that let&amp;rsquo;s start with the basics.</description>
    </item>
    
    <item>
      <title>Kubernetes Deployment Strategies</title>
      <link>https://1shubham7.blog/k8s-depl-stratigies/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/k8s-depl-stratigies/</guid>
      <description>Kubernetes, or K8s, is an open-source container orchestration technology used to automate the manual processes of deploying, managing, and scaling applications with the help of containers. Originally developed by engineers at Google, Kubernetes was donated to the CNCF (Cloud Native Computing Foundation) in 2015...</description>
    </item>
    
    <item>
      <title>Everything about Artifacts for DevOps</title>
      <link>https://1shubham7.blog/artifacts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/artifacts/</guid>
      <description>Artifacts - from beginner to advanced. · What are artifacts? In the broadest sense, artifacts are objects or items created or modified by humans that...</description>
    </item>
    
    <item>
      <title>YAML - from basics to advanced</title>
      <link>https://1shubham7.blog/yaml/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/yaml/</guid>
      <description>explaining YAML from basics to advanced · What is YAML? YAML (which stands for &amp;#39;YAML Ain&amp;#39;t Markup Language&amp;#39;) is a human-readable data serialization...</description>
    </item>
    
    <item>
      <title>Databases - the easy way</title>
      <link>https://1shubham7.blog/database/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/database/</guid>
      <description>Databases in the simplest yet most powerful way ever. Keeping in mind placements and development. · Databases: just a digital tool that stores and...</description>
    </item>
    
    <item>
      <title>Datatypes in Python</title>
      <link>https://1shubham7.blog/python_datatypes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/python_datatypes/</guid>
      <description>Datatypes in Python in simplest yet most effective way. · Python includes 6 types of built-in datatypes - Numeric datatype Boolean datatype Sequence...</description>
    </item>
    
    <item>
      <title>WTF is Vagrant</title>
      <link>https://1shubham7.blog/vagrant/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://1shubham7.blog/vagrant/</guid>
      <description>Vagrant explained for absolute beginner. · So recently, I was setting up locally an open-source software, so to contribute to it (BTW it is called Zulip,...</description>
    </item>
    
  </channel>
</rss>
