- Introduction
- Kubernetes Resource Modeling
- 1. What is a Kubernetes Resource Model?
- 2. KRM in Practice
- 3. Engineering Principles
- 3.1. Encapsulation and Separation of Concerns
- 3.2. Control Plane vs Data Plane
- 3.3. Declarative APIs
- 3.4. Kubernetes APIs
- 4. Implementation Tools
- 4.1. Custom Resource Definitions
- 4.2. Kubernetes Concepts
- 4.2.1. Resource Contracts
- 4.2.2. Clientsets
- 4.2.3. Listers, Informers, and Clients
- 4.2.4. Work Queues
- 4.3. Reconciliation Frameworks
- 5. Modeling
- 5.1. Providing Spec and Status
- 5.2. Information Passing
- 5.3. Layered Models
- 5.4. Isolation and Role Separation
- 5.5. Extendability and Providers
- 6. Integration
- 6.1. Testing
- 6.2. Avoiding Tight Coupling
- 6.3. Delegation
- 6.4. Dependencies and Injection
- 7. Duck Typing
- 7.1. Common Model Shapes
- 7.1.1. Reading
- 7.1.2. Mutating
- 7.2. Implementation Providers
- 7.3. Abstract References
- 7.4. Current Compromises
- 8. Platform Building
- 8.1. Iaas, PaaS, SaaS
- 8.2. Building the Application around the Model
- 9. Beyond Kuberenetes