개별 Helm 파일 또는 프로젝트 생성
Helm chart에서 dependencies를 이용하여 common-helm을 사용하는 기본적인 방법은 다음과 같습니다:
Chart.yaml 파일에 dependencies 섹션 추가:
dependencies:
- name: common-helm
version: 1.0.7
repository: "oci://harbor-dev.jinhaksa.com/common"
의존성 업데이트:
helm dependency update
이 명령어는 지정된 common-helm 차트를 다운로드하고 로컬 차트 디렉토리에 저장합니다.
values.yaml 파일에서 common-helm 값 오버라이드:
common-helm:
# common-helm의 값들을 여기에 오버라이드
해당 템플릿에 대한 values 파일 사용
#최상단에 common-helm에 선언된 태그를 사용한다.
#별도 template를 만들어 사용할 경우 common-helm은 사용하지 않는다.
common-helm:
namespace: apply-name
stage: "dev"
applications
이 방법을 통해 common-helm의 기능을 재사용하면서 필요한 부분만 수정 할 수 있습니다.
공통 Helm을 사용한 개별 values 파일
다음은 common-helm을 참조하여 생성한 stage: "dev"의 dev-application-values.yaml 파일의 예시 내용입니다:
# dev-application-values.yaml
common-helm:
namespace: apply-name
stage: "dev"
applications:
"apply-name-auth":
enabled: true
replicaCount: 1
image:
repository: "harbor-dev.jinhaksa.com/apply-name-dev/apply-name-auth"
tag: v1.0.0-dev.32
pullPolicy: IfNotPresent
containerPort: 8800
extraEnvVars:
- name: TMP
value: temp
- name: MY_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
service:
type: ClusterIP
port: 8800
filebeatsidecar:
enabled: true
name: apply-name-filebeat
replicaCount: 1
image:
repository: "docker.elastic.co/beats/filebeat"
tag: "8.15.1"
pullPolicy: IfNotPresent
logPaths:
- id: "id-apply-name-auth-dev-error-lg"
path: /temp/logs/error/error*.log
tags: ["apply-name-auth-error-lg", "apply-name-auth-dev"]
- id: "id-apply-name-auth-dev-info-lg"
path: /temp/logs/info/info*.log
tags: ["apply-name-auth-info-lg", "apply-name-auth-dev"]
logstash:
enabled: true
hosts:
- "192.168.1.XXX"
apply-name-auth-helm:
image:
tag: v-dev.01
이 파일은 개발 환경(dev)에 대한 설정을 포함하고 있으며, common-helm을 참조하여 apply-name-auth 애플리케이션에 대한 구체적인 설정을 정의하고 있습니다. 실제 사용 시에는 프로젝트의 요구사항에 맞게 값들을 조정해야 합니다.