Free Online Course · Self-paced
Kubernetes Operator Tutorial - Build Production-Ready Operators
Free Kubernetes Operator course with hands-on lessons from core concepts through production Go, Helm, and hybrid operators—plus observability, security, CI/CD, and OLM packaging. Built on controller-runtime, Kubebuilder, and Operator SDK; examples run on kind or Minikube. Use the syllabus below or the series sidebar to jump to any topic.
- 45 parts
- ~666 min total
- Intermediate to Advanced
- Updated Jun 2026
This Kubernetes Operator tutorial takes you from the reconcile loop and Custom Resource Definitions all the way to production-grade Go, Helm, and hybrid operators with testing, admission webhooks, Prometheus metrics, upgrades, and packaging. Across 45 lessons in 15 chapters, every example is built on the standard stack — controller-runtime, kubebuilder, and Operator SDK — and tested on real kind and Minikube clusters.
The syllabus below matches the left sidebar on every lesson in this series: foundations, CRDs and API evolution, admission and controller internals, reconciliation and apply patterns, day-two operations (troubleshooting, health, metrics, tracing), security, configuration, Go and Helm operator tracks, CI/CD, OLM, and hybrid workflows. Open any section that matches the work you have in front of you—lessons are written to stand alone when you already meet their prerequisites.
If you are new to Operators, follow the syllabus from the top. If you already know the basics, skip straight to the topic you need.
Click Start the course to begin with "What is a Kubernetes Operator?", or use the syllabus to open any lesson directly.
What you'll learn
- Understand the Operator pattern end-to-end - reconcile loop, CRDs, design patterns, maturity model
- Write CRDs with OpenAPI v3 validation, CEL rules, status subresource, conversion webhooks, and admission webhooks
- Implement controllers with controller-runtime - watches, predicates, finalizers, owner references, SSA
- Apply production patterns - RBAC scoping, leader election, multi-tenancy, Prometheus metrics, health probes
- Build a Go-based Operator end to end with testing, packaging, upgrades, and troubleshooting
- Choose between Helm-based, Go-based, and hybrid Operator approaches with full working examples
- Package and ship to OperatorHub with an OLM bundle that targets a clear capability level
- Plan brownfield cutover from plain Helm to a Helm-based operator without duplicate releases
- Add OpenTelemetry tracing for reconcile paths without tracing every cache read
- Use CEL in CRDs for cross-field, immutability, and transition rules without webhooks
- Tune controller-runtime concurrency, REST QPS, cache reads, and predicates for large clusters
- Harden operator Deployments with pod security, NetworkPolicy egress, and image digest pinning
- Structure reconciler unit tests with Ginkgo, Gomega, and the fake client before envtest or kind
Prerequisites
- Comfortable with Kubernetes basics - pods, deployments, services, kubectl, YAML
- A workstation that can run kind / Minikube (8 GB RAM minimum, 16 GB recommended)
- Working knowledge of Go (for the controller-runtime and Operator SDK chapters)
- Familiarity with Helm (for the Helm-based and hybrid Operator chapters)
Syllabus
15 chapters · 45 lessons · ~666 min of reading
-
1 Operator Foundations 6 lessons
- Part 1 What is a Kubernetes Operator? 12 min read
- Part 2 Kubernetes Operator vs Controller vs CRD 10 min read
- Part 3 Desired state vs actual state (level-triggered model) 11 min read
- Part 4 The Kubernetes reconcile loop explained 15 min read
- Part 5 Operator design patterns - Singleton, Capability, Lifecycle, Auto-Pilot 16 min read
- Part 6 Operator capability levels I-V (maturity model) 16 min read
-
3 Admission webhooks 1 lesson
-
4 controller-runtime Internals 7 lessons
- Part 11 controller-runtime architecture - Manager, Cache, Informer, Workqueue 12 min read
- Part 12 Performance tuning - concurrency, client QPS, cache, predicates, APF 8 min read
- Part 13 Watches, events, and predicates 14 min read
- Part 14 Requeue, RequeueAfter, and error handling in controller-runtime 10 min read
- Part 15 Status subresource and conditions (KEP-1623) 18 min read
- Part 16 Finalizers - two-phase deletion and cleanup 18 min read
- Part 17 Owner references and garbage collection 13 min read
-
5 Reconciliation & apply 5 lessons
- Part 18 Multi-resource reconciliation - managing N child resources per CR 18 min read
- Part 19 Drift detection patterns - periodic resync vs spec diffing 14 min read
- Part 20 Server-Side Apply (SSA) in Kubernetes operators 24 min read
- Part 21 Avoid reconcile loop explosions - predicates, Owns, RequeueAfter 13 min read
- Part 22 Pause and resume patterns - spec, annotations, GitOps 8 min read
-
6 Troubleshooting 1 lesson
-
10 Configuration 1 lesson
-
11 Go-Based Operators 4 lessons
- Part 33 Go Kubernetes Operator SDK tutorial - build a controller from scratch 16 min read
- Part 34 controller-runtime tutorial - status, finalizers, drift, webhooks 19 min read
- Part 35 Testing Kubernetes Operators with envtest, fake client, and kind 17 min read
- Part 36 Unit testing Reconcile with Ginkgo and Gomega - structure and assertions 8 min read
-
13 OLM & OperatorHub 1 lesson
-
14 Helm-Based Operators 4 lessons
- Part 40 Helm-based Operator Part 1 - chart, CRD, watches.yaml 31 min read
- Part 41 Helm-based Operator Part 2 - lifecycle, drift, hooks, scope 30 min read
- Part 42 Migrate a Helm chart to a Helm-based operator - values, cutover, risks 8 min read
- Part 43 Helm-based Operator vs Flux vs Argo CD 10 min read

