Skip to content

Plik kustomization.yaml

Jest to plik konfiguracyjny definiujący, w jaki sposób Kustomize składa i modyfikuje manifesty Kubernetes w danym katalogu. Zawiera on metadane (nazwy, labele, obrazy kontenerów), listę używanych zasobów (resource).

Resource jest to lista używanych manifestów, np.:

resources:
    - nginx-deployment.yaml
    - nginx-service.yaml

Przykładowa definicja prostego pliku kustomize.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - db/db-config.yaml
  - db/db-deployment.yaml
  - db/db-service.yaml
  - nginx/nginx-deployment.yaml

Przykładowa definicja kustomize.yaml dla sekcji prod

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

# Co bierzemy jako bazę
resources:
  - ../../base

# Jak zmieniamy nazwy zasobów
namePrefix: prod-

# Wspólne metadane dla wszystkich zasobów
commonLabels:
  env: prod
  app: myapp

commonAnnotations:
  owner: platform-team

# Zmiana obrazów kontenerów
images:
  - name: myapp
    newName: registry.example.com/myapp
    newTag: "1.3.0"

# Patche – konkretne zmiany w zasobach
patchesStrategicMerge:
  - patch-deployment.yaml
  - patch-ingress.yaml

# Generatory – zasoby tworzone dynamicznie
configMapGenerator:
  - name: app-config
    files:
      - application-prod.yaml

secretGenerator:
  - name: db-credentials
    envs:
      - secrets.env

# Kontrola nazw generowanych zasobów
generatorOptions:
  disableNameSuffixHash: true