Files
kustomize/README.md
Jeffrey Regan 5a54c96203 update readmes
2018-05-24 14:13:10 -07:00

3.7 KiB

kustomize

kustomize lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is.

kustomize targets kubernetes; it understands and can patch kubernetes style API objects. It's like make, in that what it does is declared in a file, and it's like sed, in that it emits editted text.

Build Status Go Report Card

Installation: Download a binary from the release page, or see these installation alternatives.

Be sure to try one of the tested demos.

Usage

Make a base

In some directory containing your YAML resource files (deployments, services, configmaps, etc.), create a kustomization file.

This file should declare those resources, and any common customization to apply to them, e.g. add a common label.

base image

File structure:

~/yourApp
└── base
    ├── deployment.yaml
    ├── kustomization.yaml
    └── service.yaml

This is your base. The resources in it could be a fork of someone else's configuration. If so, you can easily rebase from the source material to capture improvements, because you don't modify the resources directly.

Generate customized YAML with:

kustomize build ~/yourApp/base

The YAML can be directly applied to a cluster:

kustomize build ~/yourApp/base | kubectl apply -f -

Create variants of a common base using overlays

Manage traditional variants of a configuration like development, staging and production using overlays.

overlay image

File structure:

~/yourApp
├── base
│   ├── deployment.yaml
│   ├── kustomization.yaml
│   └── service.yaml
└── overlays
    ├── development
    │   ├── cpu_count.yaml
    │   ├── kustomization.yaml
    │   └── replica_count.yaml
    └── production
        ├── cpu_count.yaml
        ├── kustomization.yaml
        └── replica_count.yaml

Store your overlays in your own repository. On disk, the overlay can reference a base in a sibling directory. This avoids trouble with nesting git repositories.

Generate YAML with

kustomize build ~/yourApp/overlays/production

The YAML can be directly applied to a cluster:

kustomize build ~/yourApp/overlays/production | kubectl apply -f -

About

This tool is sponsored by sig-cli (KEP).