Kustomize offers a template-free way to customize Kubernetes application configuration. It achieves that by combining plain Kubernetes resource files with some clever tools that ease managing things as labels, annotations, ConfigMaps or Secrets.

  • Purely declarative approach to configuration customization

  • Natively built into kubectl

  • Manage an arbitrary number of distinctly customized Kubernetes configurations

  • Available as a standalone binary for extension and integration into other services

  • Every artifact that kustomize uses is plain YAML and can be validated and processed as such

  • Kustomize encourages a fork/modify/rebase workflow

It is actually possible to apply configuration changes to an existing Helm chart, using Kustomize (see https://testingclouds.wordpress.com/2018/07/20/844/).

Why do we adopt this technology?

Kustomize offers a solution that is far more simple and easier to understand and maintain compared to Helm. Its specialized tools for managing labels, annotations, Secrets and ConfigMaps significantly ease the effort to create and maintain them. And since there's no templating involved, errors are easy to spot and your IDE can actually assist you.