Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor out a Terminator interface to support different ways to kill pods #117

Merged
merged 23 commits into from
Jan 20, 2019

Conversation

linki
Copy link
Owner

@linki linki commented Jan 15, 2019

Based on @jakewins' initial sketch of --exec I implemented a Strategy abstraction in order to provide different ways of how pods are terminated. Currently it only supports one strategy that implements the previous behaviour of deleting pods via the API.

After this is merged @jakewins' implementation of killing containers can be implemented as another strategy (called action in @jakewins' fork marmoset).

related: #103
/cc @ljanatka @palmerabollo

note to self: there are a couple of todos left in the code

jakewins and others added 17 commits September 5, 2018 15:10
This is a proposal to introduce alternative means of killing
pods, outside of simply asking kubernetes to stop them.

Specifically, it allows executing a shell command on a victim
container; that shell command can then be a simple kill -9,
a fork bomb, or any other means of destruction.

There are, at least, two reasons why this is useful. First,
it gives an option of more realistic failures. Simply deleting
a pod is a rather kind way to stop a pod - in reality a pod is likely
to go down in flames from lack of memory, segfaulting or instant
hardware failure. This brings the chaos closer to reality.

The second reason is that this helps test operators that directly
manipulate pods, rather than rely on higher-level concepts like
StatefulSets, Deployments and so on. In this case, the thing we want
to test is the operators ability to realize a pod is severely broken,
and to take appropriate action, depending on what software the operator
is running in the failed pod.
@palmerabollo
Copy link
Contributor

Great work. Thank you very much.

@linki linki changed the title Refactor out a Strategy abstraction to support different ways to kill pods Refactor out a Terminator interface to support different ways to kill pods Jan 20, 2019
@linki linki merged commit 3164017 into master Jan 20, 2019
@linki linki deleted the jake-exec-refactor-without-exec branch January 20, 2019 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants