Use Kustomize for Manifests

Kustomize is a tool that lets you create customized Kubernetes deployments without modifying underlying YAML configuration files. Since the files remain unchanged, others are able to reuse the same files to build their own customizations. Your customizations are stored in a file called kustomization.yaml. If configuration changes are needed, the underlying YAML files and kustomization.yaml can be updated independently of each other.

To learn more about Kustomize and how to define a kustomization.yaml file, see the following links:

In the context of Spinnaker, Kustomize lets you generate a custom manifest, which can be deployed in a downstream Deploy (Manifest) stage. This manifest is tailored to your requirements and built on existing configurations.

Note that Spinnaker uses the latest non-kubectl version of Kustomize.

Enabling Kustomize in 1.16 (Beta)

Kustomize can be enabled by a feature flag in 1.16.

For Halyard, add the following line to ~/.hal/{DEPLOYMENT_NAME}/profiles/settings-local.js:

window.spinnakerSettings.feature.kustomizeEnabled = true;

Using Kustomize

Kustomize works by running kustomize build against a kustomization.yaml file located in a Git repository. This file defines all of the other files needed by Kustomize to render a fully hydrated manifest.

Select Kustomize as the Render Engine and define the artifact for your kustomization.yaml:

With the Kustomize file defined, configure a Produced Artifact to use the result in a stage downstream. Add an artifact:

Define the artifact:

You can now run your pipeline and get a Kustomize rendered manifest!

Other Templating Engines

In addition to Kustomize, Spinnaker also supports Helm as a templating engine. For more information, see Deploy Helm Charts.