@@ -18,15 +18,24 @@ spec:
1818 expression : " object.spec.triggers.filter(t, t.type == 'external' && has(t.metadata.scalerAddress) && t.metadata.scalerAddress.contains('otel'))"
1919 - name : triggers
2020 expression : " variables.otelScalersWithSugar + variables.otelScalersNoSugar"
21- - name : allowedOperationsOverTime
22- expression : " ['avg', 'count', 'last_one', 'min', 'max', 'rate', 'sum']"
21+ - name : noTriggers
22+ expression : " variables.triggers.size() == 0"
23+ - name : allowedOpsOverTime
24+ expression : " ['avg', 'count', 'last_one', 'min', 'max', 'rate']"
25+ - name : allowedOpsOverVectors
26+ expression : " ['avg', 'count', 'min', 'max', 'sum']"
27+ - name : mqRegexp
28+ expression : " '^((' + variables.allowedOpsOverVectors.join('|') + ')\\\\ ()?[a-zA-Z][a-zA-Z0-9-_]*(\\\\ {[^,=]+=[^,=]+(,[^,=]+=[^,=]+)*?\\\\ })?\\\\ )?$'"
2329 validations :
24- - expression : " variables.triggers.size() > 0 && variables.triggers.all(t, has(t.metadata.targetValue))"
30+ - expression : " variables.noTriggers || variables.triggers.all(t, has(t.metadata.targetValue))"
2531 messageExpression : " 'Missing \\ 'targetValue\\ ' on ScaledObject\\ ' otel trigger: ' + object.metadata.name"
26- - expression : " variables.triggers.size() > 0 && variables.triggers.all(t, !has(t.metadata.operationOverTime) || t.metadata.operationOverTime in variables.allowedOperationsOverTime)"
27- messageExpression : " 'Malformed trigger in ScaledObject: ' + object.metadata.name + ' unsupported operationOverTime: ' + variables.triggers.filter(t, has(t.metadata.operationOverTime) && !(t.metadata.operationOverTime in variables.allowedOperationsOverTime))[0].metadata.operationOverTime"
28- - expression : " variables.triggers.size() > 0 && variables.triggers.all(t, has(t.metadata.metricQuery) && t.metadata.metricQuery.matches('^((sum|avg|min|max|count)\\\\ ()?[a-zA-Z][a-zA-Z0-9-_]*(\\\\ {[^,=]+=[^,=]+(,[^,=]+=[^,=]+)*?\\\\ })?\\\\ )?$'))"
29- messageExpression : " 'Malformed trigger in ScaledObject: ' + object.metadata.name + ' unsupported metricQuery: ' + variables.triggers.filter(t, !has(t.metadata.metricQuery) || !t.metadata.metricQuery.matches('^((sum|avg|min|max|count)\\\\ ()?[a-zA-Z][a-zA-Z0-9-_]*(\\\\ {[^,=]+=[^,=]+(,[^,=]+=[^,=]+)*?\\\\ })?\\\\ )?$'))[0].metadata.metricQuery"
32+
33+ - expression : " variables.noTriggers || variables.triggers.all(t, !has(t.metadata.operationOverTime) || t.metadata.operationOverTime in variables.allowedOpsOverTime)"
34+ messageExpression : " 'Malformed trigger in ScaledObject: ' + object.metadata.name + ' unsupported operationOverTime: ' + variables.triggers.filter(t, has(t.metadata.operationOverTime) && !(t.metadata.operationOverTime in variables.allowedOpsOverTime))[0].metadata.operationOverTime + ' supported operations: ' + variables.allowedOpsOverTime.join(', ')"
35+
36+ - expression : " variables.noTriggers || variables.triggers.all(t, has(t.metadata.metricQuery) && t.metadata.metricQuery.matches(variables.mqRegexp))"
37+ messageExpression : " 'Malformed trigger in ScaledObject: ' + object.metadata.name + ' unsupported metricQuery: ' + variables.triggers.filter(t, !has(t.metadata.metricQuery) || !t.metadata.metricQuery.matches(variables.mqRegexp)).map(t, has(t.metadata.metricQuery) ? t.metadata.metricQuery : 'missing')[0]"
38+ reason : " MalformedMetricQuery"
3039---
3140apiVersion : admissionregistration.k8s.io/v1
3241kind : ValidatingAdmissionPolicyBinding
0 commit comments