# Awesome Kustomize

> A curated and collaborative list of awesome Kustomize resources.

Kustomize introduces a template-free way to customize Kubernetes manifests. It’s extensible and uses a purely declarative approach to configuration customization, which will help you efficiently manage your Infrastructure as a code (IaC).

Contributions are welcome, add links through pull requests or create an issue to start a discussion.

Push it forward and add the project badge in your repo to support the community! ⭐

Markdown:

    [![Awesome Kustomize](https://devopshive.com/badges/awesome-kustomize.svg)](https://github.com/DevOpsHiveHQ/awesome-kustomize)

Preview:

## Contents

- Overview
- Plugins
  - Generators
  - Transformers
  - Validators
- Guides
  - Novice
  - Intermediate
  - Advanced
  - Tips & Tricks
- Misc
- Related lists

## Overview

Kustomize works as a standalone binary; also, it’s built into `kubectl` (since v1.14). It can be used with off-the-shelf applications like Helm charts. Also, it has a deep integration with different GitOps tools like ArgoCD, Flux, and many others.

## Plugins

Kustomize has 3 types of plugins `generator`, `transformer`, and `validator`.

> Note

> If you are a plugin developer, it’s highly recommended to support the new plugins standard KRM function.

### Generators

- Secretize - Generating Kubernetes Secret from various sources. It’s like a swiss army knife, but for Kubernetes secrets (Exec).
- SopsSecretGenerator - Generating Secrets from sops-encrypted files (Exec, Exec KRM).
- KSops - Generating Secrets from sops-encrypted files (Exec).
- PolicyGenerator - Generating Open Cluster Management policies (Exec).
- KRMFfnBuiltin - Running builtin generators transformers (Exec).
- Merger - Generating manifests seamlessly by extending Kustomize merge strategies using schemaless StrategicMerge (Containerized KRM, Exec KRM).

### Transformers

- HelmValuesTransformer - Transforming values in HelmRelease CustomResource. It helps to manage a lot of HelmRelease’s value in single transformer file (Exec).
- TemplateTransformer - Providing a set of KRM Functions to run builtin transformers in place (Containerized KRM, Exec KRM).

### Validators

- KubeconformValidator - Validating Kubernetes manifests using embedded Kubeconform (Containerized KRM, Exec KRM).

## Guides

Kustomize guides based on their level or type like 📰 Article, 📺 Video, 🧪 Lab.

### Novice

- 📰 Declarative Management of Kubernetes Objects Using Kustomize - The official Kubernetes documentation task for Kustomize.
- 📰 Configure Kubernetes with Kustomize - A guide helps to get started with Kustomize, understand its intended use cases, and find resources for using it with other Google Cloud tools.
- 📺 Organizing the YAML mess with Kustomize - A talk shows how Kustomize could help to manage Kubernetes YAML files with a growing number of services and environments.
- 📺 Kustomize: Deploy Your App with Template Free YAML - A talk introduces Kustomize, a declarative application management system, that allows deployments to be described as template free YAML.

### Intermediate

- 🧪 ArgoCD GitOps Tutorial - Working with Kustomize - A hands-on lab covers using Kustomize in GitOps and it goes through the Kustomize syntax and deploying a Kustomized application.
- 📰 3 ways to customize off-the-shelf Helm charts with Kustomize - A guide covers 3 different ways to use Kustomize and Helm together.
- 📰 Using Kustomize Components with Cluster API - A clear use case of using Kustomize Components.

### Advanced

- 📰 Advanced Kustomize features - A guide covers more than 5 advanced Kustomize capabilities.
- 📰 Set OpenAPI patch strategy for Kubernetes Custom Resources - A guide shows how to provide schema to control the patch strategy of the CRDs.
- 📺 Customizing Kustomize with Client-Side Custom Resources - A talk covers extending Kustomize via plugins to address common yet idiosyncratic application needs.
- 📺 Own your YAML: extending Kustomize via Plugins - A talk shows how to create custom resources using Kustomize external plugins.
- 📰 Kustomize Enhancement with KRM Functions - A detailed guide covers KRM concept and how to use it in Kustomize plugins.

### Tips & Tricks

- 📰 Delete a manifest from a Kustomize base - A handy way to delete named manifest using Kustomize patch.
- 📰 Apply Kustomize builtin transformers on a single resource - A way to use internal transformers on specific resources.
- 📰 Pass extra data to the Containerized KRM function - Different cases of share data with Containerized KRM function.

## Misc

- Asdf-kustomize - Kustomize plugin for asdf version manager.

## Related lists

- Awesome Kubernetes - A curated list of awesome Kubernetes resources.
- Awesome Kubectl plugins - A curated list of awesome Kubectl plugins.
- Awesome Helm - A curated list of awesome Helm charts and resources.

kustomize.md Github