In this lesson, you will learn how to use Kustomize transformers to modify Kubernetes configurations. Kustomize supports several built-in transformers, and you can also create custom ones. Here, we focus on a subgroup known as Common Transformers. Imagine you have multiple YAML files such as deployment.yaml and service.yaml. You might want to apply a common configuration—for example, adding a label like “org: KodeKloud” or appending “-dev” to resource names—across all these files. Manually updating each file in a production environment isn’t scalable or efficient. Kustomize transformers offer a systematic way to make consistent changes across all resources. Below are the original Kubernetes resource examples:Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
Kustomize transformers are essential for ensuring that your Kubernetes configurations remain consistent and manageable across various environments.
Common Transformation Methods
Below is an overview of common transformations available in Kustomize for managing Kubernetes resources:1. Common Label Transformation
This transformer automatically adds the specified labels to all Kubernetes resources. You can define the labels in yourkustomization.yaml file as shown below:
2. Namespace Transformation
The namespace transformer assigns all Kubernetes resources to a specified namespace. By specifying the namespace in yourkustomization.yaml, all resources will be modified accordingly. For example:
When applying namespace transformations, ensure that the specified namespace exists in your cluster to avoid deployment issues.
3. Name Prefix and Suffix Transformation
This transformer enables you to systematically add a prefix or suffix to resource names. For instance, to prepend “KodeKloud-” and append “-dev” to each resource name, include the following in yourkustomization.yaml:
4. Common Annotation Transformation
If you need to add specific annotations to all resources, use the common annotations transformer. By setting the annotations in yourkustomization.yaml, each resource will automatically include them. For example:
Summary
The common transformations available in Kustomize include:| Transformation Type | Purpose |
|---|---|
| Common Label Transformation | Adds specified labels (e.g., org: KodeKloud) to all resources |
| Namespace Transformation | Assigns a specific namespace to all resources |
| Name Prefix and Suffix | Adds predetermined prefixes and suffixes to resource names |
| Common Annotation Transformation | Appends specific annotations (e.g., branch: master) to resources |
