What happened:
When configuring tolerations via Advanced Options in the ChaosCenter UI (Kubernetes chaos scenario), saving the experiment fails with failed to unmarshal chaosengine.
Inspecting the generated workflow YAML shows that tolerations under ChaosEngine.spec.components.runner and ChaosEngine.spec.experiments[].spec.components are written as a single object instead of an array, which does not match the Kubernetes / chaos-operator API schema.
Incorrect (generated by UI):
tolerations:
effect: NoExecute
key: dedicated
operator: Equal
value: my-node-tag
What you expected to happen:
Scenario saves successfully. The ChaosEngine manifest contains tolerations as an array under ChaosEngine.spec.components.runner and ChaosEngine.spec.experiments[].spec.components.
Correct syntax:
tolerations:
- effect: NoExecute
key: dedicated
operator: Equal
value: my-node-tag
Where can this issue be corrected? (optional)
chaoscenter/web — ChaosCenter frontend (experiment Advanced Options → ChaosEngine YAML generation)
Primary fix:
Related type fixes:
How to reproduce it (as minimally and precisely as possible):
- Open ChaosCenter → create or edit a Kubernetes chaos scenario with at least one fault (e.g.
pod-http-status-code).
- Open Advanced Options for the fault.
- Enable Tolerations and set values, for example:
- key:
dedicated
- value:
my-node-tag
- effect:
NoExecute
- operator:
Equal
- Click Save.
As a result, save fails with "failed to unmarshal chaosengine".
Verify in YAML (optional): Export or inspect the workflow manifest. At Workflow.spec tolerations are correct (array):
tolerations:
- effect: NoExecute
key: dedicated
...
But in the ChaosEngine artifact they are wrong (object):
spec:
experiments:
- spec:
components:
tolerations:
effect: NoExecute # should be a list item under `-`
key: dedicated
Anything else we need to know?:
Workaround: After adding tolerations in Advanced Options, edit the generated YAML manually to use the correct array syntax.
Environment: Litmus 3.30.0
What happened:
When configuring tolerations via Advanced Options in the ChaosCenter UI (Kubernetes chaos scenario), saving the experiment fails with
failed to unmarshal chaosengine.Inspecting the generated workflow YAML shows that
tolerationsunderChaosEngine.spec.components.runnerandChaosEngine.spec.experiments[].spec.componentsare written as a single object instead of an array, which does not match the Kubernetes / chaos-operator API schema.Incorrect (generated by UI):
What you expected to happen:
Scenario saves successfully. The ChaosEngine manifest contains tolerations as an array under
ChaosEngine.spec.components.runnerandChaosEngine.spec.experiments[].spec.components.Correct syntax:
Where can this issue be corrected? (optional)
chaoscenter/web — ChaosCenter frontend (experiment Advanced Options → ChaosEngine YAML generation)
Primary fix:
(tolerations: [tolerations])formanifest.spec.componentsandmanifest.spec.experiments[0].spec.componentsinupdateTolerationInChaosEngine()Related type fixes:
Runner.tolerationsandFaultComponents.tolerationsshould bekubernetes.Toleration[]How to reproduce it (as minimally and precisely as possible):
pod-http-status-code).dedicatedmy-node-tagNoExecuteEqualAs a result, save fails with "failed to unmarshal chaosengine".
Verify in YAML (optional): Export or inspect the workflow manifest. At Workflow.spec tolerations are correct (array):
But in the ChaosEngine artifact they are wrong (object):
Anything else we need to know?:
Workaround: After adding tolerations in Advanced Options, edit the generated YAML manually to use the correct array syntax.
Environment: Litmus 3.30.0