Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

freeCodeCamp

Build Your Own Kubernetes Operators with Go and Kubebuilder - Full Course

via freeCodeCamp

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Learn to extend Kubernetes by building custom operators and controllers from scratch using Go and the Kubebuilder framework in this comprehensive 6-hour hands-on course. Master the fundamental concepts of controllers, including the observe-compare-act loop, idempotency, and reconcile loop patterns while exploring Kubernetes as a Software Development Kit (SDK). Discover how to create Custom Resource Definitions (CRDs) and Custom Resources (CRs), understand the internal architecture of Informers, Caches, and WorkQueues, and implement advanced concepts like Finalizers for cleanup logic. Build a real-world operator that manages AWS EC2 instances directly from Kubernetes, integrating the AWS SDK in Go and implementing waiters for instance state management. Explore the Manager architecture and Controller-Runtime, set up local development environments with K3D and Docker, and learn to package operators with Helm for deployment. Cover essential topics including RBAC and Service Accounts, Internal Developer Platforms (IDP), Platform Engineering concepts, and advanced reconciler loop internals. Gain practical experience with Kubebuilder scaffolding, project initialization, API creation, and deploying operators to Kubernetes clusters while understanding networking, storage, and admission controllers within the Kubernetes ecosystem.

Syllabus

- Introduction & Prerequisites
- What is a Controller? The Observe-Compare-Act Loop
- Idempotency in Controllers
- Deep Dive: The Reconcile Loop Happy Path, Sad Path, & Error Handling
- The Foundation of Writing Operators
- What is an Operator? The "Helper" Analogy
- CRDs Custom Resource Definitions and CRs Custom Resources
- Kubernetes as an SDK & Extensibility
- Networking, Storage, & Admission Controllers
- Internal Developer Platforms IDP & Platform Engineering
- Bootstrapping with Kubebuilder
- Setting up the Local Environment K3D, Docker
- Introduction to the Kubebuilder Framework
- Project Initialization kubebuilder init
- Exploring Scaffolding Makefiles, Dockerfiles, main.go
- Creating your first API kubebuilder create api
- Defining EC2 Instance Types & Specs in Go
- Understanding TypeMeta and ObjectMeta
- Internal Controller Logic Breakdown
- Deep Dive: Manager Architecture & Controller-Runtime
- Cert Watchers, Health Checks, & Prometheus Metrics
- Initializing the Manager in main.go
- Implementing the Reconcile Loop Logic
- Custom Resource Definitions CRDs in Action
- Running the Operator Locally
- AWS SDK Integration in Go
- Using Finalizers for Cleanup Logic
- Creating EC2 Instances on AWS via the Operator
- Implementing Waiters for Instance State Running/Terminated
- Idempotency & Reconciler Loop Internals
- How Informers, Caches, and WorkQueues Work
- Handling Object Deletion & Timestamps
- Packaging the Operator with Helm
- Deploying to Kubernetes RBAC & Service Accounts
- Conclusion & Future Steps

Taught by

freeCodeCamp.org

Reviews

Start your review of Build Your Own Kubernetes Operators with Go and Kubebuilder - Full Course

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.