---
tags:
- k8s
- l1
- flashcard-deck
- k8s-operators
---
<!-- wiki:breadcrumb:start -->
[Portal](../../../../library/portal/index.md) | **Level:** [L1: Foundations](../../../../library/portal/levels.md) | **Topics:** [Kubernetes Operators](../../../../library/portal/topics.md) | **Domain:** Kubernetes
<!-- wiki:breadcrumb:end -->

id	category	difficulty	tags	question	answer	source_path
k8s-operators/a1c2e3f4a5b6	k8s-operators	easy	k8s-operators, crd, kubernetes	What does a CRD (Custom Resource Definition) do in Kubernetes?	A CRD extends the Kubernetes API with your own resource types. After creating a CRD, you can use kubectl to get, describe, and manage your custom resources just like built-in resources such as pods or services.\n\nRemember: CRD extends the K8s API. After registering: `kubectl get myresource` works.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/b2d3f4a5b6c7	k8s-operators	easy	k8s-operators, controller, reconciliation	What is the reconciliation loop in a Kubernetes operator?	A control loop where the controller: 1) watches for changes to custom resources, 2) compares desired state (CR spec) with actual state (cluster), 3) creates/updates/deletes resources to match desired state, 4) updates CR status, and 5) repeats.\n\nRemember: Operator = custom controller + CRD. Encodes ops knowledge as code. "Robot SRE."\n\nExample: PostgreSQL Operator handles failover, backups, scaling — automating DBA tasks.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/c3e4a5b6c7d8	k8s-operators	easy	k8s-operators, definition	What is a Kubernetes operator and what problem does it solve?	An operator is a controller that watches custom resources and reconciles actual state to desired state. It encodes operational knowledge (scaling, backup, failover) into software, replacing manual runbooks with automated lifecycle management.\n\nRemember: Operator = custom controller + CRD. Encodes ops knowledge as code. "Robot SRE."\n\nExample: PostgreSQL Operator handles failover, backups, scaling — automating DBA tasks.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/d4f5b6c7d8e9	k8s-operators	medium	k8s-operators, frameworks	Name three operator-building frameworks and when you would choose each.	Kubebuilder (Go, production operators), Operator SDK (Go/Ansible/Helm, Red Hat ecosystem), and Kopf (Python, quick prototypes or Python shops). Kubebuilder and Operator SDK are for production use; Kopf is for lower complexity and faster development.\n\nRemember: Operator SDK: Helm (easy), Ansible (medium), Go (powerful). Choose by complexity.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/e5a6c7d8e9f0	k8s-operators	medium	k8s-operators, maturity-model	What are the five levels of the operator maturity model?	Level 1: Basic install (Helm wrapper). Level 2: Seamless upgrades (rolling updates, version migration). Level 3: Full lifecycle (backup, restore, scaling). Level 4: Deep insights (metrics, alerts, log analysis). Level 5: Auto-pilot (auto-scaling, auto-tuning, self-healing).\n\nRemember: Operator = custom controller + CRD. Encodes ops knowledge as code. "Robot SRE."\n\nExample: PostgreSQL Operator handles failover, backups, scaling — automating DBA tasks.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/f6b7d8e9f0a1	k8s-operators	medium	k8s-operators, owner-references	Why should an operator set owner references on child resources it creates?	Owner references enable Kubernetes garbage collection. When the parent custom resource is deleted, Kubernetes automatically deletes all child resources that have owner references pointing to it. Without owner references, child resources become orphaned.\n\nRemember: Operators follow watch→diff→act. Reconcile custom resources like built-in controllers.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/07c8e9f0a1b2	k8s-operators	medium	k8s-operators, finalizers	What are finalizers in the context of Kubernetes operators, and why are they needed?	Finalizers let an operator run cleanup logic before a CR is deleted. When deletion is requested, the operator detects the deletion timestamp, runs cleanup (e.g., take a final backup), removes the finalizer, and then Kubernetes completes the deletion. Without finalizers, external resources may be left behind.\n\nRemember: Operator = custom controller + CRD. Encodes ops knowledge as code. "Robot SRE."\n\nExample: PostgreSQL Operator handles failover, backups, scaling — automating DBA tasks.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/18d9f0a1b2c3	k8s-operators	hard	k8s-operators, reconciliation, go	In a Go-based operator using Kubebuilder, what does returning ctrl.Result{RequeueAfter: 30 * time.Second} from the Reconcile function do?	It tells the controller to re-run reconciliation for this resource after 30 seconds, even if no changes are detected. This is useful for polling external state or ensuring periodic consistency checks. Without a bounded requeue, the operator only reconciles on watch events.\n\nRemember: Operator = custom controller + CRD. Encodes ops knowledge as code. "Robot SRE."\n\nExample: PostgreSQL Operator handles failover, backups, scaling — automating DBA tasks.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/29e0a1b2c3d4	k8s-operators	hard	k8s-operators, status-subresource	Why should operators use the status subresource for status updates instead of updating the entire CR?	The status subresource allows updating status independently from spec, preventing conflicts where a status update could overwrite spec changes made by users. It also enables RBAC separation so controllers can update status without permission to modify spec.\n\nRemember: Operators follow watch→diff→act. Reconcile custom resources like built-in controllers.	training/library/topics/k8s-ecosystem/primer.md
k8s-operators/3af1b2c3d4e5	k8s-operators	hard	k8s-operators, idempotency, pitfalls	Why must the Reconcile function in a Kubernetes operator be idempotent?	The reconciliation loop may be called multiple times for the same state due to watch events, requeues, or controller restarts. If Reconcile is not idempotent, it may create duplicate resources, send duplicate notifications, or produce inconsistent state. Every reconciliation must produce the same result regardless of how many times it runs.\n\nRemember: Operators follow watch→diff→act. Reconcile custom resources like built-in controllers.	training/library/topics/k8s-ecosystem/primer.md

<!-- wiki:related:start -->
---

## Wiki Navigation

### Related Content

- [K8s Ecosystem](../../../../library/topics/k8s-ecosystem/index.md) (Topic Pack, L0) — Kubernetes Operators

<!-- wiki:related:end -->
