Kustomize
Kustomize é uma ferramenta de personalização de configuração do Kubernetes que permite que você personalize arquivos YAML brutos e sem templates, deixando a configuração original intocada.
Como funciona
O Kustomize funciona com um arquivo kustomization.yaml que define como personalizar os recursos do Kubernetes. Este arquivo pode:
- Adicionar um namespace a todos os recursos.
- Adicionar um prefixo ou sufixo aos nomes dos recursos.
- Adicionar labels ou anotações a todos os recursos.
- Mesclar patches com recursos existentes.
Exemplo
Suponha que você tenha um deployment.yaml e um service.yaml para uma aplicação.
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
service.yaml
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
selector:
app: my-app
ports:
- port: 80
Agora, crie um arquivo kustomization.yaml para personalizar esses recursos para um ambiente de produção:
kustomization.yaml
resources:
- deployment.yaml
- service.yaml
namePrefix: prod-
commonLabels:
env: prod
patchesStrategicMerge:
- |
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 5
Para gerar os recursos personalizados, execute o comando kubectl kustomize:
kubectl kustomize .
Isso irá gerar os recursos com o prefixo prod-, o label env: prod e o número de réplicas do deployment aumentado para 5.