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") — 사용자 지정 템플릿이 정의되지 않은 경우 렌더링된 시크릿의 기본 템플릿 유형. 가능한 값은 mapjson.
    • 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 공개 인증서 번들. Kubernetes MutatingAdmissionWebhook 리소스에 정적으로 구성해야 하므로 문자열로 지정해야 하며 시크릿에서 올 수 없습니다. 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: 1
    
  • strategy (dictionary: {}) — 배포 업데이트 전략. 다중 줄 문자열 또는 YAML 맵.
    strategy:
      rollingUpdate:
        maxSurge: 25%
        maxUnavailable: 25%
      type: RollingUpdate
    
  • livenessProbe — 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=true
    • secretName (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의 Kubernetes service_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+에 PodTopologyLabelsAdmissiontopology.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 규칙.

더 알아보기 (Learn more)