openbao-helm/test/unit/prometheus-prometheusrules.bats
risson a276600b71
Default prometheusRules.rules should be an empty list (#886)
Support for prometheus-operator was added in
https://github.com/hashicorp/vault-helm/pull/772 and a default empty
set of rules was defined as an empty map `{}`. However, as evidenced
by the commented out rule examples below that very same values.yaml,
this is expected to be a list, so `rules:` value should be set to an
empty list `[]`.

Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Co-authored-by: Vitaliy <vitaliyf@users.noreply.github.com>
2023-05-17 22:01:22 -07:00

68 lines
2.9 KiB
Bash
Executable file

#!/usr/bin/env bats
load _helpers
@test "prometheus/PrometheusRules-server: assertDisabled by default" {
cd `chart_dir`
local actual=$( (helm template \
--show-only templates/prometheus-prometheusrules.yaml \
--set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \
. || echo "---") | tee /dev/stderr |
yq 'length > 0' | tee /dev/stderr)
[ "${actual}" = "false" ]
}
@test "prometheus/PrometheusRules-server: assertDisabled with rules-defined=false" {
cd `chart_dir`
local actual=$( (helm template \
--show-only templates/prometheus-prometheusrules.yaml \
--set 'serverTelemetry.prometheusRules.enabled=true' \
. || echo "---") | tee /dev/stderr | yq 'length > 0' | tee /dev/stderr)
[ "${actual}" = "false" ]
}
@test "prometheus/PrometheusRules-server: assertEnabled with rules-defined=true" {
cd `chart_dir`
local output=$( (helm template \
--show-only templates/prometheus-prometheusrules.yaml \
--set 'serverTelemetry.prometheusRules.enabled=true' \
--set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \
--set 'serverTelemetry.prometheusRules.rules[1].baz=qux' \
.) | tee /dev/stderr )
[ "$(echo "$output" | yq -r '.spec.groups | length')" = "1" ]
[ "$(echo "$output" | yq -r '.spec.groups[0] | length')" = "2" ]
[ "$(echo "$output" | yq -r '.spec.groups[0].name')" = "release-name-vault" ]
[ "$(echo "$output" | yq -r '.spec.groups[0].rules | length')" = "2" ]
[ "$(echo "$output" | yq -r '.spec.groups[0].rules[0].foo')" = "bar" ]
[ "$(echo "$output" | yq -r '.spec.groups[0].rules[1].baz')" = "qux" ]
}
@test "prometheus/PrometheusRules-server: assertSelectors default" {
cd `chart_dir`
local output=$( (helm template \
--show-only templates/prometheus-prometheusrules.yaml \
--set 'serverTelemetry.prometheusRules.enabled=true' \
--set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \
. ) | tee /dev/stderr)
[ "$(echo "$output" | yq -r '.metadata.labels | length')" = "5" ]
[ "$(echo "$output" | yq -r '.metadata.labels.release')" = "prometheus" ]
}
@test "prometheus/PrometheusRules-server: assertSelectors overrides" {
cd `chart_dir`
local output=$( (helm template \
--show-only templates/prometheus-prometheusrules.yaml \
--set 'serverTelemetry.prometheusRules.enabled=true' \
--set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \
--set 'serverTelemetry.prometheusRules.selectors.baz=qux' \
--set 'serverTelemetry.prometheusRules.selectors.bar=foo' \
. ) | tee /dev/stderr)
[ "$(echo "$output" | yq -r '.metadata.labels | length')" = "6" ]
[ "$(echo "$output" | yq -r '.metadata.labels | has("app")')" = "false" ]
[ "$(echo "$output" | yq -r '.metadata.labels | has("kube-prometheus-stack")')" = "false" ]
[ "$(echo "$output" | yq -r '.metadata.labels.baz')" = "qux" ]
[ "$(echo "$output" | yq -r '.metadata.labels.bar')" = "foo" ]
}