From 031a41d9bfc2e8615f9c827baa8030cc0d037638 Mon Sep 17 00:00:00 2001 From: dharmaanu Date: Tue, 3 Nov 2020 20:16:16 -0800 Subject: [PATCH] Create 3 new experiments for kubernetes (#367) * Adding 3 experiments for kubernetes Signed-off-by: Anushya Dharmarajan * Correcting kiam label Signed-off-by: Anushya Dharmarajan * Fixing path in Readme Signed-off-by: Anushya Dharmarajan * removed custom-spiserver Signed-off-by: Anushya Dharmarajan Co-authored-by: Anushya Dharmarajan --- .../k8-alb-ingress-controller/Readme.md | 2 +- charts/generic/k8-calico-node/Readme.md | 2 +- charts/generic/k8-kiam/Readme.md | 2 +- charts/generic/k8-kiam/engine.yaml | 3 +- charts/generic/k8-kube-proxy/Readme.md | 2 +- charts/generic/k8-pod-delete/Readme.md | 2 +- .../k8-prometheus-k8s-prometheus/Readme.md | 10 ++++ .../k8-prometheus-k8s-prometheus/engine.yaml | 39 +++++++++++++ .../experiment.yaml | 58 +++++++++++++++++++ ...us-k8s-prometheus.chartserviceversion.yaml | 33 +++++++++++ .../rbac-admin.yaml | 38 ++++++++++++ .../generic/k8-prometheus-operator/Readme.md | 10 ++++ .../k8-prometheus-operator/engine.yaml | 39 +++++++++++++ .../k8-prometheus-operator/experiment.yaml | 58 +++++++++++++++++++ ...etheus-operarator.chartserviceversion.yaml | 33 +++++++++++ .../k8-prometheus-operator/rbac-admin.yaml | 38 ++++++++++++ .../k8-prometheus-pushgateway/Readme.md | 10 ++++ .../k8-prometheus-pushgateway/engine.yaml | 39 +++++++++++++ .../k8-prometheus-pushgateway/experiment.yaml | 58 +++++++++++++++++++ ...theus-pushgateway.chartserviceversion.yaml | 33 +++++++++++ .../k8-prometheus-pushgateway/rbac-admin.yaml | 38 ++++++++++++ charts/generic/k8-service-kill/Readme.md | 2 +- 22 files changed, 542 insertions(+), 7 deletions(-) create mode 100644 charts/generic/k8-prometheus-k8s-prometheus/Readme.md create mode 100644 charts/generic/k8-prometheus-k8s-prometheus/engine.yaml create mode 100644 charts/generic/k8-prometheus-k8s-prometheus/experiment.yaml create mode 100644 charts/generic/k8-prometheus-k8s-prometheus/k8-prometheus-k8s-prometheus.chartserviceversion.yaml create mode 100644 charts/generic/k8-prometheus-k8s-prometheus/rbac-admin.yaml create mode 100644 charts/generic/k8-prometheus-operator/Readme.md create mode 100644 charts/generic/k8-prometheus-operator/engine.yaml create mode 100644 charts/generic/k8-prometheus-operator/experiment.yaml create mode 100644 charts/generic/k8-prometheus-operator/k8-prometheus-operarator.chartserviceversion.yaml create mode 100644 charts/generic/k8-prometheus-operator/rbac-admin.yaml create mode 100644 charts/generic/k8-prometheus-pushgateway/Readme.md create mode 100644 charts/generic/k8-prometheus-pushgateway/engine.yaml create mode 100644 charts/generic/k8-prometheus-pushgateway/experiment.yaml create mode 100644 charts/generic/k8-prometheus-pushgateway/k8-prometheus-pushgateway.chartserviceversion.yaml create mode 100644 charts/generic/k8-prometheus-pushgateway/rbac-admin.yaml diff --git a/charts/generic/k8-alb-ingress-controller/Readme.md b/charts/generic/k8-alb-ingress-controller/Readme.md index 5f71043..18dab65 100644 --- a/charts/generic/k8-alb-ingress-controller/Readme.md +++ b/charts/generic/k8-alb-ingress-controller/Readme.md @@ -3,7 +3,7 @@ * Apply experiments for K8 - `kubectl apply -f experiment.yaml` * Validate the experiments for k8 - `kubectl get chaosexperiments` * Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` -* Create pod Experiment - for health experiment for IKS 1.0 -`kubectl create -f engine.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` * Validate experiment - `kubectl get pods -w` * Validate logs - `kubectl logs -f ` * Clean up chaosexperiment -`kubectl delete -f engine.yaml` diff --git a/charts/generic/k8-calico-node/Readme.md b/charts/generic/k8-calico-node/Readme.md index f822a6f..a4bde5c 100644 --- a/charts/generic/k8-calico-node/Readme.md +++ b/charts/generic/k8-calico-node/Readme.md @@ -2,7 +2,7 @@ * Apply experiments for K8 - `kubectl apply -f experiments.yaml` * Validate the experiments for k8 - `kubectl get chaosexperiments` * Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` -* Create pod Experiment - for health experiment for IKS 1.0 -`kubectl create -f engine.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` * Validate experiment - `kubectl get pods -w` * Validate logs - `kubectl logs -f ` * Clean up chaosexperiment -`kubectl delete -f engine.yaml` diff --git a/charts/generic/k8-kiam/Readme.md b/charts/generic/k8-kiam/Readme.md index f822a6f..a4bde5c 100644 --- a/charts/generic/k8-kiam/Readme.md +++ b/charts/generic/k8-kiam/Readme.md @@ -2,7 +2,7 @@ * Apply experiments for K8 - `kubectl apply -f experiments.yaml` * Validate the experiments for k8 - `kubectl get chaosexperiments` * Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` -* Create pod Experiment - for health experiment for IKS 1.0 -`kubectl create -f engine.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` * Validate experiment - `kubectl get pods -w` * Validate logs - `kubectl logs -f ` * Clean up chaosexperiment -`kubectl delete -f engine.yaml` diff --git a/charts/generic/k8-kiam/engine.yaml b/charts/generic/k8-kiam/engine.yaml index 07c6aa6..7c81ed7 100644 --- a/charts/generic/k8-kiam/engine.yaml +++ b/charts/generic/k8-kiam/engine.yaml @@ -1,3 +1,4 @@ +# Generic Chaos engine for Application team, who want to participate in Game Day apiVersion: litmuschaos.io/v1alpha1 kind: ChaosEngine metadata: @@ -23,7 +24,7 @@ spec: value: kube-system # set chaos label name - name: LABEL_NAME - value: k8s-app=calico-node + value: kiam # pod endpoint - name: APP_ENDPOINT value: 'localhost' diff --git a/charts/generic/k8-kube-proxy/Readme.md b/charts/generic/k8-kube-proxy/Readme.md index d98bcf1..7ea47c4 100644 --- a/charts/generic/k8-kube-proxy/Readme.md +++ b/charts/generic/k8-kube-proxy/Readme.md @@ -3,7 +3,7 @@ * Apply experiments for K8 - `kubectl apply -f experiment.yaml` * Validate the experiments for k8 - `kubectl get chaosexperiments` * Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` -* Create pod Experiment - for health experiment for IKS 1.0 -`kubectl create -f engine.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` * Validate experiment - `kubectl get pods -w` * Validate logs - `kubectl logs -f ` * Clean up chaosexperiment -`kubectl delete -f engine.yaml` diff --git a/charts/generic/k8-pod-delete/Readme.md b/charts/generic/k8-pod-delete/Readme.md index 4046677..324ae76 100644 --- a/charts/generic/k8-pod-delete/Readme.md +++ b/charts/generic/k8-pod-delete/Readme.md @@ -13,7 +13,7 @@ * Apply experiments for K8 - `kubectl apply -f experiments.yaml` * Validate the experiments for k8 - `kubectl get chaosexperiments` * Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` -* Create pod Experiment - for health experiment for IKS 1.0 -`kubectl create -f engine-kiam.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine-kiam.yaml` * Validate experiment - `kubectl get pods -w` * Validate logs - `kubectl logs -f ` * Clean up chaosexperiment -`kubectl delete -f engine-kiam.yaml` diff --git a/charts/generic/k8-prometheus-k8s-prometheus/Readme.md b/charts/generic/k8-prometheus-k8s-prometheus/Readme.md new file mode 100644 index 0000000..c2a3afe --- /dev/null +++ b/charts/generic/k8-prometheus-k8s-prometheus/Readme.md @@ -0,0 +1,10 @@ +# Remote namespace +* navigate to current directory `charts/generic/k8-prometheus-k8s-prometheus/` +* Apply experiments for K8 - `kubectl apply -f experiment.yaml` +* Validate the experiments for k8 - `kubectl get chaosexperiments` +* Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` +* Validate experiment - `kubectl get pods -w` +* Validate logs - `kubectl logs -f ` +* Clean up chaosexperiment -`kubectl delete -f engine.yaml` +* Clean up rbac-admin -`kubectl delete -f rbac-admin.yaml` diff --git a/charts/generic/k8-prometheus-k8s-prometheus/engine.yaml b/charts/generic/k8-prometheus-k8s-prometheus/engine.yaml new file mode 100644 index 0000000..b820298 --- /dev/null +++ b/charts/generic/k8-prometheus-k8s-prometheus/engine.yaml @@ -0,0 +1,39 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: k8-prometheus-k8s-prometheus + namespace: default +spec: + appinfo: + appns: 'default' + applabel: "app=prometheus" + appkind: deployment + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: chaos-admin + monitoring: false + jobCleanUpPolicy: 'retain' + experiments: + - name: k8-pod-delete + spec: + components: + env: + # set chaos namespace, we assume you are using the addon-metricset-ns if not modify the below namespace + - name: NAME_SPACE + value: addon-metricset-ns + # set chaos label name + - name: LABEL_NAME + value: prometheus + # pod endpoint + - name: APP_ENDPOINT + value: 'localhost' + - name: FILE + value: 'pod-app-kill-health.json' + - name: REPORT + value: 'false' + - name: REPORT_ENDPOINT + value: 'none' + - name: TEST_NAMESPACE + value: 'default' + + diff --git a/charts/generic/k8-prometheus-k8s-prometheus/experiment.yaml b/charts/generic/k8-prometheus-k8s-prometheus/experiment.yaml new file mode 100644 index 0000000..0105ff3 --- /dev/null +++ b/charts/generic/k8-prometheus-k8s-prometheus/experiment.yaml @@ -0,0 +1,58 @@ +# Generic Chaos experiment for Application team, who want to participate in Game Day +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset +kind: ChaosExperiment +metadata: + name: k8-pod-delete +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: ["","apps","batch"] + resources: ["jobs","deployments","daemonsets"] + verbs: ["create","list","get","patch","delete"] + - apiGroups: ["","litmuschaos.io"] + resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults","deployments","jobs"] + verbs: ["get","create","update","patch","delete","list"] + - apiGroups: [""] + resources: ["nodes"] + verbs : ["get","list"] + labels: + name: k8-pod-delete + app.kubernetes.io/part-of: litmus + image: "litmuschaos/chaostoolkit:latest" + args: + - -c + - python /app/chaos/chaostest/kubernetes/k8_wrapper.py ; exit 0 + command: + - /bin/bash + env: + + - name: CHAOSTOOLKIT_IN_POD + value: 'true' + + - name: FILE + value: 'pod-app-kill-count.json' + + - name: NAME_SPACE + value: '' + + - name: LABEL_NAME + value: '' + + - name: APP_ENDPOINT + value: '' + + - name: PERCENTAGE + value: '50' + + - name: REPORT + value: 'true' + + - name: REPORT_ENDPOINT + value: 'none' + + - name: TEST_NAMESPACE + value: 'default' diff --git a/charts/generic/k8-prometheus-k8s-prometheus/k8-prometheus-k8s-prometheus.chartserviceversion.yaml b/charts/generic/k8-prometheus-k8s-prometheus/k8-prometheus-k8s-prometheus.chartserviceversion.yaml new file mode 100644 index 0000000..257fa30 --- /dev/null +++ b/charts/generic/k8-prometheus-k8s-prometheus/k8-prometheus-k8s-prometheus.chartserviceversion.yaml @@ -0,0 +1,33 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + name: k8-pod-delete + version: 0.0.4 + annotations: + categories: Kubernetes + vendor: CNCF + createdAt: 2020-02-24T10:28:08Z + support: https://slack.kubernetes.io/ +spec: + displayName: k8-pod-delete + categoryDescription: | + K8 Pod delete contains chaos to disrupt state of kubernetes resources. It uses chaostoolkit to inject random pod delete failures against specified applications + keywords: + - Kubernetes + - State + platforms: + - Minikube + maturity: alpha + maintainers: + - name: Anushya + email: anushya_dharmarajan@intuit.com + minKubeVersion: 1.12.0 + provider: + name: Intuit + links: + - name: Source Code + url: https://github.com/litmuschaos/litmus-python/tree/master/chaos-test + icon: + - url: + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/k8-pod-delete/experiment.yaml diff --git a/charts/generic/k8-prometheus-k8s-prometheus/rbac-admin.yaml b/charts/generic/k8-prometheus-k8s-prometheus/rbac-admin.yaml new file mode 100644 index 0000000..85a7c8d --- /dev/null +++ b/charts/generic/k8-prometheus-k8s-prometheus/rbac-admin.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chaos-admin + labels: + name: chaos-admin +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: chaos-admin + labels: + name: chaos-admin +rules: + - apiGroups: ["","apps","batch"] + resources: ["jobs","deployments","daemonsets"] + verbs: ["create","list","get","patch","delete"] + - apiGroups: ["","litmuschaos.io"] + resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults","deployments","jobs"] + verbs: ["get","create","update","patch","delete","list"] + - apiGroups: [""] + resources: ["nodes"] + verbs : ["get","list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: chaos-admin + labels: + name: chaos-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: chaos-admin +subjects: +- kind: ServiceAccount + name: chaos-admin + namespace: default diff --git a/charts/generic/k8-prometheus-operator/Readme.md b/charts/generic/k8-prometheus-operator/Readme.md new file mode 100644 index 0000000..e2dffeb --- /dev/null +++ b/charts/generic/k8-prometheus-operator/Readme.md @@ -0,0 +1,10 @@ +# Remote namespace +* navigate to current directory `charts/generic/k8-prometheus-operator/` +* Apply experiments for K8 - `kubectl apply -f experiment.yaml` +* Validate the experiments for k8 - `kubectl get chaosexperiments` +* Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` +* Validate experiment - `kubectl get pods -w` +* Validate logs - `kubectl logs -f ` +* Clean up chaosexperiment -`kubectl delete -f engine.yaml` +* Clean up rbac-admin -`kubectl delete -f rbac-admin.yaml` diff --git a/charts/generic/k8-prometheus-operator/engine.yaml b/charts/generic/k8-prometheus-operator/engine.yaml new file mode 100644 index 0000000..14e0211 --- /dev/null +++ b/charts/generic/k8-prometheus-operator/engine.yaml @@ -0,0 +1,39 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: k8-prometheus-operator + namespace: default +spec: + appinfo: + appns: 'default' + applabel: "k8s-app=prometheus-operator" + appkind: deployment + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: chaos-admin + monitoring: false + jobCleanUpPolicy: 'retain' + experiments: + - name: k8-pod-delete + spec: + components: + env: + # set chaos namespace, we assume you are using the addon-metricset-ns if not modify the below namespace + - name: NAME_SPACE + value: addon-metricset-ns + # set chaos label name + - name: LABEL_NAME + value: k8s-app=prometheus-operator + # pod endpoint + - name: APP_ENDPOINT + value: 'localhost' + - name: FILE + value: 'pod-custom-kill-health.json' + - name: REPORT + value: 'false' + - name: REPORT_ENDPOINT + value: 'none' + - name: TEST_NAMESPACE + value: 'default' + + diff --git a/charts/generic/k8-prometheus-operator/experiment.yaml b/charts/generic/k8-prometheus-operator/experiment.yaml new file mode 100644 index 0000000..0105ff3 --- /dev/null +++ b/charts/generic/k8-prometheus-operator/experiment.yaml @@ -0,0 +1,58 @@ +# Generic Chaos experiment for Application team, who want to participate in Game Day +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset +kind: ChaosExperiment +metadata: + name: k8-pod-delete +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: ["","apps","batch"] + resources: ["jobs","deployments","daemonsets"] + verbs: ["create","list","get","patch","delete"] + - apiGroups: ["","litmuschaos.io"] + resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults","deployments","jobs"] + verbs: ["get","create","update","patch","delete","list"] + - apiGroups: [""] + resources: ["nodes"] + verbs : ["get","list"] + labels: + name: k8-pod-delete + app.kubernetes.io/part-of: litmus + image: "litmuschaos/chaostoolkit:latest" + args: + - -c + - python /app/chaos/chaostest/kubernetes/k8_wrapper.py ; exit 0 + command: + - /bin/bash + env: + + - name: CHAOSTOOLKIT_IN_POD + value: 'true' + + - name: FILE + value: 'pod-app-kill-count.json' + + - name: NAME_SPACE + value: '' + + - name: LABEL_NAME + value: '' + + - name: APP_ENDPOINT + value: '' + + - name: PERCENTAGE + value: '50' + + - name: REPORT + value: 'true' + + - name: REPORT_ENDPOINT + value: 'none' + + - name: TEST_NAMESPACE + value: 'default' diff --git a/charts/generic/k8-prometheus-operator/k8-prometheus-operarator.chartserviceversion.yaml b/charts/generic/k8-prometheus-operator/k8-prometheus-operarator.chartserviceversion.yaml new file mode 100644 index 0000000..257fa30 --- /dev/null +++ b/charts/generic/k8-prometheus-operator/k8-prometheus-operarator.chartserviceversion.yaml @@ -0,0 +1,33 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + name: k8-pod-delete + version: 0.0.4 + annotations: + categories: Kubernetes + vendor: CNCF + createdAt: 2020-02-24T10:28:08Z + support: https://slack.kubernetes.io/ +spec: + displayName: k8-pod-delete + categoryDescription: | + K8 Pod delete contains chaos to disrupt state of kubernetes resources. It uses chaostoolkit to inject random pod delete failures against specified applications + keywords: + - Kubernetes + - State + platforms: + - Minikube + maturity: alpha + maintainers: + - name: Anushya + email: anushya_dharmarajan@intuit.com + minKubeVersion: 1.12.0 + provider: + name: Intuit + links: + - name: Source Code + url: https://github.com/litmuschaos/litmus-python/tree/master/chaos-test + icon: + - url: + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/k8-pod-delete/experiment.yaml diff --git a/charts/generic/k8-prometheus-operator/rbac-admin.yaml b/charts/generic/k8-prometheus-operator/rbac-admin.yaml new file mode 100644 index 0000000..85a7c8d --- /dev/null +++ b/charts/generic/k8-prometheus-operator/rbac-admin.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chaos-admin + labels: + name: chaos-admin +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: chaos-admin + labels: + name: chaos-admin +rules: + - apiGroups: ["","apps","batch"] + resources: ["jobs","deployments","daemonsets"] + verbs: ["create","list","get","patch","delete"] + - apiGroups: ["","litmuschaos.io"] + resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults","deployments","jobs"] + verbs: ["get","create","update","patch","delete","list"] + - apiGroups: [""] + resources: ["nodes"] + verbs : ["get","list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: chaos-admin + labels: + name: chaos-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: chaos-admin +subjects: +- kind: ServiceAccount + name: chaos-admin + namespace: default diff --git a/charts/generic/k8-prometheus-pushgateway/Readme.md b/charts/generic/k8-prometheus-pushgateway/Readme.md new file mode 100644 index 0000000..aeae9e2 --- /dev/null +++ b/charts/generic/k8-prometheus-pushgateway/Readme.md @@ -0,0 +1,10 @@ +# Remote namespace +* navigate to current directory `charts/generic/k8-prometheus-pushgateway/` +* Apply experiments for K8 - `kubectl apply -f experiment.yaml` +* Validate the experiments for k8 - `kubectl get chaosexperiments` +* Setup RBAC as admin mode - `kubectl apply -f rbac-admin.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine.yaml` +* Validate experiment - `kubectl get pods -w` +* Validate logs - `kubectl logs -f ` +* Clean up chaosexperiment -`kubectl delete -f engine.yaml` +* Clean up rbac-admin -`kubectl delete -f rbac-admin.yaml` diff --git a/charts/generic/k8-prometheus-pushgateway/engine.yaml b/charts/generic/k8-prometheus-pushgateway/engine.yaml new file mode 100644 index 0000000..19b74a2 --- /dev/null +++ b/charts/generic/k8-prometheus-pushgateway/engine.yaml @@ -0,0 +1,39 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: k8-prometheus-pushgateway + namespace: default +spec: + appinfo: + appns: 'default' + applabel: "k8s-app=prometheus-pushgateway" + appkind: deployment + annotationCheck: 'false' + engineState: 'active' + chaosServiceAccount: chaos-admin + monitoring: false + jobCleanUpPolicy: 'retain' + experiments: + - name: k8-pod-delete + spec: + components: + env: + # set chaos namespace, we assume you are using the addon-metricset-ns if not modify the below namespace + - name: NAME_SPACE + value: addon-metricset-ns + # set chaos label name + - name: LABEL_NAME + value: k8s-app=prometheus-pushgateway + # pod endpoint + - name: APP_ENDPOINT + value: 'localhost' + - name: FILE + value: 'pod-custom-kill-health.json' + - name: REPORT + value: 'false' + - name: REPORT_ENDPOINT + value: 'none' + - name: TEST_NAMESPACE + value: 'default' + + diff --git a/charts/generic/k8-prometheus-pushgateway/experiment.yaml b/charts/generic/k8-prometheus-pushgateway/experiment.yaml new file mode 100644 index 0000000..0105ff3 --- /dev/null +++ b/charts/generic/k8-prometheus-pushgateway/experiment.yaml @@ -0,0 +1,58 @@ +# Generic Chaos experiment for Application team, who want to participate in Game Day +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Deletes a pod belonging to a deployment/statefulset/daemonset +kind: ChaosExperiment +metadata: + name: k8-pod-delete +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: ["","apps","batch"] + resources: ["jobs","deployments","daemonsets"] + verbs: ["create","list","get","patch","delete"] + - apiGroups: ["","litmuschaos.io"] + resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults","deployments","jobs"] + verbs: ["get","create","update","patch","delete","list"] + - apiGroups: [""] + resources: ["nodes"] + verbs : ["get","list"] + labels: + name: k8-pod-delete + app.kubernetes.io/part-of: litmus + image: "litmuschaos/chaostoolkit:latest" + args: + - -c + - python /app/chaos/chaostest/kubernetes/k8_wrapper.py ; exit 0 + command: + - /bin/bash + env: + + - name: CHAOSTOOLKIT_IN_POD + value: 'true' + + - name: FILE + value: 'pod-app-kill-count.json' + + - name: NAME_SPACE + value: '' + + - name: LABEL_NAME + value: '' + + - name: APP_ENDPOINT + value: '' + + - name: PERCENTAGE + value: '50' + + - name: REPORT + value: 'true' + + - name: REPORT_ENDPOINT + value: 'none' + + - name: TEST_NAMESPACE + value: 'default' diff --git a/charts/generic/k8-prometheus-pushgateway/k8-prometheus-pushgateway.chartserviceversion.yaml b/charts/generic/k8-prometheus-pushgateway/k8-prometheus-pushgateway.chartserviceversion.yaml new file mode 100644 index 0000000..257fa30 --- /dev/null +++ b/charts/generic/k8-prometheus-pushgateway/k8-prometheus-pushgateway.chartserviceversion.yaml @@ -0,0 +1,33 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + name: k8-pod-delete + version: 0.0.4 + annotations: + categories: Kubernetes + vendor: CNCF + createdAt: 2020-02-24T10:28:08Z + support: https://slack.kubernetes.io/ +spec: + displayName: k8-pod-delete + categoryDescription: | + K8 Pod delete contains chaos to disrupt state of kubernetes resources. It uses chaostoolkit to inject random pod delete failures against specified applications + keywords: + - Kubernetes + - State + platforms: + - Minikube + maturity: alpha + maintainers: + - name: Anushya + email: anushya_dharmarajan@intuit.com + minKubeVersion: 1.12.0 + provider: + name: Intuit + links: + - name: Source Code + url: https://github.com/litmuschaos/litmus-python/tree/master/chaos-test + icon: + - url: + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/k8-pod-delete/experiment.yaml diff --git a/charts/generic/k8-prometheus-pushgateway/rbac-admin.yaml b/charts/generic/k8-prometheus-pushgateway/rbac-admin.yaml new file mode 100644 index 0000000..85a7c8d --- /dev/null +++ b/charts/generic/k8-prometheus-pushgateway/rbac-admin.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chaos-admin + labels: + name: chaos-admin +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: chaos-admin + labels: + name: chaos-admin +rules: + - apiGroups: ["","apps","batch"] + resources: ["jobs","deployments","daemonsets"] + verbs: ["create","list","get","patch","delete"] + - apiGroups: ["","litmuschaos.io"] + resources: ["pods","configmaps","events","services","chaosengines","chaosexperiments","chaosresults","deployments","jobs"] + verbs: ["get","create","update","patch","delete","list"] + - apiGroups: [""] + resources: ["nodes"] + verbs : ["get","list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: chaos-admin + labels: + name: chaos-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: chaos-admin +subjects: +- kind: ServiceAccount + name: chaos-admin + namespace: default diff --git a/charts/generic/k8-service-kill/Readme.md b/charts/generic/k8-service-kill/Readme.md index bd04dcc..8ddbd40 100644 --- a/charts/generic/k8-service-kill/Readme.md +++ b/charts/generic/k8-service-kill/Readme.md @@ -3,7 +3,7 @@ * Apply experiments for K8 - `kubectl apply -f experiments.yaml` * Validate the experiments for k8 - `kubectl get chaosexperiments` * Setup RBAC as admin mode - `kubectl apply -f rbac.yaml` -* Create pod Experiment - for health experiment for IKS 1.0 -`kubectl create -f engine-kiam.yaml` +* Create pod Experiment - for health experiment -`kubectl create -f engine-kiam.yaml` * Validate experiment - `kubectl get pods -w` * Validate logs - `kubectl logs -f ` * Clean up chaosexperiment -`kubectl delete -f engine.yaml`