resources
Kustomize가 적용할 기본 Kubernetes 리소스 파일들을 지정합니다. 파일 경로를 나열합니다.
resources:
- deployment.yaml
- service.yam
YAML
복사
namePrefix
모든 리소스 이름 앞에 붙일 접두사를 설정합니다. 여러 환경에서 리소스를 구분할 때 유용합니다.
namePrefix: dev-
# 모든 리소스 이름 앞에 dev-가 붙습니다. 예: dev-web-app
YAML
복사
nameSuffix
모든 리소스 이름 뒤에 붙일 접미사를 설정합니다.
nameSuffix: -v1
# 모든 리소스 이름 뒤에 -v1이 붙습니다. 예: web-app-v1
YAML
복사
namespace
모든 리소스를 배포할 Kubernetes 네임스페이스를 설정합니다.
namespace: dev-environment
# 모든 리소스가 dev-environment 네임스페이스로 배포됩니다.
YAML
복사
patchesStrategicMerge
기존 리소스 파일을 수정하기 위한 패치를 정의합니다. 파일 경로를 나열하며, 기본적으로 Strategic Merge Patch 방식으로 리소스를 변경합니다.
patchesStrategicMerge:
- patch-deployment.yaml
# deployment.yaml 파일을 기반으로 patch-deployment.yaml에서 지정된 변경 사항이 적용됩니다.
YAML
복사
patchesJson6902
JSON Patch 형식으로 리소스를 수정합니다. json6902는 Kubernetes에서 사용하는 JSON Patch 규격에 맞춰 패치를 적용합니다.
patchesJson6902:
- target:
kind: Deployment
name: web-app
patch: |-
- op: replace
path: /spec/replicas
value: 3
# Deployment의 replicas를 3으로 변경합니다.
YAML
복사
configMapGenerator
ConfigMap을 생성하는 데 사용할 데이터를 정의합니다. name과 files 또는 envs로 데이터를 제공할 수 있습니다.
configMapGenerator:
- name: my-config
files:
- config.ini
# config.ini 파일을 포함하는 my-config라는 ConfigMap을 생성합니다.
YAML
복사
secretGenerator
Secret을 생성하는 데 사용할 데이터를 정의합니다. name, files, envs 등을 통해 Secret을 생성합니다.
secretGenerator:
- name: my-secret
literals:
- password=supersecret
# password=supersecret 값을 포함하는 my-secret이라는 Secret을 생성합니다.
YAML
복사
vars
템플릿 변수처럼 사용하여 리소스 파일 내에서 참조할 수 있는 변수를 설정합니다. configMapGenerator나 secretGenerator와 함께 사용할 수 있습니다.
vars:
- name: MY_SECRET
objref:
kind: Secret
name: my-secret
apiVersion: v1
fieldref:
fieldpath: data.password
# MY_SECRET라는 변수를 설정하여, my-secret Secret의 password 값을 참조할 수 있게 합니다.
YAML
복사
commonLabels
모든 리소스에 공통으로 추가할 레이블을 설정합니다.
commonLabels:
environment: dev
app: web-app
# 모든 리소스에 environment=dev, app=web-app 레이블이 추가됩니다.
YAML
복사
commonAnnotations
모든 리소스에 공통으로 추가할 주석을 설정합니다.
commonAnnotations:
maintainer: "team@example.com"
# 모든 리소스에 maintainer=team@example.com 주석이 추가됩니다.
YAML
복사
images
이미지를 지정하거나 변경할 수 있습니다. 주로 image 태그를 변경할 때 사용합니다.
images:
- name: web-app
newName: myregistry/web-app
newTag: v2
# web-app 이미지를 myregistry/web-app:v2로 변경합니다.
YAML
복사
namespacePrefix
네임스페이스 이름 앞에 접두사를 추가할 수 있습니다. namespace와 비슷하지만 접두사만 추가됩니다.
namespacePrefix: dev-
# 네임스페이스가 dev-로 시작합니다. 예: dev-web-app
YAML
복사
namespaceSuffix
네임스페이스 이름 뒤에 접미사를 추가할 수 있습니다. namespace와 비슷하지만 접미사만 추가됩니다.
namespaceSuffix: -namespace
# 네임스페이스 이름 뒤에 -namespace가 붙습니다. 예: web-app-namespace
YAML
복사
Complete YAML
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: dev-environment
patchesStrategicMerge:
- patch-deployment.yaml
configMapGenerator:
- name: app-config
files:
- app-config.properties
secretGenerator:
- name: app-secret
literals:
- api-key=supersecretkey
commonLabels:
environment: dev
app: web-app
images:
- name: web-app
newName: myregistry/web-app
newTag: v1
YAML
복사