From a276600b716375b235b96a2ff289271931861a39 Mon Sep 17 00:00:00 2001 From: risson <18313093+rissson@users.noreply.github.com> Date: Thu, 18 May 2023 07:01:22 +0200 Subject: [PATCH] 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 Co-authored-by: Vitaliy --- CHANGELOG.md | 3 +++ test/unit/prometheus-prometheusrules.bats | 14 +++++++------- values.schema.json | 19 +++++++++++++++++++ values.yaml | 2 +- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a68f853..ce70750 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## Unreleased +Bugs: +* server: Set the default for `prometheusRules.rules` to an empty list [GH-886](https://github.com/hashicorp/vault-helm/pull/886) + ## 0.24.1 (April 17, 2023) Bugs: diff --git a/test/unit/prometheus-prometheusrules.bats b/test/unit/prometheus-prometheusrules.bats index 87736cf..efe4d25 100755 --- a/test/unit/prometheus-prometheusrules.bats +++ b/test/unit/prometheus-prometheusrules.bats @@ -6,7 +6,7 @@ load _helpers cd `chart_dir` local actual=$( (helm template \ --show-only templates/prometheus-prometheusrules.yaml \ - --set 'serverTelemetry.prometheusRules.rules.foo=bar' \ + --set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \ . || echo "---") | tee /dev/stderr | yq 'length > 0' | tee /dev/stderr) [ "${actual}" = "false" ] @@ -26,16 +26,16 @@ load _helpers local output=$( (helm template \ --show-only templates/prometheus-prometheusrules.yaml \ --set 'serverTelemetry.prometheusRules.enabled=true' \ - --set 'serverTelemetry.prometheusRules.rules.foo=bar' \ - --set 'serverTelemetry.prometheusRules.rules.baz=qux' \ + --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.foo')" = "bar" ] - [ "$(echo "$output" | yq -r '.spec.groups[0].rules.baz')" = "qux" ] + [ "$(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" { @@ -43,7 +43,7 @@ load _helpers local output=$( (helm template \ --show-only templates/prometheus-prometheusrules.yaml \ --set 'serverTelemetry.prometheusRules.enabled=true' \ - --set 'serverTelemetry.prometheusRules.rules.foo=bar' \ + --set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \ . ) | tee /dev/stderr) [ "$(echo "$output" | yq -r '.metadata.labels | length')" = "5" ] @@ -55,7 +55,7 @@ load _helpers local output=$( (helm template \ --show-only templates/prometheus-prometheusrules.yaml \ --set 'serverTelemetry.prometheusRules.enabled=true' \ - --set 'serverTelemetry.prometheusRules.rules.foo=bar' \ + --set 'serverTelemetry.prometheusRules.rules[0].foo=bar' \ --set 'serverTelemetry.prometheusRules.selectors.baz=qux' \ --set 'serverTelemetry.prometheusRules.selectors.bar=foo' \ . ) | tee /dev/stderr) diff --git a/values.schema.json b/values.schema.json index 4214e4b..e296426 100644 --- a/values.schema.json +++ b/values.schema.json @@ -1066,6 +1066,25 @@ } } }, + "serverTelemetry": { + "type": "object", + "properties": { + "prometheusRules": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "rules": { + "type": "array" + }, + "selectors": { + "type": "object" + } + } + } + } + }, "ui": { "type": "object", "properties": { diff --git a/values.yaml b/values.yaml index 13938fb..2a9ec9c 100644 --- a/values.yaml +++ b/values.yaml @@ -1200,7 +1200,7 @@ serverTelemetry: selectors: {} # Some example rules. - rules: {} + rules: [] # - alert: vault-HighResponseTime # annotations: # message: The response time of Vault is over 500ms on average over the last 5 minutes.