learn-krm
learn-krm copied to clipboard
🔄 Resources to learn about the Kubernetes Resource Model!
🔁 Learn KRM!
KRM = the Kubernetes Resource Model
☸️ What is KRM?
- Concepts - What is Kubernetes? - kubernetes.io
- Concepts - Kubernetes Components - kubernetes.io
- Concepts - Understanding Kubernetes Objects - kubernetes.io
- Concepts - Configuration Best Practices - kubernetes.io
🔎 Why adopt KRM?
- Blog post - “Why is Kubernetes getting so popular?” - Ricardo Aravena, StackOverflow
- Blog post - “Kubernetes Design and Development Explained” - Saad Ali, TheNewStack
- Blog post - “I do declare! Infrastructure automation with Configuration as Data” - Kelsey Hightower and Marc Balch, Google Cloud
- Blog post - “How GitOps and the KRM make multi-cloud less scary” - Richard Seroter, Google Cloud
- Video - Cloud Native Resource Management @ GCP Next ‘19 - Gregg Donovan, Michael Kibbe, Sonam Saxena (Google)
💻 Tools
- VSCode - YAML extension
- Google Cloud Code - Deploy Kubernetes YAML directly from an IDE
- kustomize: “kustomize lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is.”
- kpt: “a toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files”
- ConfigSync (Google Cloud) - sync KRM from Git repositories to GKE clusters
- Azure Service Operator for Kubernetes: “helps you provision Azure resources and connect your applications to them from within Kubernetes.”
- Google Cloud Config Connector: “a Kubernetes addon that allows you to manage Google Cloud resources through Kubernetes.”
- AWS Controllers for Kubernetes: “lets you define and use AWS service resources directly from Kubernetes.”
- OpenPolicyAgent: “an open source, general-purpose policy engine that unifies policy enforcement across the stack.” (see also: Gatekeeper)
- PolicyController (Google Cloud) - managed OPA Gatekeeper GKE Admission Controller (only allow compliant KRM into the cluster)
- gcloud resource-config bulk-export - export live Google Cloud object state to KRM files, for declarative management
- Crossplane - Open-source Kubernetes add-on for administering multi-cloud resources with KRM.
🛠 How-tos
- Blog Post - Introduction to YAML- Creating a Kubernetes deployment - Nick Chase, Mirantis
- Tutorial - Declarative Management of Kubernetes Objects Using Configuration Files - kubernetes.io
- KubeBuilder book - What is a Resource?
- Managing Resources - kubernetes.io
- Blog post - How To Manage Your Kubernetes Configurations with Kustomize - Jason Simmons, DigitalOcean
- Google Cloud Code - Working with Google Cloud Platform and Kubernetes YAML
- Solution Guide - Safe Rollouts with Anthos Config Management - Google Cloud
- Solution Guide - Best practices for policy management with Anthos Config Management and GitLab - Google Cloud
- Solution Guide - Validating apps against company policies in a CI pipeline - Google Cloud
- Solution Guide - Managing cloud infrastructure using kpt - Google Cloud
- Video - Using Source Code Management Patterns To Configure And Secure Your Kubernetes Clusters - Giovanni Galloro, Google
🌊 Deep Dives
- Extending the Kubernetes API with Custom Resources - kubernetes.io
- What is a Kubernetes operator? - RedHat
- Twitter - Kubernetes/Borg/Omega history + KRM - Brian Grant, Google
- GitHub - Architecture - the Kubernetes Resource Model - Brian Grant, Google
- GitHub - Declarative Application Management in Kubernetes - Brian Grant, Google