Helm 차트 구성
Helm 차트 구성 (Configuration)
중요 참고: 이 차트는 Helm 2와 호환되지 않습니다. 이 차트에는 Helm 3.6+를 사용하세요.
이 차트는 Helm 구성 값을 사용해 매우 유연하게 커스터마이즈할 수 있습니다. 각 값에는 Vault로 시작하기에 최적화된 기본값이 조정되어 있습니다. 프로덕션에 들어가기 전에 아래 매개변수를 검토하고 배포에 적절한지 고려하세요.
출처: 문서
본문
global
차트의 여러 구성 요소에 영향을 주는 전역 값입니다.
enabled(boolean: true) — 마스터 활성화/비활성화 구성.true면 대부분의 구성 요소가 기본으로 설치됩니다.false면 기본으로 어떤 구성 요소도 설치되지 않으며, 예를 들어server.enabled를 true로 설정하는 것처럼 수동 옵트인이 필요합니다.namespace(string: "") — 배포할 네임스페이스. 기본값은 Helm 설치 네임스페이스.tlsDisable(boolean: true) —true로 설정하면 URL을 https에서 http로 변경합니다(예: Vault 파드에 설정된VAULT_ADDR=http://127.0.0.1:8200환경 변수).externalVaultAddr(string: "") — injector와 CSI provider가 사용할 외부 Vault 서버 주소. 설정하면 Vault 서버 배포가 비활성화됩니다.server.serviceAccount.create=true로 설정된 경우 외부 Vault 서버가 사용할 토큰 검토 권한이 있는 서비스 계정이 자동 생성됩니다.openshift(boolean: false) —true면 NetworkPolicy, SecurityContext, Route 같은 OpenShift 관련 구성이 활성화됩니다.
psp
Pod Security Policy를 구성하는 값.
enable(boolean: false) —true로 설정하면 Vault와 Vault Agent Injector에 대한 Pod Security Policies를 활성화합니다.annotations(dictionary: {}) — Pod Security Policies에 추가할 추가 주석을 정의합니다. YAML 또는 YAML 형식의 다중 줄 템플릿 문자열일 수 있습니다.
serverTelemetry
메트릭과 텔레메트리를 구성하는 값.
prometheusOperator(boolean: false) —true로 설정하면 Prometheus Operator와의 통합을 활성화합니다. 자세한 내용과 필요한 구성 값에 대해 최상위serverTelemetry섹션을 구성하세요.
injector
Kubernetes에서 Vault Agent Injector Admission Webhook Controller를 실행하는 것을 구성하는 값.
enabled(boolean or string: "-") —true로 설정하면 Vault Agent Injector Admission Webhook controller가 생성됩니다. "-"로 설정하면global.enabled값으로 기본 설정됩니다.externalVaultAddr(string: "") — 사용 중단(Deprecated): 대신global.externalVaultAddr를 사용하세요.replicas(int: 1) — 고가용성 Vault Agent Injector 클러스터를 만들기 위해 배포할 파드 수. 1개보다 많은 복제본은 Vault K8s 0.7.0이 필요합니다.leaderElector— HA 배포용 Vault Agent Injector 리더 선출을 구성하는 값.enabled(boolean: true) —true로 설정하면 Vault Agent Injector의 리더 선출을 활성화합니다. auto-tls와 1개보다 많은 복제본을 사용할 때 필요합니다.
image— Vault Agent Injector Docker 이미지를 구성하는 값.repository(string: "hashicorp/vault-k8s") — Vault Agent Injector의 Docker 이미지 이름.tag(string: "1.7.6") — Vault Agent Injector의 Docker 이미지 태그. 프로덕션에서 실행할 때는 특정 버전으로 고정(pin) 해야 합니다. 그렇지 않으면 차트의 다른 변경으로 admission controller가 의도치 않게 업그레이드될 수 있습니다.pullPolicy(string: "IfNotPresent") — 컨테이너 이미지의 풀 정책. 기본은 이미지가 이미 있으면 Kubelet이 이미지를 가져오지 않는IfNotPresent.
agentImage— Vault Agent 사이드카 이미지를 구성하는 값.repository(string: "hashicorp/vault") — Vault Agent 사이드카의 Docker 이미지 이름. 공식 Vault Docker 이미지로 설정해야 합니다.tag(string: "2.0.4") — Vault Agent 사이드카에 사용할 Vault Docker 이미지 태그. admission controller는 Vault 1.3.1+를 요구합니다.
agentDefaults— 주입된 Vault Agent 컨테이너의 기본값을 구성하는 값.cpuLimit(string: "500m") — 주입된 Vault Agent 컨테이너의 기본 CPU 한도.cpuRequest(string: "250m") — 주입된 Vault Agent 컨테이너의 기본 CPU 요청.memLimit(string: "128Mi") — 주입된 Vault Agent 컨테이너의 기본 메모리 한도.memRequest(string: "64Mi") — 주입된 Vault Agent 컨테이너의 기본 메모리 요청.ephemeralLimit(string: "") — 주입된 Vault Agent 컨테이너의 기본 임시 스토리지 한도.ephemeralRequest(string: "") — 주입된 Vault Agent 컨테이너의 기본 임시 스토리지 요청.template(string: "map") — 사용자 지정 템플릿이 정의되지 않은 경우 렌더링된 시크릿의 기본 템플릿 유형. 가능한 값은map과json.templateConfig— Agent의template_config스탠자 내 기본값.exitOnRetryFailure(boolean: true) — Vault Agent가 실패로 인한 템플릿 재시도 횟수를 소진한 후 종료할지 제어.staticSecretRenderInterval(string: "") — Vault Agent Template가 KV v2 같은 비임대 시크릿을 렌더링하는 빈도 구성. Vault Agent Templates 문서 참고.
metrics— Vault Agent Injector 메트릭 익스포터를 구성하는 값.enabled(boolean: false) —true로 설정하면 Vault Agent Injector가/metrics경로에 Prometheus 메트릭을 내보냅니다.
authPath(string: "auth/kubernetes") — Vault Kubernetes Auth Method의 마운트 경로.logLevel(string: "info") — injector의 로그 상세 수준 구성. 지원 로그 수준: trace, debug, error, warn, info.logFormat(string: "standard") — injector의 로그 형식 구성. 지원 로그 형식: "standard", "json".revokeOnShutdown(boolean: false) — 모든 Vault Agent 사이드카가 종료 시 토큰을 폐기하도록 구성.securityContext— 파드 템플릿과 injector 컨테이너의 보안 컨텍스트.pod(dictionary: {}) — injector Pod의 securityContext 정의. YAML 또는 YAML 형식의 다중 줄 템플릿 문자열. 미지정 시 기본값:runAsNonRoot: true runAsGroup: {{ .Values.injector.gid | default 1000 }} runAsUser: {{ .Values.injector.uid | default 100 }} fsGroup: {{ .Values.injector.gid | default 1000 }}container(dictionary: {}) — injector 컨테이너의 securityContext 정의. 미지정 시 기본값:allowPrivilegeEscalation: false capabilities: drop: - ALL
resources(dictionary: {}) — injector의 각 컨테이너에 대한 리소스 요청·한도(CPU, 메모리 등). Kubernetes 리소스 개체의 YAML 사전. 지정하지 않으면 파드가 특정 리소스 양을 요청하지 않아 Kubernetes가 컴퓨팅 리소스를 효율적으로 사용하는 능력이 제한됩니다. 설정을 강력히 권장합니다.resources: requests: memory: '256Mi' cpu: '250m' limits: memory: '256Mi' cpu: '250m'webhook— Mutating Webhook Configuration을 제어하는 값.failurePolicy(string: "Ignore") — webhook의 failurePolicy 구성. webhook을 사용할 수 없을 때 파드 생성을 차단하려면 정책을 "Fail"로 설정하세요.matchPolicy(string: "Exact") — MutatingWebhookConfiguration의 규칙에 따라 변경 수락 방식을 지정.timeoutSeconds(int: 30) — webhook 요청이 무시되거나 실패하기 전의 초 수. 무시되거나 실패하는지는failurePolicy에 달림.namespaceSelector(object: {}) — 주입이 발생할 수 있는 네임스페이스를 제한하는 admission webhook controller가 사용하는 선택자. 미설정 시 모든 비시스템 네임스페이스가 주입 대상.objectSelector(object: {}) — 변경에 영향을 받을 수 있는 개체를 제한하는 admission webhook controller가 사용하는 선택자.annotations(string or object: {}) — webhook에 연결할 추가 주석 정의. YAML 또는 YAML 형식의 다중 줄 템플릿 문자열.
namespaceSelector(dictionary: {}) — 사용 중단(Deprecated): 대신webhook.namespaceSelector사용.objectSelector(dictionary: {}) — 사용 중단(Deprecated): 대신webhook.objectSelector사용.extraLabels(dictionary: {}) — Vault Agent Injector 파드에 대한 추가 라벨 정의.certs— webhook TLS 인증서 구성 방법을 구성하는 certs 섹션. 이는 Kube apiserver가 webhook과 통신하기 위한 TLS 인증서입니다. 기본적으로 injector는 자체 인증서를 생성·관리하지만, 이는 injector가 자체MutatingWebhookConfiguration을 업데이트할 수 있는 능력이 필요합니다. 프로덕션 환경에서는 사용자 지정 인증서를 사용해야 합니다.secretName(string: "") — injector webhook을 제공할 TLS 인증서와 개인 키가 있는 Kubernetes 시크릿 이름. null이면 injector는 자동 관리 모드를 기본으로 사용.caBundle(string: "") — injector가 제공하는 TLS 인증서의 PEM 인코딩 CA 공개 인증서 번들. KubernetesMutatingAdmissionWebhook리소스에 정적으로 구성해야 하므로 문자열로 지정해야 하며 시크릿에서 올 수 없습니다.secretName이 null이 아닐 때만 지정하면 됩니다.certName(string: "tls.crt") —secretName시크릿 내 인증서 파일 이름.keyName(string: "tls.key") —secretName시크릿 내 키 파일 이름.
extraEnvironmentVars(dictionary: {}) — injector 배포에 설정할 추가 환경 변수.affinity— Vault Agent Injector 파드의 affinity 정의. PodSpec의 affinity 필드와 일치하는 다중 줄 문자열 또는 YAML. 기본은 각 노드에 단일 파드만 허용하며, 노드 손실 시 클러스터를 사용할 수 없게 될 위험을 최소화합니다. (예: Minikube 테스트) 노드당 더 많은 파드를 실행해야 한다면 이 값을 null로 설정하세요.topologySpreadConstraints(array: []) — injector 파드의 토폴로지 설정. YAML 또는 YAML 형식의 다중 줄 템플릿 문자열.tolerations(array: []) — injector 파드의 톨러레이션 설정. Toleration 배열과 일치하는 다중 줄 문자열 또는 YAML.nodeSelector(dictionary: {}) — injector 파드 할당의 nodeSelector 라벨. 다중 줄 문자열 또는 YAML 맵.priorityClassName(string: "") — injector 파드의 우선순위 클래스.annotations(dictionary: {}) — injector 파드에 대한 추가 주석 정의.failurePolicy(string: "Ignore") — 사용 중단(Deprecated): 대신webhook.failurePolicy사용.webhookAnnotations(dictionary: {}) — 사용 중단(Deprecated): 대신webhook.annotations사용.service— Vault Agent Injector의 Kubernetes 서비스를 구성하는 service 섹션.annotations(dictionary: {}) — Vault Agent Injector 서비스에 추가할 추가 주석 정의.
serviceAccount— Injector 서비스 계정 특정 구성.annotations(dictionary: {}) — injector serviceAccount에 연결할 추가 주석 정의.
hostNetwork(boolean: false) —true로 설정하면 Vault Agent Injector가 호스트 네트워크에서 실행되도록 구성. 대체 클러스터 네트워킹을 사용할 때 유용.port(int: 8080) — Vault Agent Injector가 수신하는 포트 구성.podDisruptionBudget(dictionary: {}) — 중단 예산은 자발적 중단으로 인해 복제된 애플리케이션의 동시 다운 파드 수를 제한.podDisruptionBudget: maxUnavailable: 1strategy(dictionary: {}) — 배포 업데이트 전략. 다중 줄 문자열 또는 YAML 맵.strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdatelivenessProbe— injector의 활성 프로브(liveness probe) 구성 값.failureThreshold(int: 2) — 값 설정 시 Kubernetes가 허용할 프로브 실패 횟수 구성.initialDelaySeconds(int: 60) — 컨테이너 시작 시 활성 프로브의 초기 지연 설정.periodSeconds(int: 5) — 값 설정 시 프로브 수행 빈도(초) 구성.successThreshold(int: 1) — 값 설정 시 실패 후 프로브가 성공한 것으로 간주하기 위한 최소 연속 성공 횟수 구성.timeoutSeconds(int: 3) — 값 설정 시 프로브가 시간 초과되는 초 수 구성.
readinessProbe— injector의 준비 프로브(readiness probe) 구성 값.failureThreshold(int: 2) /initialDelaySeconds(int: 60) /periodSeconds(int: 5) /successThreshold(int: 1) /timeoutSeconds(int: 3) — 활성 프로브와 동일한 의미.
startupProbe— injector의 시작 프로브(startup probe) 구성 값.failureThreshold(int: 2) /initialDelaySeconds(int: 60) /periodSeconds(int: 5) /successThreshold(int: 1) /timeoutSeconds(int: 3) — 동일한 의미.
server
Kubernetes에서 Vault 서버를 실행하는 것을 구성하는 값.
enabled(boolean or string: "-") —true로 설정하면 Vault 서버가 생성됩니다. "-"로 설정하면global.enabled값으로 기본 설정됩니다.enterpriseLicense— 생성한 엔터프라이즈 라이선스가 담긴 Kubernetes 시크릿을 참조하는 값. 엔터프라이즈 이미지를 사용하지 않거나 다른 경로로 라이선스 키를 도입하려면 secretName을 비워("") 두거나 null로 설정하세요. Vault Enterprise 1.8 이상 필요.secretName(string: "") — 엔터프라이즈 라이선스가 있는 Kubernetes 시크릿 이름. 시크릿은 Vault가 설치된 것과 같은 네임스페이스에 있어야 합니다.secretKey(string: "license") — 엔터프라이즈 라이선스가 있는 Kubernetes 시크릿 내 키.
serviceCA— OpenShift service-ca operator 통합. service-ca operator를 통해 TLS 인증서 생성을 자동화.enabled(boolean: false) — service-ca operator 주석과 ConfigMap 생성을 활성화. 요구사항: global.openshift=truesecretName(string: "vault-tls") — service-ca가 생성한 인증서를 저장할 시크릿 이름. 중요: 아래server.volumes의 시크릿 이름과 일치해야 합니다.configMapName(string: "service-ca-bundle") — service-ca CA 번들 주입용 ConfigMap 이름. 중요: 아래server.volumes의 ConfigMap 이름과 일치해야 합니다.
image— Vault Docker 이미지를 구성하는 값.repository(string: "hashicorp/vault") — Vault를 실행하는 컨테이너의 Docker 이미지 이름.tag(string: "2.0.4") — Vault를 실행하는 컨테이너의 Docker 이미지 태그. 다른 차트 변경으로 admission controller가 실수로 업그레이드되는 것을 피하려면 프로덕션에서 특정 버전으로 고정하는 것을 권장합니다.pullPolicy(string: "IfNotPresent") — 컨테이너 이미지의 풀 정책. 기본은IfNotPresent로, Kubelet이 이미지가 이미 있으면 건너뜁니다.
updateStrategyType(string: "OnDelete") — StatefulSet의 업데이트 전략 유형 구성.logLevel(string: "") — Vault 서버 로깅 상세 수준 구성. 설정 시 Vault 구성 파일의 값을 덮어씁니다. 지원 수준: trace, debug, info, warn, error.logFormat(string: "") — Vault 서버 로깅 형식 구성. 설정 시 Vault 구성 파일의 값을 덮어씁니다. 지원 형식: standard, json.resources(dictionary: {}) — 서버의 각 컨테이너에 대한 리소스 요청·한도(CPU, 메모리 등). 설정을 강력히 권장합니다.resources: requests: memory: '10Gi' limits: memory: '10Gi'ingress— Vault용 Ingress 서비스 구성 값. OpenShift에 배포하면 이러한 ingress 설정은 무시됩니다. OpenShift에서 Vault를 노출하려면route구성을 사용하세요.ha가 활성화되면 Ingress는active서비스를 통해 활성 Vault 서버를 가리킵니다. 이는 Vault 1.4+와 vault 구성에service_registration설정이 필요합니다.enabled(boolean: false) —true로 설정하면 Ingress 서비스가 생성됩니다.labels(dictionary: {}) — ingress 서비스 라벨.annotations(dictionary: {}) — Ingress 서비스에 추가할 추가 주석 정의.ingressClassName(string: "") — Ingress를 구현하는 데 사용할 IngressClass 지정.activeService(boolean: true) — HA 모드가 활성화되고 K8s 서비스 등록이 사용될 때 ingress가 Vault active 서비스를 가리키도록 구성.extraPaths(array: []) — 호스트 구성 앞에 추가할 추가 경로 구성. 주석 기반 서비스에서 유용.tls(array: []) — Ingress 스펙의 TLS 부분 구성.hosts는 TLS 인증서의 Common Name에 정의된 호스트 목록,secretName은 인증서·키 같은 필수 TLS 파일이 있는 Secret 이름.hosts— Ingress 호스트 규칙 구성 값.host(string: "chart-example.local") — Ingress에 사용할 호스트 이름.paths(array: []) — 사용 중단(Deprecated): 대신server.ingress.extraPaths사용. Vault 서비스로 보내질 경로 목록. 하나 이상의 경로가 필요.
hostAliases(array: []) —/etc/hosts에 추가할 별칭 목록. hostAlias 형식을 따르는 YAML 목록.route— OpenShift에서 Vault용 Route 서비스 구성 값.ha가 활성화되면 Route는active서비스를 통해 활성 Vault 서버를 가리킵니다(Vault 1.4+와 vault 구성에service_registration필요).enabled(boolean: false) —true로 설정하면 Vault용 Route가 생성됩니다.activeService(boolean: true) — HA 모드가 활성화되고 K8s 서비스 등록이 사용될 때 route가 Vault active 서비스를 가리키도록 구성.labels(dictionary: {}) — Route 라벨.annotations(dictionary: {}) — Route에 추가할 주석.host(string: "chart-example.local") — Route의 호스트 이름 설정.tls(dictionary: {termination: passthrough}) — 라우터에서 TLS를 종료하는 다른 종료 방법을 구성하는 데 사용할 수 있는, route의 TLS config에 직접 전달되는 TLS 구성.
httproute— Kubernetes Gateway API를 사용해 Vault용 HTTPRoute 서비스 구성 값. HTTPRoute는 클러스터에 Gateway API CRD가 설치되어 있어야 합니다.ha가 활성화되면 HTTPRoute는 기본적으로active서비스를 통해 활성 Vault 서버를 가리킵니다(Vault 1.4+와service_registration필요).enabled(boolean: false) —true로 설정하면 HTTPRoute 리소스가 생성됩니다.labels/annotations— HTTPRoute 리소스의 라벨/추가 주석.activeService(boolean: true) — HA 모드에서 HTTPRoute가 active 서비스를 가리키도록 구성.parentRefs(array: []) — HTTPRoute 활성화 시 필수. 이 HTTPRoute가 연결할 부모 Gateway(들) 구성.hostnames(array: []) — 이 HTTPRoute에 대해 일치시킬 호스트명 구성.matches(array) — HTTPRoute의 요청 일치 규칙 구성. 기본값은 경로 접두사/인 모든 요청 일치.filters(array: []) — 이 HTTPRoute와 일치하는 요청에 적용되는 필터 구성. 필터는 요청·응답을 수정할 수 있습니다.additionalRules(array: []) — 기본 규칙 앞에 추가할 추가 사용자 지정 라우팅 규칙 구성.
authDelegator— Vault 서비스 계정에 연결된 Cluster Role Binding 구성 값.enabled(boolean: true) —true로 설정하면 Cluster Role Binding이 Vault 서비스 계정에 바인딩됩니다. 이 Cluster Role Binding은 Vault가 Kubernetes Auth Method를 사용하는 데 필요한 권한을 갖습니다.
readinessProbe— Vault 파드의 준비 프로브 구성 값.enabled(boolean: true) —true로 설정하면 Vault 파드에 준비 프로브가 적용됩니다.path(string: "") — 값 설정 시 기본exec프로브 대신 HTTP/HTTPS 프로브를 활성화. http/https 체계는tlsDisable값이 제어.failureThreshold(int: 2) — Kubernetes가 허용할 프로브 실패 횟수 구성.initialDelaySeconds(int: 5) — 컨테이너 시작 후 프로브가 시작되기까지의 초 수 구성.periodSeconds(int: 5) — 프로브 수행 빈도(초) 구성.successThreshold(int: 1) — 실패 후 성공으로 간주하기 위한 최소 연속 성공 횟수 구성.timeoutSeconds(int: 3) — 프로브가 시간 초과되는 초 수 구성.port(int: 8200) — 값 설정 시 서버 준비 프로브에 사용되는 기본 포트를 재정의.
livenessProbe— Vault 파드의 활성 프로브 구성 값.enabled(boolean: false) —true로 설정하면 Vault 파드에 활성 프로브가 적용됩니다.execCommand(array: []) — 활성 exec 명령 정의용. 제공되면 livenessProbe 핸들러로 httpGet(path)보다 exec가 선호됩니다.path(string: "/v1/sys/health?standbyok=true") — livenessProbe가 httpGet을 livenessProbe 핸들러로 사용할 경로. http/https 체계는tlsDisable값이 제어.initialDelaySeconds(int: 60) /failureThreshold(int: 2) /periodSeconds(int: 5) /successThreshold(int: 1) /timeoutSeconds(int: 3) — 프로브 관련 구성.port(int: 8200) — httpGet을 livenessProbe 핸들러로 사용할 때 livenessProbe가 확인될 포트 번호.
terminationGracePeriodSeconds(int: 10) — 파드가 정상 종료하는 데 필요한 선택적 시간(초).preStopSleepSeconds(int: 5) — 사용자 지정 preStop 명령이 설정되지 않은 경우 preStop 단계 동안의 sleep 시간 설정.preStop(array: []) — 파드가 종료되기 전에 실행할 사용자 지정 preStop exec 명령 정의. 기본값:preStop: - /bin/sh - -c - sleep {{ .Values.server.preStopSleepSeconds }} && kill -SIGTERM $(pidof vault)postStart(array: []) — 파드가 준비된 후 실행할 명령 정의용. 초기화나 인증 메서드 부트스트래핑 같은 프로세스를 자동화하는 데 사용.extraInitContainers(array: null) — init 컨테이너 목록. YAML 목록으로 지정. TLS 인증서를 프로비저닝하거나 구성 파일을 동적으로 기록하는 스크립트를 실행해야 할 때 유용.extraContainers(array: null) — Vault 서버 파드에 적용할 추가 컨테이너.extraEnvironmentVars(dictionary: {}) — Vault 서버에 적용할 추가 환경 변수.shareProcessNamespace(boolean: false) — Vault와 extraContainers 간 프로세스 네임스페이스 공유를 활성화. 예를 들어 로그 회전을 위해 SIGHUP을 보내야 할 때 유용.extraArgs(string: null) — Vault 서버 시작 명령에 적용할 추가 인자.extraPorts(array: []) — 서버 statefulset에 추가할 추가 포트.extraSecretEnvironmentVars(array: []) — 시크릿에서 채워진 추가 환경 변수를 Vault 서버에 적용.envName(string: required) — Vault 컨테이너에 채워질 환경 변수 이름.secretName(string: required) —envName이 정의한 환경 변수를 채우는 데 사용하는 Kubernetes 시크릿 이름.secretKey(string: required) — 요청된 시크릿 값이 있는 Kubernetes 시크릿 내 키 이름.
extraVolumes(array: []) — 사용 중단(Deprecated): 대신volumes사용. Vault 서버에 마운트할 추가 볼륨 목록. TLS 인증서 같은 잘 알려진 경로에서 다른 구성이 참조할 수 있는 추가 데이터를 가져오는 데 유용. 개체 목록이어야 하며, 각 개체는 다음 키를 지원합니다.type(string: required) — 볼륨 유형. "configMap" 또는 "secret" 중 하나여야 함. 대소문자 구분.name(string: required) — 마운트할 configMap 또는 secret 이름. 마운트 경로도 제어.path가 구성되지 않으면 볼륨은 기본적으로/vault/userconfig/<name>에 마운트.path(string: /vault/userconfigs) — configMap 또는 secret이 마운트되는 경로 이름. 지정하지 않으면 볼륨은/vault/userconfig/<볼륨 이름>에 마운트.defaultMode(string: "420") — 마운트된 파일의 기본 모드.
volumes(array: null) — 모든 컨테이너에서 사용 가능한 볼륨 목록. 표준 Kubernetes 볼륨 정의를 사용.volumeMounts(array: null) — 모든 컨테이너에서 사용 가능한 볼륨 마운트 목록. 표준 Kubernetes 볼륨 정의를 사용.affinity— 서버 파드의 affinity 정의. PodSpec의 affinity 필드와 일치하는 다중 줄 문자열 또는 YAML. 기본은 각 노드에 단일 파드만 허용하며, 노드 손실 시 클러스터를 사용할 수 없게 될 위험을 최소화. (예: Minikube 테스트) 노드당 더 많은 파드가 필요하면 이 값을 null로 설정.topologySpreadConstraints(array: []) — 서버 파드의 토폴로지 설정. YAML 또는 YAML 형식의 다중 줄 템플릿 문자열.tolerations(array: []) — 스케줄링 시 허용되는 톨러레이션 정의. Toleration 배열과 일치하는 다중 줄 문자열 또는 YAML.nodeSelector(dictionary: {}) — Vault 서버가 배포되는 위치에 대한 추가 노드 선택 기준 정의. 다중 줄 문자열 또는 YAML 맵.networkPolicy— Vault 네트워크 정책 구성 값.enabled(boolean: false) —true로 설정하면 Vault 클러스터의 네트워크 정책을 활성화.egress(array: []) — 이그레스 네트워크 정책 규칙 구성.ingress(array: []) — 인그레스 네트워크 정책 규칙 구성.
priorityClassName(string: "") — 서버 파드의 우선순위 클래스.extraLabels(dictionary: {}) — 서버 파드에 대한 추가 라벨 정의.annotations(dictionary: {}) — 서버 파드에 대한 추가 주석 정의.includeConfigAnnotation(boolean: false) — Vault 구성의 해시인vaultproject.io/config-checksum주석을 서버 configmap과 statefulset 파드에 추가. OnDelete 배포 전략과 함께 사용해 배포 중 구성을 변경하기 위해 아직 삭제해야 할 파드를 식별하는 데 도움.service— Vault용으로 생성된 Kubernetes 서비스 구성 값. ha가 활성화되면 이러한 옵션은 active와 standby 서비스에도 사용됩니다.enabled(boolean: true) —true로 설정하면 Vault용 Kubernetes 서비스가 생성됩니다.active— vault-active 서비스에만 적용되는 값.enabled(boolean: true) —true로 설정하면 클러스터 리더로 자기 자신을vault-active: "true"로 라벨링하는 파드를 선택하는 vault-active Kubernetes 서비스가 생성됩니다.annotations(dictionary: {}) — active 서비스 정의에 대한 추가 주석.
standby— vault-standby 서비스에만 적용되는 값.enabled(boolean: true) —true로 설정하면 클러스터 팔로워로 자기 자신을vault-active: "false"로 라벨링하는 파드를 선택하는 vault-standby Kubernetes 서비스가 생성됩니다.annotations(dictionary: {}) — standby 서비스 정의에 대한 추가 주석.
clusterIP(string) — ClusterIP가 Kubernetes 내 Vault 서비스에 IP 주소(클러스터 IP)를 연결할지 제어. 기본적으로 Vault 서비스에는 Cluster IP 주소가 지정됩니다. 비활성화하려면 None으로 설정. 비활성화 시 Kubernetes는 "headless" 서비스를 만듭니다. Headless 서비스는 라운드 로빈 로드 밸런서 대신 DNS를 통해 파드와 직접 통신하는 데 사용할 수 있습니다.type(string: "ClusterIP") — 만들 서비스 유형 설정(예: NodePort).externalTrafficPolicy(string: "Cluster") — Cluster 또는 Local로 설정할 수 있으며 LoadBalancer와 NodePort 서비스 유형에만 유효.port(int: 8200) — 파드 내 Vault 서버가 수신하는 포트.targetPort(int: 8200) — 서비스가 수신하는 포트.nodePort(int:) — type이 NodePort로 설정되면 이 값으로 바인딩 노드 포트를 구성할 수 있습니다. 비워두면 임의 포트가 할당.activeNodePort(int:) — (HA 모드 활성화 시) type이 "NodePort"면 active 서비스에 대해 특정 nodePort 값을 구성할 수 있으며, 비워두면 임의.standbyNodePort(int:) — (HA 모드 활성화 시) type이 "NodePort"면 standby 서비스에 대해 특정 nodePort 값을 구성할 수 있으며, 비워두면 임의.publishNotReadyAddresses(boolean: true) — true면 준비될 때까지 기다리지 않고 파드를 서비스 대상에 포함.instanceSelector— 인스턴스 선택자.enabled(boolean: true) — false로 설정하면 vault, vault-active, vault-standby 서비스에 사용되는 서비스 선택자가app.kubernetes.io/instance로 필터링하지 않습니다. 즉 이 Helm 차트 배포 밖의 파드를 선택할 수 있습니다. headless vault-internal 서비스(ClusterIP: None)에는 영향을 주지 않습니다.
annotations(dictionary: {}) — 서비스에 대한 추가 주석 정의.ipFamilyPolicy(string: "") — IP family 및 IP families 옵션은 이중 스택 환경에서 동작을 설정할 수 있습니다. 이 값을 생략하면 서비스는 CNI가 기본값으로 지시하는 값으로 대체. Kubernetes 1.23+에서만 지원. 서비스의 지원 IP family 정책은 SingleStack, PreferDualStack, RequireDualStack 중 하나.serviceIPFamilies(array: []) — 지원해야 할 family와 ClusterIP에도 적용할 순서를 설정. IPv4 및/또는 IPv6일 수 있습니다.
serviceAccount— Vault용으로 생성된 Kubernetes 서비스 계정 구성 값.create(boolean: true) — true로 설정하면 Vault가 사용하는 서비스 계정 생성.name(string: "") — 사용할 서비스 계정 이름. 설정하지 않고 create가 true면 설치 이름(기본 "vault")으로 이름 생성.createSecret(boolean: false) — 서비스 계정용 만료되지 않는 토큰을 저장하는 Kubernetes Secret 개체 생성. Kubernetes 1.24.0 이전에는 Kubernetes가 각 서비스 계정에 대해 이 시크릿을 기본적으로 생성했습니다. 가능하면 TokenRequest API의 단기 토큰 또는 projected volumes를 사용하는 것이 좋습니다. 이 기능을 사용하려면server.serviceAccount.create가 'true'여야 합니다.annotations— 서비스 계정에 대한 추가 주석 정의.extraLabels— Vault 서버 서비스 계정에 대한 추가 라벨 정의.
serviceDiscovery— Vault 서버가 파드 메타데이터를 사용해 Vault 클러스터를 자동으로 발견·조인하는 데 필요한 권한 구성 값.enabled(boolean: true) — Vault의 Kubernetesservice_registration구성 옵션에 필요한 권한이 있는 서비스 계정 역할 바인딩 활성화/비활성화.
dataStorage— Consul 같은 외부 스토리지를 사용하지 않을 때 Vault 데이터를 저장하는 볼륨 구성.enabled(boolean: true) — 외부 스토리지 서비스를 사용하지 않을 때 Vault 데이터 저장용 영구 볼륨 생성 활성화.size(string: 10Gi) — 외부 스토리지 서비스를 사용하지 않을 때 Vault 데이터 스토리지용으로 생성할 볼륨 크기.storageClass(string: null) — 데이터 스토리지 볼륨 생성 시 사용할 스토리지 클래스 이름.mountPath(string: /vault/data) — 데이터 스토리지가 마운트될 Vault 파드 내 경로 구성.accessMode(string: ReadWriteOnce) — 스토리지 장치의 접근 모드 유형. 공식 Kubernetes 문서 참고.annotations(dictionary: {}) — 데이터 PVC에 추가할 추가 주석 정의.labels(dictionary: {}) — 데이터 PVC에 추가할 추가 라벨 정의.persistentVolumeClaimRetentionPolicy(dictionary: {}) — PVC(Persistent Volume Claim) 보존 정책 지정.
auditStorage— Vault 감사 로그를 저장하는 볼륨 구성. Vault 문서 참고.enabled(boolean: false) — Vault 감사 로그 저장용 영구 볼륨 생성 활성화.size(string: 10Gi) — Vault 감사 로그용으로 생성할 볼륨 크기.storageClass(string: null) — 감사 스토리지 볼륨 생성 시 사용할 스토리지 클래스 이름.mountPath/accessMode/annotations/labels— (데이터 스토리지와 유사한 의미)
standalone— Vault 서버의 standalone 모드 구성(HA 미사용).config(string or object: "{}") — Vault 서버의 추가 HCL 또는 JSON 원시 문자열. Vault 서버가 읽는 ConfigMap에 그대로 저장됩니다. 차트가 직접 노출하지 않는 추가 구성을 더하는 데 사용할 수 있습니다. 개체가 제공되면 JSON으로 기록됩니다.
ha— Vault 서버의 HA(고가용성) 모드 구성.enabled(boolean: false) — Vault 서버의 HA 모드 활성화. 이 모드는 Vault 데이터를 저장하기 위해 (Consul 같은) 고가용성 백엔드 스토리지를 사용합니다. 기본적으로 Consul Helm을 사용하도록 구성됩니다. 스토리지 백엔드 전체 목록은 Vault 문서 참고.apiAddr(string: "{}") — Vault 클러스터의 API 주소 구성 설정. 빈 문자열로 설정하면 파드 IP 주소가 사용됩니다.clusterAddr(string: null) — Vault HA의 cluster_addr 구성 설정. null이면https://$(HOSTNAME).{{ template "vault.fullname" . }}-internal:8201로 기본 설정.raft— Vault 서버의 raft 통합 스토리지 모드 구성.enabled(boolean: false) — Vault 서버의 raft 통합 스토리지 모드 활성화. 이 모드는 스토리지에 영구 볼륨을 사용합니다.setNodeId(boolean: false) — Node Raft ID를 파드 이름으로 설정.redundancyZones— Autopilot 중복 영역 정의. Kubernetes 1.35+에PodTopologyLabelsAdmission과topology.kubernetes.io/zone으로 라벨링된 노드가 필요합니다. 가용 영역 간 가용성과 장애 허용을 개선하기 위해 중복 영역을 활성화할 수 있습니다.config(string or object: "{}") — (Vault 서버의 추가 HCL/JSON 구성. 위 standalone.config와 동일한 방식.)
disruptionBudget— 중단 예산 정책 구성 값.enabled(boolean: true) — 자발적 중단으로 인해 동시에 다운되는 파드 수를 제한하는 중단 예산 정책 활성화.maxUnavailable(int: null) — 최대 사용 불가 파드 수. 기본적으로server.replicas값에 따라 (n/2)-1로 자동 계산됩니다. 0으로 설정해야 한다면 Helm 템플릿 언어의 제한 때문에 차트 설치 명령에--set 'server.disruptionBudget.maxUnavailable=0'플래그를 추가해야 합니다.
statefulSet— Vault StatefulSet 설정.annotations(dictionary: {}) — Vault statefulset에 추가할 추가 주석 정의.securityContext— Pod 및 컨테이너 보안 컨텍스트 설정.pod(dictionary: {}) — 서버 Pod의 securityContext 정의.global.openshift=false이고 미지정 시 기본값:runAsNonRoot: true runAsGroup: {{ .Values.server.gid | default 1000 }} runAsUser: {{ .Values.server.uid | default 100 }} fsGroup: {{ .Values.server.gid | default 1000 }}global.openshift=true이고 미지정 시 비어 있음.container(dictionary: {}) — 서버 컨테이너의 securityContext 정의.global.openshift=false이고 미지정 시 기본값:allowPrivilegeEscalation: false.global.openshift=true이고 미지정 시 비어 있음.
ui
Vault UI를 구성하는 값.
enabled(boolean: false) — true면 UI가 활성화됩니다. UI는 Vault 서버에서만 활성화됩니다.server.enabled가 false면 이 설정은 효과가 없습니다. UI를 노출하려면ui.service를 구성해야 합니다.service— UI 서비스 구성.serviceType(string: ClusterIP) — 등록할 서비스 유형. 기본 ClusterIP. 사용 가능한 서비스 유형은 Kubernetes 웹사이트에 문서화.publishNotReadyAddresses(boolean: true) — true로 설정하면 준비되지 않은(봉인되거나 초기화되지 않은) Vault 파드로 트래픽을 라우팅.activeVaultPodOnly(boolean: false) — true로 설정하면 UI 서비스가 Vault HA 클러스터의 활성 파드로만 라우팅.serviceNodePort(int: null) — Vault UI 서비스에서serviceType: NodePort사용 시 Node Port 값 설정.externalPort(int: 8200) — 서비스의 외부 포트 값 설정.targetPort(int: 8200) — 서비스의 대상 포트 값 설정.serviceIPFamilyPolicy(string: "") — 이중 스택 환경에서 동작 설정용 IP family 옵션. Kubernetes 1.23+에서만 지원. SingleStack, PreferDualStack, RequireDualStack 중 하나.serviceIPFamilies(array: []) — 지원할 family와 ClusterIP에도 적용할 순서 설정. IPv4 및/또는 IPv6.externalTrafficPolicy(string: "Cluster") — Cluster 또는 Local. LoadBalancer와 NodePort 서비스 유형에만 유효.loadBalancerSourceRanges(array) —serviceType: LoadBalancer사용 시 추가 소스 CIDR 정의.loadBalancerIP(string) —serviceType: LoadBalancer사용 시 로드 밸런서 IP 주소 정의.annotations(dictionary: {}) — UI 서비스에 대한 추가 주석 정의.
csi
Vault CSI Provider 실행 구성 값.
enabled(boolean: false) — true로 설정하면 Vault CSI Provider daemonset이 생성됩니다.image— Vault CSI Provider Docker 이미지 구성.repository(string: "hashicorp/vault-csi-provider") — Vault CSI Provider의 Docker 이미지 이름.tag(string: "1.7.4") — Vault CSI Provider의 Docker 이미지 태그. 프로덕션에서 특정 버전으로 고정해야 합니다.pullPolicy(string: "IfNotPresent") — 컨테이너 이미지 풀 정책.
volumes(array: null) /volumeMounts(array: null) — 표준 Kubernetes 볼륨/볼륨 마운트 정의.resources(dictionary: {}) — 각 CSI 컨테이너의 리소스 요청·한도. 설정을 강력히 권장.hmacSecretName(string: "") — 시크릿 버전 생성에 사용되는 CSI Provider의 HMAC 키에 대한 기본 시크릿 이름 재정의.hostNetwork(bool: false) — 전용 파드 IP가 필요 없도록 CSI Provider 파드에 hostNetwork 매개변수 설정.daemonSet— Vault CSI Provider daemonSet 구성.updateStrategy— Vault CSI Provider 업데이트 전략 구성.type(string: "RollingUpdate") — Helm 업그레이드로 daemonset 업데이트 시 사용할 업데이트 전략 유형.maxUnavailable(int: null) — 업그레이드 중 최대 사용 불가 파드 수.
annotations(dictionary: {}) — Vault CSI Provider daemonset에 추가할 추가 주석 정의.extraLabels(dictionary: {}) — CSI provider daemonset에 대한 추가 라벨 정의.providersDir(string: "/var/run/secrets-store-csi-providers") — Provider 호스트 경로(CSI provider의 경로와 일치해야 함).kubeletRootDir(string: "/var/lib/kubelet") — Kubelet 호스트 경로.
securityContext— csi provider daemonSet의 파드 템플릿과 컨테이너 보안 컨텍스트.global.openshift=true면 컨테이너 securityContext 기본값은privileged: true.pod(dictionary: {}) — Pod 수준 securityContext. YAML 또는 YAML 형식의 다중 줄 템플릿 문자열.container(dictionary: {}) — 컨테이너 수준 securityContext.
pod— Vault CSI Provider 파드 구성.annotations(dictionary: {}) — Vault CSI Provider 파드에 추가할 추가 주석 정의.extraLabels(dictionary: {}) — CSI provider 파드에 대한 추가 라벨 정의.nodeSelector(dictionary: {}) — csi 파드 할당의 nodeSelector 라벨. 다중 줄 문자열 또는 YAML 맵.affinity(dictionary: {}) — PodSpec의 affinity 필드와 일치하는 다중 줄 문자열 또는 YAML.tolerations(array: []) — CSI 파드의 톨러레이션 설정.priorityClassName(string: "") — CSI Provider 파드의 우선순위 클래스.
serviceAccount— Vault CSI Provider의 serviceaccount 구성.annotations(dictionary: {}) — serviceAccount 정의에 대한 추가 주석.extraLabels(dictionary: {}) — CSI provider 서비스 계정에 대한 추가 라벨.
readinessProbe— Vault CSI Provider 파드의 준비 프로브 구성(failureThreshold/initialDelaySeconds/periodSeconds/successThreshold/timeoutSeconds — 위 프로브 의미 동일).livenessProbe— Vault CSI Provider 파드의 활성 프로브 구성(동일 의미).logLevel(string: "info") — Vault CSI provider의 로그 수준 구성. 지원 수준: trace, debug, info, warn, error, off.debug(bool: false) — 사용 중단(Deprecated): 대신 logLevel을 debug로 설정. true로 설정 시 Vault CSI Provider daemonset에서 디버그 로깅 활성화.extraArgs(array: []) — CSI 파드 시작 명령에 적용할 추가 인자.agent— CSI Provider용 Vault Agent 사이드카 구성.enabled(bool: true) — CSI provider용 agent 사이드카 활성화 여부.extraArgs(array: []) — agent 시작 명령에 적용할 추가 인자.image— CSI Provider용 Vault Agent 사이드카 이미지 구성.pullPolicy/repository(string: "hashicorp/vault")/tag(string: "2.0.4")/logLevel(string: "info")/logFormat(string: "standard")/resources.securityContext— Vault Agent 사이드카 컨테이너의 보안 컨텍스트. 기본값:allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 100 runAsGroup: 1000
serverTelemetry
메트릭과 텔레메트리 구성 값. 이러한 기능을 활성화하려면 Vault 구성에 telemetry {} 스탠자를 설정해야 합니다(telemetry 문서 참고). Vault 메트릭 엔드포인트 인증용 권한이 설정되어 있지 않으면 Vault 구성의 listener "tcp"{} 스탠자에 다음 Vault 서버 telemetry{} 구성이 포함되어야 합니다.
listener "tcp" {
tls_disable = 1
address = "0.0.0.0:8200"
telemetry {
unauthenticated_metrics_access = "true"
}
}
또한 Vault 구성에 다음과 같은 최상위 telemetry {} 스탠자도 포함되어야 합니다.
telemetry {
prometheus_retention_time = "30s",
disable_hostname = true
}
serviceMonitor— Vault 서버 모니터링 구성 값.enabled(boolean: false) — true로 설정하면 Vault Server ServiceMonitor CustomResource 배포 활성화. 이 기능을 켜기 전에 Prometheus operator가 설치되어 있어야 합니다. 그렇지 않으면 operator가 제공하는 CustomResourceDefinitions가 없어 차트 설치가 실패합니다.selectors(dictionary: {}) — ServiceMonitor에 추가할 선택자 라벨.interval(string: "30s") — Prometheus가 메트릭을 스크레이프하는 간격.scrapeTimeout(string: "10s") — Prometheus 스크레이프 시간 제한.tlsConfig(dictionary: {}) — Vault 메트릭 API 스크레이프용 tlsConfig.authorization(dictionary: {}) — Vault 메트릭 API 스크레이프용 권한.metricRelabelings(array: []) — 수집 전 샘플에 적용할 메트릭 재라벨링 규칙.matchLabels(dictionary: {}) — ServiceMonitor용 서비스 선택자 라벨. 기본적으로 ServiceMonitor는 HA 모드에서vault-active: "true"(raft 리더만 스크레이프), standalone 모드에서vault-internal: "true"인 서비스를 대상으로 합니다.
prometheusRules— Prometheus 규칙 구성 값.enabled(boolean: false) — AlertManager 기반 알림용 PrometheusRule 사용자 지정 리소스를 배포합니다. AlertManager가 제대로 배포되어 있어야 합니다.selectors(dictionary: {}) — Prometheus 규칙에 추가할 선택자 라벨.rules(array: []) — 만들 Prometheus 규칙.