# D2DO282: Simplifying Complex Kubernetes Deployments With kro Page: https://stenobird.com/podcast/day-two-devops/d2do282-simplifying-complex-kubernetes-deployments-with-kro Text version: https://stenobird.com/podcast/day-two-devops/d2do282-simplifying-complex-kubernetes-deployments-with-kro.md Podcast: [Day Two DevOps](https://stenobird.com/podcast/day-two-devops) Published: 2025-09-10T20:16:51+00:00 Episode link: https://packetpushers.net/podcasts/day-two-devops/d2do282-simplifying-complex-kubernetes-deployments-with-kro/ Audio file: https://feeds.packetpushers.net/link/20975/17141385/D2DO282b.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/day-two-devops/episodes/d2do282-simplifying-complex-kubernetes-deployments-with-kro Duration seconds: 1816 ## Resource Kro (Kube Resource Operator) enables developers to create high-level Kubernetes abstractions and custom APIs without writing complex Go controllers. This tool simplifies multi-resource deployments by managing lifecycles and dependencies using simple YAML and CEL expressions. ## Highlights - Main idea: Kro allows for the creation of custom APIs and high-level abstractions to hide Kubernetes complexity from developers - Practical takeaway: Use CEL (Common Expression Language) within Kro to pass values between dependent resources at the server side - Failure mode: Avoid using Kro in critical production environments for now, as the project is still under active development and APIs are being solidified - Key feature: Kro supports a 'graph of graphs' pattern, allowing resource graph definitions to reference and reuse other existing graphs - Operational benefit: The operator implements a reconciliation loop that detects drift and self-heals resources to maintain the desired state ## Topics Kubernetes, Kro, DevOps, Cloud Native, Infrastructure as Code, Custom Resource Definitions, Automation, AWS ## Chapters - 1:00 — The Vision for Kro: An introduction to the Kro project and the design philosophy behind its branding and purpose. - 3:10 — Simplifying Custom Controllers: How Kro replaces the heavy implementation effort of writing custom controllers and CRDs with a simpler approach. - 5:25 — Handling Resource Dependencies: Using server-side logic to feed values from one resource to another during deployment. - 7:45 — Declarative Templates with CEL: Leveraging Common Expression Language to define resource templates and custom APIs via YAML. - 9:50 — The Power of YAML-based Logic: Implementing complex resource graphs and interfaces without writing Go code. - 12:00 — Drift Detection and Self-Healing: How Kro monitors the cluster state to revert unauthorized changes and maintain consistency. - 14:25 — Reusability and Resource Graphs: Building modular infrastructure by referencing existing resource graphs within larger deployments. - 16:35 — Kubernetes Observability Patterns: Comparing Kro's reconciliation capabilities to other tools like ArgoCD. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/day-two-devops/episodes/d2do282-simplifying-complex-kubernetes-deployments-with-kro/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/day-two-devops/d2do282-simplifying-complex-kubernetes-deployments-with-kro.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.