Add persistentVolumeClaimRetentionPolicy variable to values.yaml (#965)
This variable is used to set the persistentVolumeClaimRetentionPolicy value in the server-statefulset.yaml template, which is used to configure the retention policy for the PVCs used by the server statefulset.
This commit is contained in:
parent
2bb6994dd9
commit
ad64f921b5
5 changed files with 93 additions and 0 deletions
|
@ -1,5 +1,9 @@
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
* server: Support setting `persistentVolumeClaimRetentionPolicy` on the StatefulSet [GH-965](https://github.com/hashicorp/vault-helm/pull/965)
|
||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
|
||||||
* Support exec in the server liveness probe [GH-971](https://github.com/hashicorp/vault-helm/pull/971)
|
* Support exec in the server liveness probe [GH-971](https://github.com/hashicorp/vault-helm/pull/971)
|
||||||
|
|
|
@ -24,6 +24,9 @@ spec:
|
||||||
replicas: {{ template "vault.replicas" . }}
|
replicas: {{ template "vault.replicas" . }}
|
||||||
updateStrategy:
|
updateStrategy:
|
||||||
type: {{ .Values.server.updateStrategyType }}
|
type: {{ .Values.server.updateStrategyType }}
|
||||||
|
{{- if and (semverCompare ">= 1.23-0" .Capabilities.KubeVersion.Version) (.Values.server.persistentVolumeClaimRetentionPolicy) }}
|
||||||
|
persistentVolumeClaimRetentionPolicy: {{ toYaml .Values.server.persistentVolumeClaimRetentionPolicy | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/name: {{ template "vault.name" . }}
|
app.kubernetes.io/name: {{ template "vault.name" . }}
|
||||||
|
|
|
@ -221,6 +221,73 @@ load _helpers
|
||||||
[ "${actual}" = "OnDelete" ]
|
[ "${actual}" = "OnDelete" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# persistentVolumeClaimRetentionPolicy
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: persistentVolumeClaimRetentionPolicy not set by default when kubernetes < 1.23" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
-s templates/server-statefulset.yaml \
|
||||||
|
--kube-version "1.22" \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.persistentVolumeClaimRetentionPolicy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: unset persistentVolumeClaimRetentionPolicy.whenDeleted when kubernetes < 1.23" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
-s templates/server-statefulset.yaml \
|
||||||
|
--kube-version "1.22" \
|
||||||
|
--set 'server.persistentVolumeClaimRetentionPolicy.whenDeleted=Delete' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.persistentVolumeClaimRetentionPolicy.whenDeleted' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: unset persistentVolumeClaimRetentionPolicy.whenScaled when kubernetes < 1.23" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
-s templates/server-statefulset.yaml \
|
||||||
|
--kube-version "1.22" \
|
||||||
|
--set 'server.persistentVolumeClaimRetentionPolicy.whenScaled=Delete' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.persistentVolumeClaimRetentionPolicy.whenScaled' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: persistentVolumeClaimRetentionPolicy not set by default when kubernetes >= 1.23" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
-s templates/server-statefulset.yaml \
|
||||||
|
--kube-version "1.23" \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.persistentVolumeClaimRetentionPolicy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: can set persistentVolumeClaimRetentionPolicy.whenDeleted when kubernetes >= 1.23" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
-s templates/server-statefulset.yaml \
|
||||||
|
--kube-version "1.23" \
|
||||||
|
--set 'server.persistentVolumeClaimRetentionPolicy.whenDeleted=Delete' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.persistentVolumeClaimRetentionPolicy.whenDeleted' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "Delete" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: can set persistentVolumeClaimRetentionPolicy.whenScaled when kubernetes >= 1.23" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
-s templates/server-statefulset.yaml \
|
||||||
|
--kube-version "1.23" \
|
||||||
|
--set 'server.persistentVolumeClaimRetentionPolicy.whenScaled=Delete' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.persistentVolumeClaimRetentionPolicy.whenScaled' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "Delete" ]
|
||||||
|
}
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# replicas
|
# replicas
|
||||||
|
|
||||||
|
|
|
@ -619,6 +619,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"persistentVolumeClaimRetentionPolicy": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"whenDeleted": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"whenScaled": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"dev": {
|
"dev": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
@ -762,6 +762,14 @@ server:
|
||||||
# Annotations to apply to the PVC
|
# Annotations to apply to the PVC
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
# Persistent Volume Claim (PVC) retention policy
|
||||||
|
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
|
||||||
|
# Example:
|
||||||
|
# persistentVolumeClaimRetentionPolicy:
|
||||||
|
# whenDeleted: Retain
|
||||||
|
# whenScaled: Retain
|
||||||
|
persistentVolumeClaimRetentionPolicy: {}
|
||||||
|
|
||||||
# This configures the Vault Statefulset to create a PVC for audit
|
# This configures the Vault Statefulset to create a PVC for audit
|
||||||
# logs. Once Vault is deployed, initialized, and unsealed, Vault must
|
# logs. Once Vault is deployed, initialized, and unsealed, Vault must
|
||||||
# be configured to use this for audit logs. This will be mounted to
|
# be configured to use this for audit logs. This will be mounted to
|
||||||
|
|
Loading…
Reference in a new issue