devops

Multi-Tenant Kubernetes Operator Patterns: Per-Namespace Leases and Listers

Multi-tenant operators come in three shapes: one operator serving all tenants (shared, simple, weakest isolation), one operator per tenant (isolated, expensive, strongest isolation), and the hybrid — one operator binary …

Deepak Prasad18 min read
devops

Operator Leader Election Explained: HA Operators with Lease Locks

A complete guide to running a multi-replica Kubernetes operator with leader election: how the lease-based lock works, the four manager options (`LeaderElection`, `LeaderElectionID`, `LeaderElectionResourceLock`, …

Deepak Prasad18 min read
devops

Operator Health and Readiness Probes: /healthz, /readyz, AddHealthzCheck

A practical guide to liveness and readiness probes for Kubernetes operators: what `/healthz` and `/readyz` should report, how to register custom checks with `mgr.AddHealthzCheck` and `mgr.AddReadyzCheck`, the difference …

Deepak Prasad19 min read
devops

Kubernetes Operator Watches, Events, and Predicates Explained

Learn how Kubernetes Operator watches, events, handlers, and predicates decide which changes trigger Reconcile, with Owns vs Watches examples.

Deepak Prasad17 min read
devops

Multi-Resource Reconciliation: Managing N Child Resources per CR

Most real operators do not manage one child — they manage five, ten, sometimes dozens of children per CR: a Deployment, a Service, two ConfigMaps, a HorizontalPodAutoscaler, a NetworkPolicy, a ServiceAccount, a …

Deepak Prasad21 min read
devops

Kubernetes Status Subresource and Conditions Explained (KEP-1623)

The status subresource is the API server endpoint controllers use to publish observed state without racing user edits on `.spec`. This guide explains why the split exists, the KEP-1623 Conditions standard (Ready / …

Deepak Prasad21 min read
devops

The Kubernetes Reconcile Loop Explained: From API Event to Reconcile()

Learn how the Kubernetes reconcile loop works from API watch to informer cache, workqueue, and Reconcile(). Covers level-triggered control, Result return paths, requeue behavior, idempotency, concurrency, and hot loop …

Deepak Prasad18 min read
devops

Kubernetes Operator Capability Levels I–V: The Operator Maturity Model

Red Hat's five operator capability levels - Basic Install, Seamless Upgrades, Full Lifecycle, Deep Insights, Auto Pilot - are the maturity scale used by OperatorHub and OLM. This guide explains what each level means, …

Deepak Prasad19 min read
devops

Kubernetes Operator Design Patterns: Singleton, Capability, Lifecycle, Auto-Pilot

Kubernetes Operators are not one shape - six distinct design patterns cover the entire range of production deployments: Singleton, Capability, Lifecycle, Auto-Pilot / Auto-Tune, Sidecar-Injecting, and GitOps-Controlled. …

Deepak Prasad19 min read
devops

Mutating and Validating Admission Webhooks in Operators

A complete guide to admission webhooks for Kubernetes operators: the difference between mutating and validating, the webhook lifecycle inside the API server, how kubebuilder scaffolds …

Deepak Prasad21 min read
devops

Kubernetes Finalizers: Two-Phase Deletion, Cleanup Patterns, and Stuck Objects

A Kubernetes finalizer is a string on `metadata.finalizers` that tells the API server to keep an object alive (with `deletionTimestamp` set) until your controller has finished cleanup and removed the string. This …

Deepak Prasad23 min read
devops

Helm-Based Operator vs Flux vs Argo CD: Which to Use

Three tools install Helm charts on a Kubernetes cluster: a Helm-based operator (per-CR Helm install), Flux's HelmRelease (HelmRelease CR + per-source reconciler), and Argo CD's Application (Application CR + sync engine). …

Deepak Prasad14 min read
devops

Drift Detection Patterns in Kubernetes Operators: Periodic Resync vs Spec Diffing

A Kubernetes operator detects drift in four layered ways: watch-based reconciliation, periodic resync with SyncPeriod, three-way spec diffing with client.Patch or Server-Side Apply, and external polling for resources …

Deepak Prasad17 min read
devops

Desired State vs Actual State in Kubernetes: The Level-Triggered Model

In Kubernetes, the desired state is what you declared in `.spec`, the actual state is what currently exists in the cluster, and the controller's job is to continuously reconcile the two. This guide explains why …

Deepak Prasad13 min read
devops

Helm Hybrid Operator Tutorial Part 1 of 2 - Build the Foundation (Go + Helm v4 SDK)

A Helm hybrid operator is a Go operator whose Reconcile calls the Helm SDK (v4) directly - the pre-built helm-operator, written by you, with full control. Part 1 of 2 walks the foundation: scaffold with operator-sdk init …

Deepak Prasad36 min read
devops

Helm-Based Operator Tutorial Part 1 - Build the Operator (Chart, CRD, watches.yaml)

A Helm-based operator wraps a Helm chart as a Kubernetes operator without you writing any Go code. The Operator SDK ships a generic reconciler that watches a CR, maps its `.spec` to Helm values, and runs `helm install` / …

Deepak Prasad34 min read
devops

Owner References and Garbage Collection in Kubernetes Operators

A complete guide to owner references and Kubernetes garbage collection for operators: the contract between an owner and its dependents, the difference between `SetControllerReference` and `SetOwnerReference`, three …

Deepak Prasad15 min read
devops

Install Operator-SDK on Linux: Complete Setup Guide (Go, kubectl, Helm 4, kind, ttl.sh registry)

A complete step-by-step guide to installing Operator-SDK on Linux (Ubuntu, RHEL, Fedora, Debian), including the prerequisite toolchain (Go 1.22+, kubectl, container runtime, Helm 4 CLI, kind), the three Operator-SDK …

Deepak Prasad19 min read
devops

Kubernetes Operator vs Controller vs CRD: What's the Difference?

A Custom Resource Definition (CRD) is the API contract, a Controller is the reconciler that watches and acts on it, and an Operator is the combination of a CRD plus a controller plus domain-specific knowledge about a …

Deepak Prasad12 min read
devops

What is a Kubernetes Operator?

A Kubernetes Operator is a custom controller paired with a Custom Resource Definition (CRD) that automates the day-2 operations of a complex application - install, upgrade, backup, failover, scaling - by continuously …

Deepak Prasad14 min read
devops

Parcel Management System Architecture (APIs, Database, Event-Driven Design)

Learn how to design a scalable parcel management system using APIs, database schema, event-driven architecture, queues, and cloud-native technologies like Kafka and Kubernetes.

Deepak Prasad12 min read
programming

Golang JWT Authentication (Gin + REST API + Middleware Examples)

Learn how to implement JWT authentication in Golang using Gin and PostgreSQL. This step-by-step guide covers user signup, login, JWT token generation, middleware validation, REST API usage, and common errors for building …

Antony Shikubu14 min read
devops

What Developers Should Know About the Hardware Their Code Runs On

Learn why understanding hardware fundamentals like CPU, memory, storage, and printed circuit boards is essential for developers to build high-performance, scalable, and reliable applications in modern computing …

Deepak Prasad7 min read
devops

How to Delete a Repository in GitHub (Step-by-Step Guide)

Learn how to delete a repository in GitHub using both the web interface and command line. This guide explains how to remove GitHub repositories, delete local Git repositories, remove files and folders, and safely clean …

Steve Alila9 min read
devops

Git Switch vs Checkout Explained (How to Switch Branch in Git)

Learn how to use git switch to change branches in Git. This guide explains git switch vs git checkout, switching branches, creating new branches, commands, examples, and fixing common errors.

Steve Alila7 min read
devops

Git Stash Explained (Save Local Changes Without Commit + Examples)

Learn how to use git stash to save local changes without committing. This guide covers git stash commands, examples, applying and popping stashes, listing stashes, fixing errors like no local changes to save, and …

Steve Alila7 min read
devops

Git Tag Explained (Create, Push, Delete & Best Practices)

Learn how to use git tag to create, list, push, delete, and manage tags in Git. This guide covers tagging concepts, version tagging, commands, examples, and best practices for release management.

Steve Alila7 min read
devops

How to Squash Commits in Git (Combine, Clean History, Before & After Push)

Learn how to squash commits in Git using rebase and merge. This guide covers combining commits, squashing last N commits, squashing all commits in a branch, before and after push workflows, fixing errors, and recovering …

Steve Alila9 min read
devops

Git Set Upstream Explained (origin vs upstream + Fix Errors + Examples)

Learn how to set upstream in Git with practical examples, fix common errors like no upstream branch, and understand origin vs upstream. This guide covers git push --set-upstream, git branch upstream setup, fork …

Steve Alila8 min read
devops

Git rm Command Explained (Remove Files, Undo & --cached Examples)

Learn how to use the git rm command with practical examples. This guide covers removing files and folders, git rm vs rm differences, git rm --cached usage, undoing git rm, and handling real-world scenarios safely without …

Steve Alila9 min read