From 20265525985435ed80cd99a36f307b149c6091d3 Mon Sep 17 00:00:00 2001 From: UDIT GAURAV <35391335+uditgaurav@users.noreply.github.com> Date: Tue, 1 Sep 2020 22:13:29 +0530 Subject: [PATCH] update(charts): Update cassandra-pod-delete experiment charts in go (#306) Signed-off-by: Udit Gaurav --- .../cassandra-pod-delete/ansible/engine.yaml | 57 +++++++++ .../ansible/experiment.yaml | 108 ++++++++++++++++++ .../{ => ansible}/powerfulseal_rbac.yaml | 0 .../cassandra-pod-delete/ansible/rbac.yaml | 37 ++++++ .../cassandra-pod-delete/experiment.yaml | 11 +- 5 files changed, 206 insertions(+), 7 deletions(-) create mode 100644 charts/cassandra/cassandra-pod-delete/ansible/engine.yaml create mode 100644 charts/cassandra/cassandra-pod-delete/ansible/experiment.yaml rename charts/cassandra/cassandra-pod-delete/{ => ansible}/powerfulseal_rbac.yaml (100%) create mode 100644 charts/cassandra/cassandra-pod-delete/ansible/rbac.yaml diff --git a/charts/cassandra/cassandra-pod-delete/ansible/engine.yaml b/charts/cassandra/cassandra-pod-delete/ansible/engine.yaml new file mode 100644 index 0000000..7890399 --- /dev/null +++ b/charts/cassandra/cassandra-pod-delete/ansible/engine.yaml @@ -0,0 +1,57 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: cassandra-chaos + namespace: default +spec: + appinfo: + appns: 'default' + applabel: 'app=cassandra' + appkind: 'statefulset' + # It can be true/false + annotationCheck: 'true' + # It can be active/stop + engineState: 'active' + #ex. values: ns1:name=percona,ns2:run=nginx + auxiliaryAppInfo: '' + chaosServiceAccount: cassandra-pod-delete-sa + monitoring: false + # It can be delete/retain + jobCleanUpPolicy: 'delete' + experiments: + - name: cassandra-pod-delete + spec: + components: + env: + # set chaos duration (in sec) as desired + - name: TOTAL_CHAOS_DURATION + value: '15' + + # set chaos interval (in sec) as desired + - name: CHAOS_INTERVAL + value: '15' + + # pod failures without '--force' & default terminationGracePeriodSeconds + - name: FORCE + value: 'false' + + # provide cassandra service name + # default service: cassandra + - name: CASSANDRA_SVC_NAME + value: 'cassandra' + + # provide the keyspace replication factor + - name: KEYSPACE_REPLICATION_FACTOR + value: '3' + + # provide cassandra port + # default port: 9042 + - name: CASSANDRA_PORT + value: '9042' + + # SET THE CASSANDRA_LIVENESS_CHECK + # IT CAN BE `enabled` OR `disabled` + - name: CASSANDRA_LIVENESS_CHECK + value: '' + + diff --git a/charts/cassandra/cassandra-pod-delete/ansible/experiment.yaml b/charts/cassandra/cassandra-pod-delete/ansible/experiment.yaml new file mode 100644 index 0000000..614ea08 --- /dev/null +++ b/charts/cassandra/cassandra-pod-delete/ansible/experiment.yaml @@ -0,0 +1,108 @@ +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Deletes a pod belonging to a casandra statefulset +kind: ChaosExperiment +metadata: + name: cassandra-pod-delete + version: 0.1.4 +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "apps" + - "batch" + - "litmuschaos.io" + resources: + - "deployments" + - "statefulsets" + - "jobs" + - "pods" + - "pods/log" + - "pods/exec" + - "services" + - "events" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - apiGroups: + - "" + resources: + - "nodes" + verbs: + - "get" + - "list" + image: "litmuschaos/ansible-runner:latest" + imagePullPolicy: Always + args: + - -c + - ansible-playbook ./experiments/cassandra/pod-delete/pod_delete_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + command: + - /bin/bash + env: + + - name: ANSIBLE_STDOUT_CALLBACK + value: 'default' + + # provide cassandra service name + # default service: cassandra + - name: CASSANDRA_SVC_NAME + value: '' + + # provide the keyspace replication factor + - name: KEYSPACE_REPLICATION_FACTOR + value: '' + + # provide cassandra port + # default port: 9042 + - name: CASSANDRA_PORT + value: '' + + # provide liveness deployement port + # default port: 8088, It only supports 8088 port + - name: LIVENESS_SVC_PORT + value: '8088' + + # provide cassandra liveness image + - name: CASSANDRA_LIVENESS_IMAGE + value: 'litmuschaos/cassandra-client:latest' + + - name: TOTAL_CHAOS_DURATION + value: '15' + + - name: CHAOS_INTERVAL + value: '15' + + # SET THE CASSANDRA_LIVENESS_CHECK + # IT CAN BE `enabled` OR `disabled` + - name: CASSANDRA_LIVENESS_CHECK + value: '' + + ## Period to wait before and after injection of chaos + - name: RAMP_TIME + value: '' + + # provide the kill count + - name: KILL_COUNT + value: '' + + - name: FORCE + value: '' + + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, powerfulseal + - name: LIB + value: '' + + labels: + name: cassandra-pod-delete diff --git a/charts/cassandra/cassandra-pod-delete/powerfulseal_rbac.yaml b/charts/cassandra/cassandra-pod-delete/ansible/powerfulseal_rbac.yaml similarity index 100% rename from charts/cassandra/cassandra-pod-delete/powerfulseal_rbac.yaml rename to charts/cassandra/cassandra-pod-delete/ansible/powerfulseal_rbac.yaml diff --git a/charts/cassandra/cassandra-pod-delete/ansible/rbac.yaml b/charts/cassandra/cassandra-pod-delete/ansible/rbac.yaml new file mode 100644 index 0000000..bb05571 --- /dev/null +++ b/charts/cassandra/cassandra-pod-delete/ansible/rbac.yaml @@ -0,0 +1,37 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cassandra-pod-delete-sa + namespace: default + labels: + name: cassandra-pod-delete-sa +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: Role +metadata: + name: cassandra-pod-delete-sa + namespace: default + labels: + name: cassandra-pod-delete-sa +rules: +- apiGroups: ["","litmuschaos.io","batch","apps"] + resources: ["pods","deployments","statefulsets","services","pods/log","pods/exec","events","jobs","chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update","delete"] +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: RoleBinding +metadata: + name: cassandra-pod-delete-sa + namespace: default + labels: + name: cassandra-pod-delete-sa +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cassandra-pod-delete-sa +subjects: +- kind: ServiceAccount + name: cassandra-pod-delete-sa + namespace: default + diff --git a/charts/cassandra/cassandra-pod-delete/experiment.yaml b/charts/cassandra/cassandra-pod-delete/experiment.yaml index 614ea08..9ba900a 100644 --- a/charts/cassandra/cassandra-pod-delete/experiment.yaml +++ b/charts/cassandra/cassandra-pod-delete/experiment.yaml @@ -42,18 +42,15 @@ spec: verbs: - "get" - "list" - image: "litmuschaos/ansible-runner:latest" + image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - -c - - ansible-playbook ./experiments/cassandra/pod-delete/pod_delete_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + - ./experiments/cassandra-pod-delete command: - /bin/bash env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' - # provide cassandra service name # default service: cassandra - name: CASSANDRA_SVC_NAME @@ -100,9 +97,9 @@ spec: value: '' ## env var that describes the library used to execute the chaos - ## default: litmus. Supported values: litmus, powerfulseal + ## default: litmus. Supported values: litmus - name: LIB - value: '' + value: 'litmus' labels: name: cassandra-pod-delete