Category

DevOps Tools, CI/CD and Automation Guides

Master DevOps with tutorials on CI/CD pipelines, Kubernetes, Docker, Git, and automation tools used in modern infrastructure.

The DevOps section focuses on automation, CI/CD pipelines, and modern infrastructure management tools.

DevOps combines development and operations to improve software delivery and system reliability. This category includes tutorials on tools like Docker, Kubernetes, Git, and CI/CD workflows.

To strengthen your foundation, also explore Linux and Programming.

283 articles

DevOps category illustration with CI/CD, Docker, and Kubernetes graphics
devops

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 treat your custom kind the same as a built-in Deployment or …

Deepak Prasad13 min read
devops

Operator RBAC Minimum Permissions: ClusterRole, kubebuilder Markers, Audit

A complete guide to designing, generating, and auditing RBAC for Kubernetes operators: how kubebuilder markers generate roles from `+kubebuilder:rbac` comments, the least-privilege principle as it applies to operators, …

Deepak Prasad14 min read
devops

Helm-Based Operator Tutorial Part 2 - Lifecycle, Drift, Hooks, Scope, and the Hard Ceiling

Part 2 of the Helm-based operator tutorial picks up the moment Part 1 ends - you have a deployed operator with a running CR. This guide walks the rest of the pre-built helm plugin (helm.sdk.operatorframework.io/v1) in …

Deepak Prasad30 min read
devops

Kubernetes CRD Version Upgrades with Conversion Webhooks

This step-by-step guide shows how to perform a Kubernetes CRD upgrade from v1alpha1 to v1 with a conversion webhook, using a self-created DemoApp operator. It walks through served and storage version contracts in a …

Deepak Prasad17 min read
devops

How to Avoid Reconcile Loop “Explosions” in Kubernetes Operators

Stop Kubernetes Operator reconcile storms: predicates and generation filters, status-only updates, accidental .spec writes, Owns() fan-out on noisy children, jittered RequeueAfter, workqueue tuning, and why event-style …

Deepak Prasad13 min read
devops

Requeue, RequeueAfter, and Error Handling in controller-runtime

Learn how controller-runtime interprets ctrl.Result, Requeue, RequeueAfter, and returned errors inside Reconcile(). Covers exponential backoff on the workqueue, terminal errors, NotFound and Conflict handling, …

Deepak Prasad10 min read
devops

Git Remote Set-URL: Change Remote Repository URL [Examples]

Learn how to use git remote set-url to change a remote repository URL. Change origin from HTTPS to SSH, add or delete push URLs, rename remotes, and fix the "this repository moved" error, with real tested examples and …

Deepak Prasad8 min read
devops

Git Remove Remote: Remove Origin, Upstream or Any Remote

Learn how to remove a Git remote, remove origin, remove upstream, verify remote removal, fix no such remote errors, and understand when to use remote remove, set-url, rename, or prune.

Steve Alila10 min read
devops

Git Remove File from Tracking Without Deleting It

Learn how to remove a file or folder from Git tracking without deleting it locally. Includes example git rm --cached output, .gitignore behavior, commit cleanup, directory removal, and skip-worktree patterns.

Steve Alila11 min read
devops

Git Push Force Explained: --force vs --force-with-lease [Examples]

Learn how to use git push force safely. Understand git push --force vs --force-with-lease, force push to a remote branch, origin master, and after rebase or amend with real examples.

Deepak Prasad7 min read
devops

Git Reflog Explained: Recover Lost Commits, Reset, Amend & Branches

Learn what git reflog is and how to use it with practical examples. Recover commits after git reset --hard, restore amended commits, recover deleted branches, inspect stash reflog, and understand reflog expiration …

Steve Alila12 min read
devops

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, mutating/validating webhooks, Events, and RBAC markers.

Deepak Prasad19 min read
devops

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, and deploy to kind.

Deepak Prasad16 min read
devops

Server-Side Apply (SSA) in Kubernetes Operators

Server-Side Apply (SSA) is the modern way for operators to express ownership of fields in a Kubernetes object. Instead of doing a full Update with a stale copy of the object, the operator sends only the fields it cares …

Deepak Prasad24 min read
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 Prasad15 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 Prasad15 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 Prasad16 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 Prasad14 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 Prasad18 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 Prasad18 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 Prasad15 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 Prasad16 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 Prasad16 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 Prasad18 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 Prasad18 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 Prasad10 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 Prasad14 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 Prasad11 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 Prasad34 min read
devops

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 …

Deepak Prasad24 min read