Files

299 lines
8.8 KiB
YAML

# Default values for vault.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 3
## The name of the secret to use if pulling images from a private registry.
# imagePullSecret:
image:
repository: vault
tag:
pullPolicy: IfNotPresent
vaultExporter:
enabled: false
repository: grapeshot/vault_exporter
tag: v0.1.2
pullPolicy: IfNotPresent
vaultAddress: 127.0.0.1:8200
# tlsCAFile: /vault/tls/ca.crt
# Prometheus operator Service Monitor:
serviceMonitor:
enabled: false
additionalLabels: {}
# prometheus-scraper: "default"
podPortName: "metrics"
interval: 10s
jobLabel: "vault-exporter"
# Prometheus operator Rules:
prometheusRules:
enabled: false
defaultRules:
# Triggered when pod is not up
vaultUp: true
# Triggered when vault is not initialzed
vaultUninitialized: true
# Triggered when vault is sealed
vaultSealed: true
# Triggered when vault is in standby mode
vaultStandby: false
extraRules: []
# - alert: VaultStandby
# expr: vault_standby{app="vault", release="vault"} == 1
# for: 1m
# labels:
# service: vault
# severity: critical
# annotations:
# summary: "Vault instance {{$labels.pod_name}} is in standby mode"
consulAgent:
repository: consul
tag: 1.4.0
pullPolicy: IfNotPresent
# If you set join to a consul server endpoint, a consul agent will
# be started in the vault pod. If unset, no agent container is
# deployed.
# join: consul.service.consul
#
# If your consul server uses encrypted gossip, specify the secret
# name here. Format should match the stable/consul chart.
# gossipKeySecretName: gossip-key
#
# Optionally override the agent's http port
HttpPort: 8500
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
service:
name: vault
type: ClusterIP
# type: LoadBalancer
# Assign a static LB IP
# loadBalancerIP: 203.0.113.32
loadBalancerSourceRanges: []
# - 10.0.0.0/8
# - 130.211.204.2/32
externalPort: 8200
port: 8200
# clusterExternalPort: 8201
clusterPort: 8201
# clusterIP: None
annotations: {}
additionalSelector: {}
# cloud.google.com/load-balancer-type: "Internal"
#
# An example using type:loadbalancer and AWS internal ELB on kops
# type: LoadBalancer
# annotations:
# dns.alpha.kubernetes.io/internal: vault.internal.domain.name
# service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
ingress:
enabled: false
labels: {}
# Used to create Ingress record (should used with service.type: ClusterIP).
# hosts:
# - chart-example.local
# annotations:
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
# path: /
# tls:
# Secrets must be manually created in the namespace.
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
## Node selector
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
nodeSelector: {}
## Affinity
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app: '{{ template "vault.name" . }}'
release: '{{ .Release.Name }}'
## Tolerations
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations: []
## Deployment annotations
annotations: {}
## Extra Deployment labels
labels: {}
## Pod annotations
podAnnotations: {}
## Pod labels
podLabels: {}
## Read more about kube2iam to provide access to s3 https://github.com/jtblin/kube2iam
# iam.amazonaws.com/role: role-arn
## Sample for unsealing vault on startup
## if automation saves your unseal keys to a k8s secret on deploy
## writing a script to do this would be trivial and solves the
## issues of scaling up if deployed in HA.
# lifecycle:
# postStart:
# exec:
# command: ["./unseal -s my-unseal-keys"]
# Priority class name for pods
priorityClassName: ""
# Minimum number of seconds that newly created replicas must be ready without any containers
# crashing
minReadySeconds: 0
serviceAccount:
## Specifies whether a ServiceAccount should be created
##
create: true
## Annotations to set for the ServiceAccount
# annotations:
# my-annotation: my-annotation-value
annotations: {}
## The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the fullname template
# name:
vault:
# Only used to enable dev mode. When in dev mode, the rest of this config
# section below is not used to configure Vault. See
# https://www.vaultproject.io/intro/getting-started/dev-server.html for more
# information.
dev: true
# Configure additional arguments to pass to vault server command
extraArgs: []
# Configure additional environment variables for the Vault containers
extraEnv: []
# - name: VAULT_API_ADDR
# value: "https://vault.internal.domain.name:8200"
extraContainers: []
## Additional containers to be added to the Vault pod
# extraContainers:
# - name: vault-sidecar
# image: vault-sidecar:latest
# volumeMounts:
# - name: some-mount
# mountPath: /some/path
# Extra volumes to mount to the Vault pod. The comments show an example usage
# for mounting a TLS secret. In this example, the volume name must match
# the volumeMount name. The two other fields required are the name of the
# Kubernetes secret (created outside of this chart), and the mountPath
# at which it should be mounted in the Vault container.
extraVolumes: []
# - name: vault-tls
# secret:
# secretName: vault-tls-secret
extraVolumeMounts: []
# - name: vault-tls
# mountPath: /vault/tls
# readOnly: true
extraInitContainers: []
## Init containers to be added
# extraInitContainers:
# - name: do-something
# image: busybox
# command: ['do', 'something']
# Log level
# https://www.vaultproject.io/docs/commands/server.html#log-level
logLevel: "info"
## Additional volumes to the vault pod.
# - name: extra-volume
# secret:
# secretName: some-secret
liveness:
aliveIfUninitialized: true
aliveIfSealed: true
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3
successThreshold: 1
timeoutSeconds: 1
readiness:
readyIfSealed: false
readyIfStandby: true
readyIfUninitialized: true
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
successThreshold: 1
timeoutSeconds: 1
# Set the `VAULT_API_ADDR` environment variable to the Pod IP Address
# This is the address (full URL) to advertise to other Vault servers in the cluster for client redirection.
# See https://www.vaultproject.io/docs/configuration/#api_addr
podApiAddress: true
## Use an existing config in a named ConfigMap
# existingConfigName: vault-cm
config:
# A YAML representation of a final vault config.json file.
# See https://www.vaultproject.io/docs/configuration/ for more information.
listener:
tcp:
address: '[::]:8200'
cluster_address: '[::]:8201'
tls_disable: true
# tls_cert_file: /vault/tls/server.crt
# tls_key_file: /vault/tls/server.key
# See https://www.vaultproject.io/docs/configuration/storage/ for storage backends
storage: {}
# consul:
# address: ""
# path: ""
#
# etcd:
# address: "http://vault-etcd:2379"
# path: "vault/"
# etcd_api: "v3"
# ha_enabled: "true"
#
# s3:
# bucket: ""
# region: ""
# access_key: ""
# secret_key: ""
# endpoint: "" # When not using AWS S3
#
# gcs:
# bucket: ""
# # Use a custom secret to mount this file.
# credentials_file: ""
backendPolicy: []
rbac:
## Enable RBAC
create: true