Last active
November 9, 2020 20:21
-
-
Save todd-dsm/58e975c487f6fce1dd0f671db54942ee to your computer and use it in GitHub Desktop.
vault ui definition; exposes the ui on 443 BUT does NOT require TLS for private COMMS; works
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Vault Helm Chart Value Overrides | |
global: | |
enabled: true | |
tlsDisable: true | |
# Create PodSecurityPolicy for pods | |
psp: | |
enable: false | |
# Annotation for PodSecurityPolicy. | |
# This is a multi-line templated string map, and can also be set as YAML. | |
annotations: | | |
seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default,runtime/default | |
apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default | |
seccomp.security.alpha.kubernetes.io/defaultProfileName: runtime/default | |
apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default | |
injector: | |
enabled: true | |
# External vault server address for the injector to use. Setting this will | |
# disable deployment of a vault server along with the injector. | |
metrics: | |
enabled: false | |
externalVaultAddr: "" | |
# image sets the repo and tag of the vault-k8s image to use for the injector. | |
image: | |
repository: "hashicorp/vault-k8s" | |
tag: "0.6.0" | |
pullPolicy: IfNotPresent | |
# agentImage sets the repo and tag of the Vault image to use for the Vault Agent | |
# containers. This should be set to the official Vault image. Vault 1.3.1+ is | |
# required. | |
agentImage: | |
repository: "vault" | |
tag: "1.5.4" | |
# Mount Path of the Vault Kubernetes Auth Method. | |
authPath: "auth/kubernetes" | |
# Configures the log verbosity of the injector. Supported log levels: Trace, Debug, Error, Warn, Info | |
logLevel: "info" | |
# Configures the log format of the injector. Supported log formats: "standard", "json". | |
logFormat: "standard" | |
# Configures all Vault Agent sidecars to revoke their token when shutting down | |
revokeOnShutdown: false | |
# resources: | |
# requests: | |
# memory: 256Mi | |
# cpu: 250m | |
# limits: | |
# memory: 256Mi | |
# cpu: 250m | |
server: | |
# Resource requests, limits, etc. for the server cluster placement. This | |
# should map directly to the value of the resources field for a PodSpec. | |
# By default no direct resource request is made. | |
image: | |
repository: "vault" | |
tag: "1.5.4" | |
# Overrides the default Image Pull Policy | |
pullPolicy: IfNotPresent | |
# Configure the Update Strategy Type for the StatefulSet | |
# See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies | |
updateStrategyType: "OnDelete" | |
# These Resource Limits are in line with node requirements in the | |
# Vault Reference Architecture for a Small Cluster | |
# resources: | |
# requests: | |
# memory: 8Gi | |
# cpu: 2000m | |
# limits: | |
# memory: 16Gi | |
# cpu: 2000m | |
ingress: | |
enabled: true | |
labels: {} | |
# traffic: external | |
annotations: | |
kubernetes.io/ingress.class: nginx | |
kubernetes.io/tls-acme: "true" | |
hosts: | |
- host: vault.domain.tld # required | |
paths: [] | |
tls: | |
- secretName: vault-tls # arbitrary name | |
hosts: | |
- vault.domain.tld # required | |
# authDelegator enables a cluster role binding to be attached to the service | |
# account. This cluster role binding can be used to setup Kubernetes auth | |
# method. https://www.vaultproject.io/docs/auth/kubernetes.html | |
authDelegator: | |
enabled: true | |
# For HA configuration and because we need to manually init the vault, | |
# we need to define custom readiness/liveness Probe settings | |
# Used to define custom readinessProbe settings | |
readinessProbe: | |
enabled: true | |
# If you need to use a http path instead of the default exec | |
# path: /v1/sys/health?standbyok=true | |
# Used to enable a livenessProbe for the pods | |
livenessProbe: | |
enabled: false | |
path: "/v1/sys/health?standbyok=true" | |
initialDelaySeconds: 60 | |
# extraEnvironmentVars is a list of extra environment variables to set with the stateful set. These could be | |
# used to include variables required for auto-unseal. | |
extraEnvironmentVars: [] | |
# extraVolumes is a list of extra volumes to mount. These will be exposed | |
# to Vault in the path '/vault/userconfig/<name>/'. | |
extraVolumes: [] | |
# Affinity Settings | |
# Commenting out or setting as empty the affinity variable, will allow | |
# deployment to single node services such as Minikube | |
affinity: | | |
podAntiAffinity: | |
requiredDuringSchedulingIgnoredDuringExecution: | |
- labelSelector: | |
matchLabels: | |
app.kubernetes.io/name: {{ template "vault.name" . }} | |
app.kubernetes.io/instance: "{{ .Release.Name }}" | |
component: server | |
topologyKey: kubernetes.io/hostname | |
# This configures the Vault StatefulSet to create a PVC for audit logs. | |
# See https://www.vaultproject.io/docs/audit/index.html to know more | |
auditStorage: | |
enabled: true | |
standalone: | |
enabled: false | |
# Enables a headless service to be used by the Vault Statefulset | |
service: | |
enabled: true | |
# Port on which Vault server is listening | |
port: 8200 | |
# Target port to which the service should be mapped to | |
targetPort: 8200 | |
# config is a raw string of default configuration when using a Stateful | |
# deployment. Default is to use a PersistentVolumeClaim mounted at /vault/data | |
# and store data there. This is only used when using a Replica count of 1, and | |
# using a stateful set. This should be HCL. | |
# Note: Configuration files are stored in ConfigMaps so sensitive data | |
# such as passwords should be either mounted through extraSecretEnvironmentVars | |
# or through a Kube secret. For more information see: | |
# https://www.vaultproject.io/docs/platform/k8s/helm/run#protecting-sensitive-vault-configurations | |
config: | | |
ui = true | |
listener "tcp" { | |
tls_disable = 1 | |
address = "[::]:8200" | |
cluster_address = "[::]:8201" | |
} | |
storage "file" { | |
path = "/vault/data" | |
} | |
# Run Vault in "HA" mode. | |
ha: | |
enabled: true | |
replicas: 3 | |
raft: | |
enabled: true | |
setNodeId: true | |
config: | | |
ui = true | |
listener "tcp" { | |
tls_disable = 1 | |
address = "[::]:8200" | |
cluster_address = "[::]:8201" | |
} | |
storage "raft" { | |
path = "/vault/data" | |
} | |
service_registration "kubernetes" {} | |
# Example configuration for using auto-unseal, using AWS KMS | |
seal "awskms" { | |
region = "us-east-1" | |
kms_key_id = "631234ee-6f5b-0101-912b-d75fa1234376" | |
endpoint = "" | |
} | |
# config is a raw string of default configuration when using a Stateful | |
# deployment. Default is to use a Consul for its HA storage backend. | |
# This should be HCL. | |
# Note: Configuration files are stored in ConfigMaps so sensitive data | |
# such as passwords should be either mounted through extraSecretEnvironmentVars | |
# or through a Kube secret. For more information see: | |
# https://www.vaultproject.io/docs/platform/k8s/helm/run#protecting-sensitive-vault-configurations | |
config: | | |
# A disruption budget limits the number of pods of a replicated application | |
# that are down simultaneously from voluntary disruptions | |
disruptionBudget: | |
enabled: true | |
# maxUnavailable will default to (n/2)-1 where n is the number of | |
# replicas. If you'd like a custom value, you can specify an override here. | |
maxUnavailable: null | |
# Definition of the serviceAccount used to run Vault. | |
serviceAccount: | |
# Extra annotations for the serviceAccount definition. This can either be | |
# YAML or a YAML-formatted multi-line templated string map of the | |
# annotations to apply to the serviceAccount. | |
annotations: {} | |
# Vault UI | |
ui: | |
enabled: true | |
serviceType: "LoadBalancer" | |
serviceNodePort: null | |
externalPort: '443' | |
annotations: | |
external-dns.alpha.kubernetes.io/hostname: vault.domain.tld. | |
external-dns.alpha.kubernetes.io/ttl: '60' | |
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http | |
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: '443' | |
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-1:010101010101:certificate/15123481-1234-4e2e-ace0-672012348b44 | |
service.beta.kubernetes.io/aws-load-balancer-security-policy: ELBSecurityPolicy-TLS-1-2-2017-01 | |
# additional-resource-tags (below) causes the LB to not be created | |
#service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: Name='vault',AppGroup='project-name',Environment='prod',Product='HashiCorp Vault',service='vault-ui' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment