diff --git a/charts/apps/staging-values.yaml b/charts/apps/staging-values.yaml index 97afe1bf0..3ed4ed54a 100644 --- a/charts/apps/staging-values.yaml +++ b/charts/apps/staging-values.yaml @@ -6,6 +6,7 @@ argocd: events: enabled: true + targetRevision: HEAD extraValueFiles: - staging-values.yaml diff --git a/charts/events/crds/ctt-crd.yaml b/charts/events/crds/ctt-crd.yaml index 945ed00ec..3062e57e9 100644 --- a/charts/events/crds/ctt-crd.yaml +++ b/charts/events/crds/ctt-crd.yaml @@ -36,6 +36,12 @@ spec: triggerOnMessageType: type: string pattern: "^(start|stop)$" + exitStatusWhitelist: + type: array + default: [] + items: + type: string + pattern: "^(success|abort|fail)$" retryBehaviour: type: object properties: diff --git a/charts/events/crds/trigger-crd.yaml b/charts/events/crds/trigger-crd.yaml index b959d869c..ef48859b3 100644 --- a/charts/events/crds/trigger-crd.yaml +++ b/charts/events/crds/trigger-crd.yaml @@ -40,6 +40,12 @@ spec: triggerOnMessageType: type: string pattern: "^(start|stop)$" + exitStatusWhitelist: + type: array + default: [] + items: + type: string + pattern: "^(success|abort|fail)$" retryBehaviour: type: object properties: diff --git a/charts/events/hooks/sync.py b/charts/events/hooks/sync.py index 1e06ad8ff..db0f4f17e 100644 --- a/charts/events/hooks/sync.py +++ b/charts/events/hooks/sync.py @@ -55,6 +55,7 @@ class RetryBehaviour(BaseModel): class TriggerWorkflow(BaseModel): template: str triggerOnMessageType: Literal["start", "stop"] | None = None + exitStatusWhitelist: list[str] parameters: list[WorkflowParameter] retryBehaviour: RetryBehaviour | None = None @@ -123,6 +124,13 @@ def sync(self, parent: dict, related: dict) -> SyncResponse: "value": [workflow.triggerOnMessageType], }) + if workflow.exitStatusWhitelist and source_type == "message-bus": + dataFilters.append({ + "path": "body.doc.exit_status", + "type": "string", + "value": workflow.exitStatusWhitelist + }) + if namespace != "events": dataFilters.append({ "path": "body.doc.instrument_session",