Articles by Deepak Prasad
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 …
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 …
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 …
Helm Hybrid Operator Tutorial Part 2 of 2 - Custom Status, Finalizer, Drift, Cross-CR
Part 2 of the Helm hybrid operator tutorial: the features the pre-built helm-operator binary cannot provide, written in roughly 200 lines of Go on top of the foundation built in Part 1. Custom status fields including a …
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` / …
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 …
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 …
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 …
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 …
AWS Tutorial for Beginners - End-to-End Cloud Hands-On
Free, hands-on AWS tutorial covering CLI, EC2, S3, RDS, Lambda, DynamoDB, CloudFormation, CDK, Application Load Balancer, Elastic Beanstalk, CI/CD, and Amplify. 25+ production-tested lessons.
Ethical Hacking & Penetration Testing Tutorial (Hands-On)
Free, hands-on ethical hacking and penetration testing tutorial - lab setup, reconnaissance, password cracking, phishing, web/mobile pentesting, MITM attacks, and exploitation frameworks. 80+ practical lessons.
Git & GitHub Tutorial for Beginners (with examples)
Free, hands-on Git and GitHub tutorial that walks you from `git init` to advanced rebase, stash, and history rewriting in 14 chapters. 60+ examples tested on Linux, macOS, and Windows.
Laravel Tutorial for Beginners (Step by Step)
Free, hands-on Laravel tutorial - install, routes, Eloquent ORM, Blade templates, authentication, Sanctum/Passport, validation, file storage, queues, mail, and production deployment. 40+ tested lessons.
Microsoft Azure Tutorial for Beginners (Hands-On)
Free, hands-on Microsoft Azure tutorial covering App Service, AKS, Blob Storage, Backup, VPN, ARM Templates, Logic Apps, Cosmos DB, and Azure AD. 30+ production-tested lessons.
Node.js Tutorial for Beginners (Hands-On)
Free, hands-on Node.js tutorial - installation, REPL, file system, child processes, Express, MongoDB, authentication, error handling, debugging, and HTTPS. 35+ runnable lessons.
OpenSSL & PKI Certificates Tutorial for Beginners
Complete OpenSSL and PKI tutorial - generate keys, build a Certificate Authority, issue SAN and ECC certificates, configure mTLS, renew and revoke certificates. 24 hands-on lessons tested on Linux.
Pandas Tutorial for Data Analysis (with examples)
Free, hands-on Pandas tutorial - DataFrame fundamentals, reading and writing CSVs, selecting, filtering, joining, grouping, reshaping, and visualizing data. 30+ examples tested on Python 3.11 + pandas 2.x.
Wireshark Tutorial for Network Analysis & Troubleshooting
Free, hands-on Wireshark tutorial covering capture, filters, decryption, TCP/UDP analysis, TLS/IPsec inspection, and real-world troubleshooting. 35+ packet-level examples with sample .pcap files included.
SQL Tutorial for Beginners (Hands-On with Real Examples)
Free, complete SQL tutorial - SELECT, INSERT, UPDATE, DELETE, all JOIN types, GROUP BY, aggregate and window functions, constraints, stored procedures, transactions, and date/time/string functions. 85+ runnable lessons …
Kubernetes SecurityContext Explained with Practical YAML Examples
Learn Kubernetes SecurityContext with practical YAML examples for runAsUser, fsGroup, Linux capabilities, privileged containers, readOnlyRootFilesystem, and Kubernetes security hardening best practices.
Kubernetes Sidecar Pattern Explained with Real Examples (Multi-Container Pod YAML)
Learn how Kubernetes sidecar containers work with practical multi-container Pod examples. Understand shared volumes, shared network namespaces, logging sidecars, YAML configuration, and common real-world sidecar use …
Bash String to Array (Split by Space, Delimiter, Newline + mapfile Examples)
Learn how to convert string to array in Bash using read -ra, IFS delimiters, and mapfile. Includes examples for splitting by space, comma, newline, multiple delimiters, and handling edge cases safely.
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.
Golang Read File (Line by Line, Entire File, Large Files Explained)
Learn how to read files in Golang using os.ReadFile, bufio.Scanner, and bufio.Reader. This guide covers reading entire files, line-by-line processing, handling large files efficiently, and common errors with practical …
Read File in Golang with Timeout (Handle Large Files, Scanner Errors & Real Examples)
Learn how to read files in Golang with timeout handling using select, time.After, and context.WithTimeout. This guide covers reading files line by line, in chunks, handling large files, fixing bufio.Scanner errors, and …
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 …
Pytest Logging Explained (Set Log Level, Show Logs, caplog, Fix Issues)
Learn how to configure and use pytest logging effectively. This guide covers setting log levels, enabling live logs, using log_cli and caplog, fixing logs not showing, logging to file, and advanced configurations. …
Python Set add() Explained (Add Elements, Multiple Items, Common Mistakes)
Learn how to add elements to a set in Python using add() and update() methods. This guide covers adding single and multiple elements, handling duplicates, common mistakes like append() and insert(), and real-world use …
Python Compare Strings (==, Ignore Case, Substring, Examples)
Learn how to compare strings in Python with practical examples. This guide covers string equality, case-insensitive comparison, substring matching, lexicographic comparison, character-by-character comparison, and …
How to Rename File or Directory in Git (git mv Explained)
Learn how to rename a file or directory in Git using git mv and other methods. This guide covers renaming files, folders, and directories with practical examples, preserving history, handling case sensitivity issues, and …

