Eating Your Vegetables: How to Manage 2.5 Million Lines of YAML

Daniel Thomson, Jesse Suen at KubeCon + CloudNativeCon North America 2020

Configuration management, while overlooked and underappreciated, is a necessary component of a healthy Kubernetes diet. With over 200 clusters, 2500 git repositories, and 9000 namespaces, Intuit manages and deploys 2.5 million lines of Kubernetes configuration using GitOps. To handle this scale, over the years Intuit has experimented with different config management approaches including templating (Helm), overlays (Kustomize), codifying and abstracting (jsonnet, cdk8s), ultimately settling on Kustomize. Kustomize’s remote base capabilities allow our central team to define and distribute standard patterns and templates, while still allowing developers to overlay last-mile customizations on these templates. This session will explain our journey, hard lessons faced for managing YAML at scale, and where Intuit thinks the future of Kubernetes configuration management needs to head.