fix csi helm deployment (#486)
* fix serviceaccount and clusterrole name reference (full name) * add server.enabled option, align with documentation * add unit tests * update server.enabled behaviour to explicit true and update tests
This commit is contained in:
parent
a6856646aa
commit
7a71c0fec4
9 changed files with 97 additions and 2 deletions
|
@ -53,6 +53,8 @@ template logic.
|
|||
{{- define "vault.mode" -}}
|
||||
{{- if .Values.injector.externalVaultAddr -}}
|
||||
{{- $_ := set . "mode" "external" -}}
|
||||
{{- else if ne (.Values.server.enabled | toString) "true" -}}
|
||||
{{- $_ := set . "mode" "external" -}}
|
||||
{{- else if eq (.Values.server.dev.enabled | toString) "true" -}}
|
||||
{{- $_ := set . "mode" "dev" -}}
|
||||
{{- else if eq (.Values.server.ha.enabled | toString) "true" -}}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ include "vault.name" . }}-csi-provider-clusterrole
|
||||
name: {{ template "vault.fullname" . }}-csi-provider-clusterrole
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "vault.name" . }}-csi-provider
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
|
|
|
@ -27,7 +27,7 @@ spec:
|
|||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{ template "csi.pod.annotations" . }}
|
||||
spec:
|
||||
serviceAccountName: {{ include "vault.name" . }}-csi-provider
|
||||
serviceAccountName: {{ template "vault.fullname" . }}-csi-provider
|
||||
containers:
|
||||
- name: {{ include "vault.name" . }}-csi-provider
|
||||
{{ template "csi.resources" . }}
|
||||
|
|
|
@ -20,3 +20,14 @@ load _helpers
|
|||
yq 'length > 0' | tee /dev/stderr)
|
||||
[ "${actual}" = "true" ]
|
||||
}
|
||||
|
||||
# ClusterRole name
|
||||
@test "csi/ClusterRole: name" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
--show-only templates/csi-clusterrole.yaml \
|
||||
--set "csi.enabled=true" \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.metadata.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider-clusterrole" ]
|
||||
}
|
|
@ -20,3 +20,25 @@ load _helpers
|
|||
yq 'length > 0' | tee /dev/stderr)
|
||||
[ "${actual}" = "true" ]
|
||||
}
|
||||
|
||||
# ClusterRoleBinding cluster role ref name
|
||||
@test "csi/ClusterRoleBinding: cluster role ref name" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
--show-only templates/csi-clusterrolebinding.yaml \
|
||||
--set "csi.enabled=true" \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.roleRef.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider-clusterrole" ]
|
||||
}
|
||||
|
||||
# ClusterRoleBinding service account name
|
||||
@test "csi/ClusterRoleBinding: service account name" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
--show-only templates/csi-clusterrolebinding.yaml \
|
||||
--set "csi.enabled=true" \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.subjects[0].name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider" ]
|
||||
}
|
|
@ -30,6 +30,17 @@ load _helpers
|
|||
[ "${actual}" = "false" ]
|
||||
}
|
||||
|
||||
# serviceAccountName reference name
|
||||
@test "csi/daemonset: serviceAccountName reference name" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
--show-only templates/csi-daemonset.yaml \
|
||||
--set "csi.enabled=true" \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.template.spec.serviceAccountName' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider" ]
|
||||
}
|
||||
|
||||
# Image
|
||||
@test "csi/daemonset: image is configurable" {
|
||||
cd `chart_dir`
|
||||
|
|
|
@ -21,6 +21,17 @@ load _helpers
|
|||
[ "${actual}" = "true" ]
|
||||
}
|
||||
|
||||
# serviceAccountName reference name
|
||||
@test "csi/daemonset: serviceAccountName name" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
--show-only templates/csi-serviceaccount.yaml \
|
||||
--set "csi.enabled=true" \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.metadata.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider" ]
|
||||
}
|
||||
|
||||
@test "csi/serviceAccount: specify annotations" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
|
|
|
@ -2,6 +2,41 @@
|
|||
|
||||
load _helpers
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# disable / enable server deployment
|
||||
|
||||
@test "server/StatefulSet: disabled server.enabled" {
|
||||
cd `chart_dir`
|
||||
local actual=$( (helm template \
|
||||
--show-only templates/server-statefulset.yaml \
|
||||
--set 'server.enabled=false' \
|
||||
. || echo "---") | tee /dev/stderr |
|
||||
yq 'length > 0' | tee /dev/stderr)
|
||||
[ "${actual}" = "false" ]
|
||||
}
|
||||
|
||||
@test "server/StatefulSet: disabled server.enabled random string" {
|
||||
cd `chart_dir`
|
||||
local actual=$( (helm template \
|
||||
--show-only templates/server-statefulset.yaml \
|
||||
--set 'server.enabled=blabla' \
|
||||
. || echo "---") | tee /dev/stderr |
|
||||
yq 'length > 0' | tee /dev/stderr)
|
||||
[ "${actual}" = "false" ]
|
||||
}
|
||||
|
||||
@test "server/StatefulSet: enabled server.enabled explicit true" {
|
||||
cd `chart_dir`
|
||||
local actual=$( (helm template \
|
||||
--show-only templates/server-statefulset.yaml \
|
||||
--set 'server.enabled=true' \
|
||||
. || echo "---") | tee /dev/stderr |
|
||||
yq 'length > 0' | tee /dev/stderr)
|
||||
[ "${actual}" = "true" ]
|
||||
}
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
@test "server/standalone-StatefulSet: default server.standalone.enabled" {
|
||||
cd `chart_dir`
|
||||
local actual=$(helm template \
|
||||
|
|
|
@ -174,6 +174,9 @@ injector:
|
|||
annotations: {}
|
||||
|
||||
server:
|
||||
# If not set to true, Vault server will not be installed. See vault.mode in _helpers.tpl for implementation details
|
||||
enabled: true
|
||||
|
||||
# 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.
|
||||
|
|
Loading…
Reference in a new issue