Commit Graph

78 Commits

Author SHA1 Message Date
Shreyas Anantha Ramaprasad
08deae63dd Added VMware Node Scenarios (#285)
* Added VMware node scenarios

* Made vmware plugin independent of Krkn

* Revert changes made to node status watch

* Fixed minor documentation changes
2022-08-15 23:35:16 +02:00
Robert O'Brien
bbde837360 Refactor node status function 2022-08-03 16:51:49 +02:00
Robert O'Brien
5d789e7d30 Refactor client watch 2022-08-03 16:51:49 +02:00
Robert O'Brien
69fc8e8d1b Add resource version to list node call 2022-08-03 16:51:49 +02:00
Robert O'Brien
77f53b3a23 Rework node status to use watches 2022-08-03 16:51:49 +02:00
Janos Bonic
ccd902565e Fixes #265: Replace Powerfulseal and introduce Wolkenwalze SDK for plugin system 2022-08-02 16:25:03 +01:00
Shreyas Anantha Ramaprasad
b01d9895fb Continue fixing small parts of issue #185 (#277)
* Added dataclasses to store info retrieved from k8 client calls

* Replaced few invoke commands in common_litmus

* Minor Documentation Changes

* Removed unused import and redundant variable

Signed-off-by: Shreyas Anantha Ramaprasad <ars.shreyas@gmail.com>
2022-07-19 14:57:17 +02:00
Alejandro Gullón
4522ab77b1 Updating commands to get used PVC capacity and allocate file 2022-06-19 18:43:01 -04:00
STARTX
f4bfc08186 debug error message when network interface not found (#268)
Debug error occured when giving a bad network interface list

Traceback (most recent call last):
  File "/root/kraken/run_kraken.py", line 318, in <module>
    main(options.cfg)
  File "/root/kraken/run_kraken.py", line 239, in main
    network_chaos.run(scenarios_list, config, wait_duration)
  File "/root/kraken/kraken/network_chaos/actions.py", line 39, in run
    test_interface = verify_interface(test_interface, nodelst, pod_template)
  File "/root/kraken/kraken/network_chaos/actions.py", line 111, in verify_interface
    "Interface %s not found in node %s interface list %s" % (interface, nodelst[pod_index]),
TypeError: not enough arguments for format string

Signed-off-by: STARTX <clarue@startx.fr>
2022-06-14 18:33:59 -04:00
Naga Ravi Chaitanya Elluri
9208f39e06 Add support to run on Kubernetes
This commit:
- Leverages distribution flag in the config set by the user to skip
  things not supported on OpenShift to be able to run scenarios on
  Kubernetes.
- Adds sample config and scenario files that work on Kubernetes.
2022-06-01 07:27:06 -05:00
Paige Rubendall
23d9a26f52 adding namespace deletion using kuberenetes python client 2022-05-26 14:24:36 -05:00
Naga Ravi Chaitanya Elluri
90e1f20d50 Add support for setting performance-dashboards on Kubernetes 2022-05-25 09:45:39 -04:00
Sanja Bonic
f52f16ade8 Starts fixing small parts of issue #185 2022-05-18 20:01:59 +02:00
Paige Rubendall
94909fca94 Updating unknown status for when cluster becomes disconnected 2022-05-09 10:00:22 -04:00
Janos
f632f6d7be Throwing exceptions in Kubernetes on failure (#248) 2022-05-09 13:12:39 +05:30
Janos Bonic
ade0969a69 Fixes incorrect command nesting in kube_burner 2022-05-06 10:21:02 -04:00
Robert O'Brien
849ea7851b rework node ready wait status 2022-05-04 21:15:27 +02:00
Alejandro Gullón
e8038dbbf2 PVC fill up scenario improvement (#233)
* improve check to validate if the file is created

* fixing style

* add new function to remove temp file in case of failure
2022-05-03 14:49:37 -04:00
Alejandro Gullón
d62e0b9154 Improve check to validate if the file is created for PVC scenario (#224)
* improve check to validate if the file is created

* fixing style
2022-04-13 12:15:39 +05:30
Paige Rubendall
7f60701444 adding alibaba node scenario start 2022-04-01 16:46:29 -04:00
Alejandro Gullón
f5c6410087 Adding support to run commands on more pod containers 2022-03-01 10:09:42 +01:00
Paige Rubendall
c6a22e2434 Adding check to be sure label or namesapce is not none first 2021-12-20 09:49:09 -05:00
yogananth-subramanian
50dd9873c1 Node egress traffic shaping
Patch adds a scenario to create variations in egress traffic of a Node's interface using the tc and Netem.
2021-12-16 12:54:53 -05:00
Paige Rubendall
1776a9850f adding in replace of double space 2021-12-14 22:32:40 -05:00
Alejandro Gullón
8af0d86c12 fix condition for null params from kraken-hub 2021-12-09 11:50:02 -05:00
Paige Rubendall
01f1075eb3 Adding namespace or label selector error; delete_count option 2021-12-08 15:45:25 -05:00
Alejandro Gullón
e19f98fd70 changing input params checks (#190)
* changing input params checks

* small fix

* small fix
2021-12-01 12:40:46 -05:00
Pravin Dsilva
38302e7d95 Add timeout for Openstack node scenarios
Signed-off-by: Pravin Dsilva <pdsilva@redhat.com>
2021-11-25 20:56:59 -05:00
Paige Rubendall
f17ad062cf Ci tests (#184)
* Adding in working ci tests

* spacing in readme
2021-11-24 15:12:47 -05:00
Alejandro Gullón
baa812b7f0 Added new scenario to fill up a given volumen (#182)
* Added new scenario to fill up a given volumen

* fixing small issues and style

* adding PVC as input param instead of pod name

* small fix

* get container name and volumen name
replace oc with kubectl commands

* adding yaml file to create a pv, pvc and pod to run pvc_scenario

* adding support to match both string for describe command when looking for pod_name

* added support to find the pvc from a given pod

* small fix

* small fix
2021-11-24 12:18:49 -05:00
prubenda
8e0f4e63af Adding container for pod_exec in time scenarios 2021-11-23 11:33:49 -05:00
Paige Rubendall
2bb4686585 adding check for if namesapce exists 2021-11-16 09:45:04 -05:00
Paige Rubendall
0023d679f7 fixing killed container no reference issue 2021-11-03 10:06:13 -04:00
Naga Ravi Chaitanya Elluri
f3bbc85dd5 Fix issue with matching labels
This commit fixes the issue with application outages scenario where
the pod-selector is not being mapped properly.
2021-10-29 10:45:46 -04:00
Naga Ravi Chaitanya Elluri
43b1e5b727 Remove item only when the list is not empty
This commit fixes the case where the fault injected containers take
longer time to recover as the current checks are bombing out if the
list is empty.
2021-10-28 12:12:45 -04:00
Paige Rubendall
87aa9eef4d Adding multiple node names and instance count for label selectors 2021-10-26 13:44:28 -04:00
Naga Ravi Chaitanya Elluri
2674e09407 Ignore validation for network policy creation
This commit helps the cases where targeting application pods in a
namespace using pod-selector to create an outage fails because of
not being able to validate the selector.

Error message for reference:
error validating data: ValidationError(NetworkPolicy.spec.podSelector):
unknown field "app=dittybopper" in io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector
2021-10-14 19:31:38 -04:00
Paige Rubendall
10e9b09819 Adding fix for openstack node name issue 2021-10-14 14:56:46 -04:00
Naga Ravi Chaitanya Elluri
cdf3bc03d2 Add support to block traffic to an application
This commit enables users to simulate a downtime of an application
by blocking the traffic for the specified duration to see how
it/other components communicating with it behave in case of downtime.
2021-10-01 10:13:40 -04:00
Paige Rubendall
22df024312 adding validation that namespace becomes active 2021-09-28 09:58:55 -04:00
Naga Ravi Chaitanya Elluri
f36da323e7 Prioritize filtering on namespace to improve performance
This will avoid querying all namespaces for pods matching the label_selector
if defined as shown in the sample scenario config. This commit also prints a
pointer to the report generated at the end of the run.
2021-09-22 15:03:39 -04:00
Paige Rubendall
16b5214fdd Adding specific tag version of powerfulseal 2021-09-21 12:37:45 -04:00
Naga Ravi Chaitanya Elluri
036e51a6b1 Delete litmus crd's during the cleanup
This commit will ensure that the litmus resources installed on the
cluster get cleaned up and also creates the chaosengine in the
specified namespace.
2021-09-16 16:30:21 -04:00
Paige Rubendall
a9056ddf43 adding litmus logging 2021-09-08 17:11:49 -04:00
Naga Ravi Chaitanya Elluri
5da0b259c5 Run all the litmus resources in a single namespace
- This eases the usage and debuggability by running the fault injection pods in
  the same namespace as other resources of litmus. This will also ease the
  deletion process and ensure that there are no leftover objects on the cluster.

- This commit also enables users to use the same rbac template for all the litmus
  scenarios without having to pull in a specic one for each of the scenarios.
2021-09-08 16:37:07 -04:00
Naga Ravi Chaitanya Elluri
adb465cab0 Add support for multi-zone disruption
This will enable users to disrupt multiple zones in the cluster simultaneously
to be able to understand the behaviour of various components.
2021-08-26 08:23:24 -04:00
Paige Rubendall
22fcab57f5 container checking in pod 2021-08-25 09:28:03 -04:00
prubenda
9b0bcdbf0e Adding node memory hog scenario 2021-08-20 14:02:00 -04:00
Naga Ravi Chaitanya Elluri
6456eec76a Add zone outage scenarios
This commit adds support to create zone outage in AWS by denying both
ingress and egress traffic to the instances belonging to a particular
subnet belonging to the zone by tweaking the network acl. This creates
an outage of all the nodes in the zone - both master and workers.
2021-08-17 11:43:13 -04:00
Naga Ravi Chaitanya Elluri
716057eab6 Monitor user application availability during chaos
Current Kraken integration with Cerberus monitors the cluster as well as the
application health post chaos and pass/fails if they are not healthy after chaos.
This commit adds ability to monitor the user application health during the chaos
and fails the run in case of downtime as it's potentially a downtime in case of
customers environment as well. It is especially useful in case of control plane
failure scenarios including API server, Etcd, Ingress etc.
2021-07-27 13:15:57 -04:00