Skip to content

Commit 1855103

Browse files
committed
Protect users from configuring an ambiguous sensor mode
1 parent fccef65 commit 1855103

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

templates/deployments.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1166,7 +1166,10 @@ spec:
11661166

11671167
{{- $sensor_deployments_count := max 1 ($.Values.st2sensorcontainer.deployments|int) | int }}
11681168
{{- $one_sensor_per_pod := not ($.Values.st2.packs.sensors | empty) }}
1169-
{{- $some_sensors_per_pod := and (not $one_sensor_per_pod) (gt $sensor_deployments_count 1) }}
1169+
{{- $some_sensors_per_pod := gt $sensor_deployments_count 1 }}
1170+
{{- if and $one_sensor_per_pod $some_sensors_per_pod }}
1171+
{{- fail "The sensor values are ambiguous. To use one-sensor-per-pod, use `st2.packs.sensors`. To use multiple-sensors-per-pod, use `st2sensorcontainer.deployments > 1`. Do not use both!" }}
1172+
{{- end }}
11701173
{{- range ($one_sensor_per_pod | ternary ($.Values.st2.packs.sensors) (until $sensor_deployments_count)) }}
11711174
{{- $sensor := omit $.Values.st2sensorcontainer "name" "ref" "deployments" "postStartScript" }}
11721175
{{- if $one_sensor_per_pod }}

tests/unit/st2sensors_test.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,3 +383,18 @@ tests:
383383
- equal: *multiSensorSecurityContext
384384
documentIndex: *third_sensor_doc
385385

386+
- it: ambiguous stackstorm/sensor-mode fails
387+
template: deployments.yaml
388+
release:
389+
name: missing-sensor-ref-release
390+
set:
391+
st2:
392+
packs:
393+
sensors:
394+
- name: foo
395+
ref: some_pack.foo_sensor
396+
st2sensorcontainer:
397+
deployments: 2
398+
asserts:
399+
- failedTemplate:
400+
errorMessage: "The sensor values are ambiguous. To use one-sensor-per-pod, use `st2.packs.sensors`. To use multiple-sensors-per-pod, use `st2sensorcontainer.deployments > 1`. Do not use both!"

values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ st2actionrunner:
662662
# For one-sensor-per-pod, define defaults here and add config for each sensor to st2.packs.sensors (above).
663663
st2sensorcontainer:
664664
# "deployments" is analogous to "replicas" for other services. Each deployment has 1 replica.
665-
# The deployments count is only used if st2.packs.sensors is empty.
665+
# The deployments count cannot be greater than 1 unless st2.packs.sensors is empty.
666666
# If deployments is 1 (the default), then StackStorm puts all sensors in one pod.
667667
# If deployments is 2+, StackStorm is configured to use sensor hash ranges to ensure that
668668
# each sensor runs on only one pod. Each hash range is assigned to a separate

0 commit comments

Comments
 (0)