Articles by Deepak Prasad
How to Refresh Network Settings in Ubuntu
Learn how to refresh network settings in Ubuntu after IP address, route, DNS, DHCP, Netplan, NetworkManager, or systemd-networkd changes. Includes safe …
How to Configure VNC Server on Ubuntu
Learn how to configure a VNC server on Ubuntu with TigerVNC, XFCE, a per-user VNC password, localhost-only binding, SSH tunneling, firewall checks, and a …
Testing Kubernetes Operators with envtest, Fake Client, and kind
Part 3 of 3: test a Go Operator SDK operator with unit tests, fake client, envtest (CRD + status + webhooks), kind smoke tests, Kustomize packaging, safe CRD …
Kubernetes Operator with controller-runtime: Status, Finalizers, Webhooks, and Drift
Part 2 of 3: extend a DemoApp Operator SDK project with ConfigMap, Service, Deployment, status Conditions, finalizers, drift via Owns/Watches, …
Go Kubernetes Operator SDK Tutorial: Build a Controller from Scratch
Part 1 of 3: scaffold a Go operator with Operator SDK (go/v4), CRDs from Kubebuilder markers, RBAC, idempotent Reconcile with CreateOrUpdate, owner references, …
Kubernetes Operator Tutorial - Build Production-Ready Operators
Free, hands-on Kubernetes Operator tutorial that takes you from the reconcile loop and CRDs all the way to production-grade Go, Helm, and hybrid operators with …
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, …
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 …
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, …
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 …
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 …
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.
Controller-Runtime Architecture: Manager, Cache, Informer, Workqueue Explained
controller-runtime is the Go library that powers every Kubebuilder and Operator-SDK project. This guide walks the full architecture - Manager, Cache, Informer, …
Kubernetes Custom Resource Definitions (CRDs) Explained: A Complete Guide
A Custom Resource Definition (CRD) is a Kubernetes resource that registers a new object type with the API server, so kubectl, RBAC, watches, and Operators can …
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 …
