2018-11-30 22:02:33 +00:00
|
|
|
#!/usr/bin/env bats
|
|
|
|
|
|
|
|
load _helpers
|
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: enable with server.ha.enabled true" {
|
2018-11-30 22:02:33 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
2018-11-30 22:02:33 +00:00
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq 'length > 0' | tee /dev/stderr)
|
2019-07-31 18:26:12 +00:00
|
|
|
[ "${actual}" = "true" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
}
|
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: disable with global.enabled" {
|
2018-11-30 22:02:33 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'global.enabled=false' \
|
|
|
|
--set 'server.ha.enabled=true' \
|
2018-11-30 22:02:33 +00:00
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq 'length > 0' | tee /dev/stderr)
|
2019-07-31 18:26:12 +00:00
|
|
|
[ "${actual}" = "false" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
}
|
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: image defaults to global.image" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'global.image=foo' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "foo" ]
|
|
|
|
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'global.image=foo' \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.containers[0].image' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "foo" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# updateStrategy
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: OnDelete updateStrategy" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.updateStrategy.type' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "OnDelete" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# affinity
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: default affinity" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.template.spec.affinity' | tee /dev/stderr)
|
|
|
|
[ "${actual}" != "null" ]
|
|
|
|
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.affinity=' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.affinity' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "null" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# replicas
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: default replicas" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.replicas' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "3" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: custom replicas" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.ha.replicas=10' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.replicas' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "10" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# resources
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: default resources" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.template.spec.containers[0].resources' | tee /dev/stderr)
|
2018-11-30 22:44:38 +00:00
|
|
|
[ "${actual}" = "null" ]
|
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: custom resources" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.resources.requests.memory=256Mi' \
|
|
|
|
--set 'server.resources.requests.cpu=250m' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.template.spec.containers[0].resources.requests.memory' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "256Mi" ]
|
|
|
|
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.resources.limits.memory=256Mi' \
|
|
|
|
--set 'server.resources.limits.cpu=250m' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.containers[0].resources.limits.memory' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "256Mi" ]
|
|
|
|
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.resources.requests.cpu=250m' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.containers[0].resources.requests.cpu' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "250m" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.resources.limits.cpu=250m' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.template.spec.containers[0].resources.limits.cpu' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "250m" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# extraVolumes
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: adds extra volume" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
|
|
|
# Test that it defines it
|
|
|
|
local object=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.extraVolumes[0].type=configMap' \
|
|
|
|
--set 'server.extraVolumes[0].name=foo' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.volumes[] | select(.name == "userconfig-foo")' | tee /dev/stderr)
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.configMap.name' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "foo" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.configMap.secretName' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "null" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
# Test that it mounts it
|
|
|
|
local object=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.extraVolumes[0].type=configMap' \
|
|
|
|
--set 'server.extraVolumes[0].name=foo' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.containers[0].volumeMounts[] | select(.name == "userconfig-foo")' | tee /dev/stderr)
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.readOnly' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "true" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.mountPath' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "/vault/userconfig/foo" ]
|
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: adds extra secret volume" {
|
2018-11-30 22:44:38 +00:00
|
|
|
cd `chart_dir`
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
# Test that it defines it
|
|
|
|
local object=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.extraVolumes[0].type=secret' \
|
|
|
|
--set 'server.extraVolumes[0].name=foo' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.volumes[] | select(.name == "userconfig-foo")' | tee /dev/stderr)
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.secret.name' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "null" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.secret.secretName' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "foo" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
# Test that it mounts it
|
|
|
|
local object=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.extraVolumes[0].type=configMap' \
|
|
|
|
--set 'server.extraVolumes[0].name=foo' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.containers[0].volumeMounts[] | select(.name == "userconfig-foo")' | tee /dev/stderr)
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.readOnly' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "true" ]
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.mountPath' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "/vault/userconfig/foo" ]
|
2019-07-31 18:26:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# extraEnvironmentVars
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: set extraEnvironmentVars" {
|
|
|
|
cd `chart_dir`
|
|
|
|
local object=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.extraEnvironmentVars.FOO=bar' \
|
|
|
|
--set 'server.extraEnvironmentVars.FOOBAR=foobar' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.template.spec.containers[0].env' | tee /dev/stderr)
|
|
|
|
|
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.[4].name' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "FOO" ]
|
|
|
|
|
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.[4].value' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "bar" ]
|
|
|
|
|
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.[5].name' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "FOOBAR" ]
|
|
|
|
|
|
|
|
local actual=$(echo $object |
|
|
|
|
yq -r '.[5].value' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "foobar" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# storage class
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: no storage by default" {
|
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.volumeClaimTemplates | length' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "0" ]
|
|
|
|
}
|
|
|
|
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: cant set data storage" {
|
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.dataStorage.enabled=true' \
|
|
|
|
--set 'server.dataStorage.storageClass=foo' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.volumeClaimTemplates' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "null" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: can set storageClass" {
|
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.dataStorage.enabled=false' \
|
|
|
|
--set 'server.auditStorage.enabled=true' \
|
|
|
|
--set 'server.auditStorage.storageClass=foo' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.volumeClaimTemplates[0].spec.storageClassName' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "foo" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "server/ha-StatefulSet: can disable storage" {
|
|
|
|
cd `chart_dir`
|
2018-11-30 22:44:38 +00:00
|
|
|
local actual=$(helm template \
|
2019-07-31 18:26:12 +00:00
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.auditStorage.enabled=false' \
|
|
|
|
--set 'server.dataStorage.enabled=false' \
|
2018-11-30 22:44:38 +00:00
|
|
|
. | tee /dev/stderr |
|
2019-07-31 18:26:12 +00:00
|
|
|
yq -r '.spec.volumeClaimTemplates | length' | tee /dev/stderr)
|
2018-11-30 22:44:38 +00:00
|
|
|
[ "${actual}" = "0" ]
|
2019-07-31 18:26:12 +00:00
|
|
|
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.auditStorage.enabled=true' \
|
|
|
|
--set 'server.dataStorage.enabled=false' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.volumeClaimTemplates | length' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "1" ]
|
2018-11-30 22:44:38 +00:00
|
|
|
}
|
2018-11-30 22:02:33 +00:00
|
|
|
|
2019-07-31 18:26:12 +00:00
|
|
|
@test "server/ha-StatefulSet: no data storage" {
|
|
|
|
cd `chart_dir`
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.auditStorage.enabled=false' \
|
|
|
|
--set 'server.dataStorage.enabled=true' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.volumeClaimTemplates | length' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "0" ]
|
|
|
|
|
|
|
|
local actual=$(helm template \
|
|
|
|
-x templates/server-statefulset.yaml \
|
|
|
|
--set 'server.ha.enabled=true' \
|
|
|
|
--set 'server.auditStorage.enabled=true' \
|
|
|
|
--set 'server.dataStorage.enabled=true' \
|
|
|
|
. | tee /dev/stderr |
|
|
|
|
yq -r '.spec.volumeClaimTemplates | length' | tee /dev/stderr)
|
|
|
|
[ "${actual}" = "1" ]
|
|
|
|
}
|