Developer Tooling for Kubernetes Configuration
summary
Extracts Kubernetes OpenAPI JSON schemas into per-version files (about 25,000 files totalling ~750,000 lines) and uses them to validate YAML client-side with a CLI called kubeval. Adds an assertions-based test runner written in embedded Starlark called kubetest to express rules like “no latest tags” or required team labels. Tools run locally or in CI, validate across Kubernetes versions, hook into Helm/Jsonnet outputs, and are already used successfully by several teams.
AI-written summary · about
chapters (24)
- 0:00Intro
- 6:01Relevant discussion in the App Def Working Group
- 7:49Is this a valid Kubernetes configuration file?
- 8:25Is this Helm template valid for Kubernetes?
- 8:59Is this Puppet code valid for kubemetes?
- 11:07Kubernetes JSON Schema
- 11:47That's a lot of JSON
- 12:28OpenShift JSON Schema
- 12:40Validate directly using the schemas
- 14:28A nice CLI for validating KBS configurations
- 14:50Validate YAML files on the command line
- 15:29Validate against multiple versions of Kubernetes
- 19:06Introducing kubetest
- 19:42Run tests against your configurations
- 20:12Tests are written in Skylark
- 22:13Example tests for kubetest
- 23:49Tests enforcing a team label
- 26:38Using kubeval with Helm
- 28:35Tests for our Helm Chart
- 28:54Using kubeval with ksonnet
- 30:05Using kubetest with ksonnet
- 30:34Using kubeval with Puppet
- 31:31Using kubeval and kubetest in CI
- 33:18The Configuration Complexity Clock is real
related talks
45mKubernetes Operability Tooling
20mConformance Testing the Kubernetes API: Tooling that Makes the Difference
47mKubernetes Day 3: The State of Kubernetes Development Tooling
43mKubernetes Operability Tooling
27mBuilding Applications to Increase Kubernetes Adoption, and Make Life Easier
29mDeploy With Confidence: Pre-Deployment Tasks and Manifests Management
44mTesting Service Mesh configs & k8s manifests
36mHow to make Kubernetes rhyme with prod readiness - Tiffany Jernigan and Matthias Haeussler
