Exception when matching on a node's group
jcstanaway opened this issue · comments
Chris Stanaway commented
Using image 3.1.0.
Created scenario:
apiVersion: powerfulseal.io/v1
kind: Scenario
metadata:
name: default-node-death
namespace: kube-system
spec:
name: default-node-death
description: "default nodegroup: kill a single node"
steps:
- nodeAction:
matches:
- property:
name: group
value: default
- property:
name: group
negative: true
value: master
- property:
name: group
negative: true
value: etcd
filters:
- probability: 0.1
- randomSample:
ratio: 0.34
- randomSample:
size: 1
actions:
- stop:
autoRestart: false
Loaded the scenario and when seal attempted to execute the scenario, it threw an uncaught exception and exited:
2021-03-30 00:02:10 INFO scenario.default-node-de Starting scenario 'default-node-death' (1 steps)
Traceback (most recent call last):
File "/usr/local/bin/powerfulseal", line 8, in <module>
sys.exit(start())
File "/usr/local/lib/python3.7/site-packages/powerfulseal/cli/__main__.py", line 656, in start
main(sys.argv[1:])
File "/usr/local/lib/python3.7/site-packages/powerfulseal/cli/__main__.py", line 630, in main
metric_collector=metric_collector
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/policy_runner.py", line 112, in run
ret = scenario.execute()
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/scenario.py", line 60, in execute
ret = action_method(schema=step.get(action_name))
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/scenario.py", line 95, in action_nodes
return self.execute_action(action)
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/scenario.py", line 82, in execute_action
ret_val = action.execute()
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/action_nodes_pods.py", line 51, in execute
initial_set = self.match()
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/action_nodes.py", line 48, in match
if self.match_property(node, match):
File "/usr/local/lib/python3.7/site-packages/powerfulseal/policy/action_nodes_pods.py", line 80, in match_property
value = getattr(candidate, name)
AttributeError: 'Node' object has no attribute 'group'
I suspect it's an issue of "group" vs. "groups". When in interactive mode:
(seal) $ nodes
[node no=166 id=REDACTED ip=REDACTED extIp=REDACTED az=nope groups=['2', 'Standard_D4s_v3', 'amd64', 'default', 'REDACTED', 'e9ae415dc7b6ac569ada5eef11dde1dbb162a674868aef209c826bea00c820', 'eastus', 'eastus-3', 'linux', 'node'] name=REDACTED state=UNKNOWN]
[...]
SathishKumar commented
Hello everyone,
Can we get some assistance on this issue. We are also facing similar issue while running powerful incluster deployment on kubeseal.