Skip to content

Commit 3e16e05

Browse files
authored
Add labels for PVC template (#969)
1 parent e77dce3 commit 3e16e05

File tree

5 files changed

+95
-0
lines changed

5 files changed

+95
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Features:
44

55
* server: Support setting `persistentVolumeClaimRetentionPolicy` on the StatefulSet [GH-965](https://github.com/hashicorp/vault-helm/pull/965)
6+
* server: Support setting labels on PVCs [GH-969](https://github.com/hashicorp/vault-helm/pull/969)
67

78
Improvements:
89

templates/_helpers.tpl

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ storage might be desired by the user.
289289
- metadata:
290290
name: data
291291
{{- include "vault.dataVolumeClaim.annotations" . | nindent 6 }}
292+
{{- include "vault.dataVolumeClaim.labels" . | nindent 6 }}
292293
spec:
293294
accessModes:
294295
- {{ .Values.server.dataStorage.accessMode | default "ReadWriteOnce" }}
@@ -303,6 +304,7 @@ storage might be desired by the user.
303304
- metadata:
304305
name: audit
305306
{{- include "vault.auditVolumeClaim.annotations" . | nindent 6 }}
307+
{{- include "vault.auditVolumeClaim.labels" . | nindent 6 }}
306308
spec:
307309
accessModes:
308310
- {{ .Values.server.auditStorage.accessMode | default "ReadWriteOnce" }}
@@ -782,6 +784,21 @@ Sets VolumeClaim annotations for data volume
782784
{{- end }}
783785
{{- end -}}
784786

787+
{{/*
788+
Sets VolumeClaim labels for data volume
789+
*/}}
790+
{{- define "vault.dataVolumeClaim.labels" -}}
791+
{{- if and (ne .mode "dev") (.Values.server.dataStorage.enabled) (.Values.server.dataStorage.labels) }}
792+
labels:
793+
{{- $tp := typeOf .Values.server.dataStorage.labels }}
794+
{{- if eq $tp "string" }}
795+
{{- tpl .Values.server.dataStorage.labels . | nindent 4 }}
796+
{{- else }}
797+
{{- toYaml .Values.server.dataStorage.labels | nindent 4 }}
798+
{{- end }}
799+
{{- end }}
800+
{{- end -}}
801+
785802
{{/*
786803
Sets VolumeClaim annotations for audit volume
787804
*/}}
@@ -797,6 +814,21 @@ Sets VolumeClaim annotations for audit volume
797814
{{- end }}
798815
{{- end -}}
799816

817+
{{/*
818+
Sets VolumeClaim labels for audit volume
819+
*/}}
820+
{{- define "vault.auditVolumeClaim.labels" -}}
821+
{{- if and (ne .mode "dev") (.Values.server.auditStorage.enabled) (.Values.server.auditStorage.labels) }}
822+
labels:
823+
{{- $tp := typeOf .Values.server.auditStorage.labels }}
824+
{{- if eq $tp "string" }}
825+
{{- tpl .Values.server.auditStorage.labels . | nindent 4 }}
826+
{{- else }}
827+
{{- toYaml .Values.server.auditStorage.labels | nindent 4 }}
828+
{{- end }}
829+
{{- end }}
830+
{{- end -}}
831+
800832
{{/*
801833
Set's the container resources if the user has set any.
802834
*/}}

test/unit/server-statefulset.bats

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2000,3 +2000,49 @@ load _helpers
20002000
yq -r '.spec.template.spec.containers[0].livenessProbe.httpGet.port' | tee /dev/stderr)
20012001
[ "${actual}" = "8200" ]
20022002
}
2003+
2004+
#--------------------------------------------------------------------
2005+
# labels
2006+
@test "server/standalone-StatefulSet: auditStorage volumeClaim labels string" {
2007+
cd `chart_dir`
2008+
local actual=$(helm template \
2009+
--show-only templates/server-statefulset.yaml \
2010+
--set 'server.auditStorage.enabled=true' \
2011+
--set 'server.auditStorage.labels=vaultIsAwesome: true' \
2012+
. | tee /dev/stderr |
2013+
yq -r '.spec.volumeClaimTemplates[1].metadata.labels["vaultIsAwesome"]' | tee /dev/stderr)
2014+
[ "${actual}" = "true" ]
2015+
}
2016+
2017+
@test "server/standalone-StatefulSet: dataStorage volumeClaim labels string" {
2018+
cd `chart_dir`
2019+
local actual=$(helm template \
2020+
--show-only templates/server-statefulset.yaml \
2021+
--set 'server.dataStorage.enabled=true' \
2022+
--set 'server.dataStorage.labels=vaultIsAwesome: true' \
2023+
. | tee /dev/stderr |
2024+
yq -r '.spec.volumeClaimTemplates[0].metadata.labels["vaultIsAwesome"]' | tee /dev/stderr)
2025+
[ "${actual}" = "true" ]
2026+
}
2027+
2028+
@test "server/standalone-StatefulSet: auditStorage volumeClaim labels yaml" {
2029+
cd `chart_dir`
2030+
local actual=$(helm template \
2031+
--show-only templates/server-statefulset.yaml \
2032+
--set 'server.auditStorage.enabled=true' \
2033+
--set 'server.auditStorage.labels.vaultIsAwesome=true' \
2034+
. | tee /dev/stderr |
2035+
yq -r '.spec.volumeClaimTemplates[1].metadata.labels["vaultIsAwesome"]' | tee /dev/stderr)
2036+
[ "${actual}" = "true" ]
2037+
}
2038+
2039+
@test "server/standalone-StatefulSet: dataStorage volumeClaim labels yaml" {
2040+
cd `chart_dir`
2041+
local actual=$(helm template \
2042+
--show-only templates/server-statefulset.yaml \
2043+
--set 'server.dataStorage.enabled=true' \
2044+
--set 'server.dataStorage.labels.vaultIsAwesome=true' \
2045+
. | tee /dev/stderr |
2046+
yq -r '.spec.volumeClaimTemplates[0].metadata.labels["vaultIsAwesome"]' | tee /dev/stderr)
2047+
[ "${actual}" = "true" ]
2048+
}

values.schema.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,12 @@
559559
"string"
560560
]
561561
},
562+
"labels": {
563+
"type": [
564+
"object",
565+
"string"
566+
]
567+
},
562568
"enabled": {
563569
"type": [
564570
"boolean",
@@ -599,6 +605,12 @@
599605
"string"
600606
]
601607
},
608+
"labels": {
609+
"type": [
610+
"object",
611+
"string"
612+
]
613+
},
602614
"enabled": {
603615
"type": [
604616
"boolean",

values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,8 @@ server:
769769
accessMode: ReadWriteOnce
770770
# Annotations to apply to the PVC
771771
annotations: {}
772+
# Labels to apply to the PVC
773+
labels: {}
772774

773775
# Persistent Volume Claim (PVC) retention policy
774776
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
@@ -796,6 +798,8 @@ server:
796798
accessMode: ReadWriteOnce
797799
# Annotations to apply to the PVC
798800
annotations: {}
801+
# Labels to apply to the PVC
802+
labels: {}
799803

800804
# Run Vault in "dev" mode. This requires no further setup, no state management,
801805
# and no initialization. This is useful for experimenting with Vault without

0 commit comments

Comments
 (0)