From cb425d852218e5e8de2744a4f783be2cf463d042 Mon Sep 17 00:00:00 2001 From: Soumya Ghosh Dastidar <44349253+gdsoumya@users.noreply.github.com> Date: Fri, 14 May 2021 12:25:32 +0530 Subject: [PATCH] Added DNS Spoof chaos (#455) * added dns-spoof chaos chart Signed-off-by: Soumya Ghosh Dastidar --- charts/generic/experiments.yaml | 1675 +++++++++-------- .../generic/generic.chartserviceversion.yaml | 9 +- charts/generic/generic.package.yaml | 19 +- .../{pod-dns-chaos.png => pod-dns-error.png} | Bin charts/generic/icons/pod-dns-spoof.png | Bin 0 -> 12130 bytes charts/generic/pod-dns-chaos/rbac.yaml | 57 - .../engine.yaml | 31 +- .../experiment.yaml | 42 +- .../pod-dns-error.chartserviceversion.yaml} | 30 +- .../rbac-psp.yaml | 43 +- charts/generic/pod-dns-error/rbac.yaml | 58 + charts/generic/pod-dns-spoof/engine.yaml | 35 + charts/generic/pod-dns-spoof/experiment.yaml | 97 + .../pod-dns-spoof.chartserviceversion.yaml | 37 + charts/generic/pod-dns-spoof/rbac-psp.yaml | 62 + charts/generic/pod-dns-spoof/rbac.yaml | 58 + 16 files changed, 1308 insertions(+), 945 deletions(-) rename charts/generic/icons/{pod-dns-chaos.png => pod-dns-error.png} (100%) create mode 100644 charts/generic/icons/pod-dns-spoof.png delete mode 100644 charts/generic/pod-dns-chaos/rbac.yaml rename charts/generic/{pod-dns-chaos => pod-dns-error}/engine.yaml (63%) rename charts/generic/{pod-dns-chaos => pod-dns-error}/experiment.yaml (79%) rename charts/generic/{pod-dns-chaos/pod-dns-chaos.chartserviceversion.yaml => pod-dns-error/pod-dns-error.chartserviceversion.yaml} (62%) rename charts/generic/{pod-dns-chaos => pod-dns-error}/rbac-psp.yaml (50%) create mode 100644 charts/generic/pod-dns-error/rbac.yaml create mode 100644 charts/generic/pod-dns-spoof/engine.yaml create mode 100644 charts/generic/pod-dns-spoof/experiment.yaml create mode 100644 charts/generic/pod-dns-spoof/pod-dns-spoof.chartserviceversion.yaml create mode 100644 charts/generic/pod-dns-spoof/rbac-psp.yaml create mode 100644 charts/generic/pod-dns-spoof/rbac.yaml diff --git a/charts/generic/experiments.yaml b/charts/generic/experiments.yaml index d74f1b1..2355af2 100644 --- a/charts/generic/experiments.yaml +++ b/charts/generic/experiments.yaml @@ -46,40 +46,40 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-restart + - -c + - ./experiments -name node-restart command: - - /bin/bash + - /bin/bash env: - - name: SSH_USER - value: 'root' + - name: SSH_USER + value: "root" - - name: TOTAL_CHAOS_DURATION - value: '60' + - name: TOTAL_CHAOS_DURATION + value: "60" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # PROVIDE THE LIB HERE - # ONLY LITMUS SUPPORTED - - name: LIB - value: 'litmus' + # PROVIDE THE LIB HERE + # ONLY LITMUS SUPPORTED + - name: LIB + value: "litmus" - # provide lib image - - name: LIB_IMAGE - value: "litmuschaos/go-runner:latest" + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - # ENTER THE TARGET NODE NAME - - name: TARGET_NODE - value: '' + # ENTER THE TARGET NODE NAME + - name: TARGET_NODE + value: "" - - name: NODE_LABEL - value: '' + - name: NODE_LABEL + value: "" - # ENTER THE TARGET NODE IP - - name: TARGET_NODE_IP - value: '' + # ENTER THE TARGET NODE IP + - name: TARGET_NODE_IP + value: "" labels: name: node-restart @@ -91,6 +91,7 @@ spec: mountPath: /mnt/ --- + --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -134,7 +135,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -143,30 +144,29 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-drain + - -c + - ./experiments -name node-drain command: - - /bin/bash + - /bin/bash env: - - - name: TARGET_NODE - value: '' + - name: TARGET_NODE + value: "" - - name: NODE_LABEL - value: '' + - name: NODE_LABEL + value: "" - - name: TOTAL_CHAOS_DURATION - value: '60' + - name: TOTAL_CHAOS_DURATION + value: "60" - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' + # Provide the LIB here + # Only litmus supported + - name: LIB + value: "litmus" + + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - labels: name: node-drain app.kubernetes.io/part-of: litmus @@ -190,105 +190,104 @@ spec: definition: scope: Namespaced permissions: - - apiGroups: - - "" - - "batch" - - "apps" - - "apps.openshift.io" - - "argoproj.io" - - "litmuschaos.io" - resources: - - "jobs" - - "pods" - - "pods/log" - - "replicationcontrollers" - - "deployments" - - "statefulsets" - - "daemonsets" - - "replicasets" - - "deploymentconfigs" - - "rollouts" - - "pods/exec" - - "events" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "get" - - "list" - - "patch" - - "create" - - "update" - - "delete" - - "deletecollection" + - apiGroups: + - "" + - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "get" + - "list" + - "patch" + - "create" + - "update" + - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-network-loss + - -c + - ./experiments -name pod-network-loss command: - - /bin/bash + - /bin/bash env: - - - name: TARGET_CONTAINER - value: '' + - name: TARGET_CONTAINER + value: "" - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - - name: NETWORK_INTERFACE - value: 'eth0' + - name: NETWORK_INTERFACE + value: "eth0" - - name: TC_IMAGE - value: 'gaiadocker/iproute2' + - name: TC_IMAGE + value: "gaiadocker/iproute2" - - name: NETWORK_PACKET_LOSS_PERCENTAGE - value: '100' #in PERCENTAGE + - name: NETWORK_PACKET_LOSS_PERCENTAGE + value: "100" #in PERCENTAGE - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds + - name: TOTAL_CHAOS_DURATION + value: "60" # in seconds - # ime period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # ime period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # it can be litmus or pumba - - name: LIB - value: 'litmus' + # it can be litmus or pumba + - name: LIB + value: "litmus" - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - - name: TARGET_PODS - value: '' + - name: TARGET_PODS + value: "" - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'docker' + # provide the name of container runtime + # for litmus LIB, it supports docker, containerd, crio + # for pumba LIB, it supports docker only + - name: CONTAINER_RUNTIME + value: "docker" - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' + # provide the destination ips + # chaos injection will be triggered for these destination ips + - name: DESTINATION_IPS + value: "" - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' + # provide the destination hosts + # chaos injection will be triggered for these destination hosts + - name: DESTINATION_HOSTS + value: "" - # provide the socket file path - - name: SOCKET_PATH - value: '/var/run/docker.sock' + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: pod-network-loss app.kubernetes.io/part-of: litmus @@ -312,101 +311,101 @@ spec: definition: scope: Namespaced permissions: - - apiGroups: - - "" - - "batch" - - "apps" - - "apps.openshift.io" - - "argoproj.io" - - "litmuschaos.io" - resources: - - "jobs" - - "pods" - - "pods/log" - - "replicationcontrollers" - - "deployments" - - "statefulsets" - - "daemonsets" - - "replicasets" - - "deploymentconfigs" - - "rollouts" - - "pods/exec" - - "events" - - "chaosengines" - - "chaosexperiments" - - "chaosresults" - verbs: - - "get" - - "list" - - "patch" - - "create" - - "update" - - "delete" - - "deletecollection" + - apiGroups: + - "" + - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "get" + - "list" + - "patch" + - "create" + - "update" + - "delete" + - "deletecollection" image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-network-duplication + - -c + - ./experiments -name pod-network-duplication command: - - /bin/bash + - /bin/bash env: - - name: TOTAL_CHAOS_DURATION - value: '60' + - name: TOTAL_CHAOS_DURATION + value: "60" - - name: RAMP_TIME - value: '' + - name: RAMP_TIME + value: "" - - name: TARGET_CONTAINER - value: '' + - name: TARGET_CONTAINER + value: "" - - name: TC_IMAGE - value: 'gaiadocker/iproute2' + - name: TC_IMAGE + value: "gaiadocker/iproute2" - - name: NETWORK_INTERFACE - value: 'eth0' + - name: NETWORK_INTERFACE + value: "eth0" - - name: NETWORK_PACKET_DUPLICATION_PERCENTAGE - value: '100' # in percentage + - name: NETWORK_PACKET_DUPLICATION_PERCENTAGE + value: "100" # in percentage - # lib can be litmus or pumba - - name: LIB - value: 'litmus' + # lib can be litmus or pumba + - name: LIB + value: "litmus" - - name: TARGET_PODS - value: '' + - name: TARGET_PODS + value: "" - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'docker' + # provide the name of container runtime + # for litmus LIB, it supports docker, containerd, crio + # for pumba LIB, it supports docker only + - name: CONTAINER_RUNTIME + value: "docker" - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' + # provide the destination ips + # chaos injection will be triggered for these destination ips + - name: DESTINATION_IPS + value: "" - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' + # provide the destination hosts + # chaos injection will be triggered for these destination hosts + - name: DESTINATION_HOSTS + value: "" - # provide the socket file path - - name: SOCKET_PATH - value: '/var/run/docker.sock' + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" labels: name: pod-network-duplication @@ -464,65 +463,63 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name container-kill + - -c + - ./experiments -name container-kill command: - - /bin/bash + - /bin/bash env: + - name: TARGET_CONTAINER + value: "" - - name: TARGET_CONTAINER - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # lib can be litmus or pumba + - name: LIB + value: "litmus" - # lib can be litmus or pumba - - name: LIB - value: 'litmus' - - - name: TARGET_PODS - value: '' + - name: TARGET_PODS + value: "" - # provide the chaos interval - - name: CHAOS_INTERVAL - value: '10' + # provide the chaos interval + - name: CHAOS_INTERVAL + value: "10" - - name: SIGNAL - value: 'SIGKILL' + - name: SIGNAL + value: "SIGKILL" - # provide the socket file path - - name: SOCKET_PATH - value: '/var/run/docker.sock' + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'docker' + # provide the name of container runtime + # for litmus LIB, it supports docker, containerd, crio + # for pumba LIB, it supports docker only + - name: CONTAINER_RUNTIME + value: "docker" - # provide the total chaos duration - - name: TOTAL_CHAOS_DURATION - value: '20' - - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + # provide the total chaos duration + - name: TOTAL_CHAOS_DURATION + value: "20" - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" labels: name: container-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest - --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -530,9 +527,9 @@ description: injects dns failure in target pod container kind: ChaosExperiment metadata: - name: pod-dns-chaos + name: pod-dns-spoof labels: - name: pod-dns-chaos + name: pod-dns-spoof app.kubernetes.io/part-of: litmus app.kubernetes.io/component: chaosexperiment app.kubernetes.io/version: latest @@ -573,66 +570,158 @@ spec: - "deletecollection" image: "litmuschaos/go-runner:latest" args: - - -c - - ./experiments -name pod-dns-chaos + - -c + - ./experiments -name pod-dns-spoof command: - - /bin/bash + - /bin/bash env: - - name: TARGET_CONTAINER - value: '' + value: "" # provide lib image - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + value: "litmuschaos/go-runner:latest" - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds + value: "60" # in seconds # Time period to wait before and after injection of chaos in sec - name: RAMP_TIME - value: '' + value: "" ## percentage of total pods to target - name: PODS_AFFECTED_PERC - value: '' + value: "" - name: TARGET_PODS - value: '' + value: "" # provide the name of container runtime, it supports docker, containerd, crio - name: CONTAINER_RUNTIME - value: 'docker' + value: "docker" # provide the socket file path - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "/var/run/docker.sock" ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: "parallel" - # list of the target hostnames or kewywords eg. '["litmuschaos","chaosnative.io"]' . If empty all hostnames are targets - - name: TARGET_HOSTNAMES - value: '' - - # can be either exact or substring, determines whether the dns query has to match exactly with one of the targets or can have any of the targets as substring - - name: MATCH_SCHEME - value: 'exact' - - # currently only error chaos is supported - - name: CHAOS_TYPE - value: 'error' + # map of the target hostnames eg. '{"abc.com":"spoofabc.com"}' . If empty no queries will be spoofed + - name: SPOOF_MAP + value: '{"abc.com":"spoofabc.com"}' labels: - experiment: pod-dns-chaos + experiment: pod-dns-spoof app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest - --- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + injects dns failure/error in target pod container +kind: ChaosExperiment +metadata: + name: pod-dns-error + labels: + name: pod-dns-error + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + args: + - -c + - ./experiments -name pod-dns-error + command: + - /bin/bash + env: + - name: TARGET_CONTAINER + value: "" + + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" + + - name: TOTAL_CHAOS_DURATION + value: "60" # in seconds + + # Time period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" + + - name: TARGET_PODS + value: "" + + # provide the name of container runtime, it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "docker" + + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" + + # list of the target hostnames or kewywords eg. '["litmuschaos","chaosnative.io"]' . If empty all hostnames are targets + - name: TARGET_HOSTNAMES + value: "" + + # can be either exact or substring, determines whether the dns query has to match exactly with one of the targets or can have any of the targets as substring + - name: MATCH_SCHEME + value: "exact" + + labels: + experiment: pod-dns-error + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -684,51 +773,51 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-memory-hog + - -c + - ./experiments -name pod-memory-hog command: - - /bin/bash + - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '60' + value: "60" ## enter the amount of memory in megabytes to be consumed by the application pod - name: MEMORY_CONSUMPTION - value: '500' + value: "500" ## percentage of total pods to target - name: PODS_AFFECTED_PERC - value: '' + value: "" ## Period to wait before and after injection of chaos in sec - name: RAMP_TIME - value: '' + value: "" ## env var that describes the library used to execute the chaos ## default: litmus. Supported values: litmus, pumba - name: LIB - value: 'litmus' + value: "litmus" - ## It is used in pumba lib only + ## It is used in pumba lib only - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + value: "litmuschaos/go-runner:latest" - ## It is used in pumba lib only + ## It is used in pumba lib only - name: STRESS_IMAGE - value: 'alexeiled/stress-ng:latest-ubuntu' + value: "alexeiled/stress-ng:latest-ubuntu" # provide the socket file path # it is used in pumba lib - name: SOCKET_PATH - value: '/var/run/docker.sock' - + value: "/var/run/docker.sock" + ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: "parallel" - name: TARGET_PODS - value: '' + value: "" labels: name: pod-memory-hog @@ -752,7 +841,7 @@ metadata: spec: definition: scope: Namespaced - permissions: + permissions: - apiGroups: - "" - "apps" @@ -787,57 +876,56 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name disk-fill + - -c + - ./experiments -name disk-fill command: - - /bin/bash + - /bin/bash env: + - name: TARGET_CONTAINER + value: "" - - name: TARGET_CONTAINER - value: '' - - - name: FILL_PERCENTAGE - value: '80' + - name: FILL_PERCENTAGE + value: "80" - - name: TOTAL_CHAOS_DURATION - value: '60' + - name: TOTAL_CHAOS_DURATION + value: "60" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' + # Provide the LIB here + # Only litmus supported + - name: LIB + value: "litmus" - # provide the data block size - # supported unit is KB - - name: DATA_BLOCK_SIZE - value: '256' + # provide the data block size + # supported unit is KB + - name: DATA_BLOCK_SIZE + value: "256" - - name: TARGET_PODS - value: '' + - name: TARGET_PODS + value: "" - - name: EPHEMERAL_STORAGE_MEBIBYTES - value: '' + - name: EPHEMERAL_STORAGE_MEBIBYTES + value: "" - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - # Provide the container runtime path - # Default set to docker container path - - name: CONTAINER_PATH - value: '/var/lib/docker/containers' + # Provide the container runtime path + # Default set to docker container path + - name: CONTAINER_PATH + value: "/var/lib/docker/containers" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" labels: name: disk-fill @@ -896,52 +984,52 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-cpu-hog + - -c + - ./experiments -name pod-cpu-hog command: - - /bin/bash + - /bin/bash env: - - name: TOTAL_CHAOS_DURATION - value: '60' + - name: TOTAL_CHAOS_DURATION + value: "60" - ## Number of CPU cores to stress - - name: CPU_CORES - value: '1' + ## Number of CPU cores to stress + - name: CPU_CORES + value: "1" - ## Percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + ## Percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - ## Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + ## Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - ## env var that describes the library used to execute the chaos - ## default: litmus. Supported values: litmus, pumba - - name: LIB - value: 'litmus' + ## env var that describes the library used to execute the chaos + ## default: litmus. Supported values: litmus, pumba + - name: LIB + value: "litmus" - ## It is used in pumba lib only - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + ## It is used in pumba lib only + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - ## It is used in pumba lib only - - name: STRESS_IMAGE - value: 'alexeiled/stress-ng:latest-ubuntu' + ## It is used in pumba lib only + - name: STRESS_IMAGE + value: "alexeiled/stress-ng:latest-ubuntu" - # provide the socket file path - # it is used in pumba lib - - name: SOCKET_PATH - value: '/var/run/docker.sock' + # provide the socket file path + # it is used in pumba lib + - name: SOCKET_PATH + value: "/var/run/docker.sock" - - name: TARGET_PODS - value: '' + - name: TARGET_PODS + value: "" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: pod-cpu-hog app.kubernetes.io/part-of: litmus @@ -988,7 +1076,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -996,66 +1084,65 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-io-stress + - -c + - ./experiments -name node-io-stress command: - - /bin/bash + - /bin/bash env: + - name: TOTAL_CHAOS_DURATION + value: "120" - - name: TOTAL_CHAOS_DURATION - value: '120' + ## specify the size as percentage of free space on the file system + ## default value 90 (in percentage) + - name: FILESYSTEM_UTILIZATION_PERCENTAGE + value: "10" - ## specify the size as percentage of free space on the file system - ## default value 90 (in percentage) - - name: FILESYSTEM_UTILIZATION_PERCENTAGE - value: '10' + ## we can specify the size in Gigabyte (Gb) also in place of percentage of free space + ## NOTE: for selecting this option FILESYSTEM_UTILIZATION_PERCENTAGE should be empty + - name: FILESYSTEM_UTILIZATION_BYTES + value: "" - ## we can specify the size in Gigabyte (Gb) also in place of percentage of free space - ## NOTE: for selecting this option FILESYSTEM_UTILIZATION_PERCENTAGE should be empty - - name: FILESYSTEM_UTILIZATION_BYTES - value: '' + ## Number of core of CPU + - name: CPU + value: "1" - ## Number of core of CPU - - name: CPU - value: '1' + ## Total number of workers default value is 4 + - name: NUMBER_OF_WORKERS + value: "4" - ## Total number of workers default value is 4 - - name: NUMBER_OF_WORKERS - value: '4' + ## Total number of vm workers + - name: VM_WORKERS + value: "1" - ## Total number of vm workers - - name: VM_WORKERS - value: '1' + ## enter the comma separated target nodes name + - name: TARGET_NODES + value: "" - ## enter the comma separated target nodes name - - name: TARGET_NODES - value: '' + - name: NODE_LABEL + value: "" - - name: NODE_LABEL - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Provide the LIB here + # Only litmus supported + - name: LIB + value: "litmus" - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + ## percentage of total nodes to target + - name: NODES_AFFECTED_PERC + value: "" - ## percentage of total nodes to target - - name: NODES_AFFECTED_PERC - value: '' + ## it defines the sequence of chaos execution for multiple target nodes + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target nodes - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: node-io-stress app.kubernetes.io/part-of: litmus @@ -1102,7 +1189,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -1110,32 +1197,31 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name kubelet-service-kill + - -c + - ./experiments -name kubelet-service-kill command: - - /bin/bash + - /bin/bash env: - - - name: TOTAL_CHAOS_DURATION - value: '90' # in seconds + - name: TOTAL_CHAOS_DURATION + value: "90" # in seconds - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - - name: LIB - value: 'litmus' + - name: LIB + value: "litmus" - - name: NODE_LABEL - value: '' + - name: NODE_LABEL + value: "" - # provide lib image - - name: LIB_IMAGE - value: 'ubuntu:16.04' - - # provide the target node name - - name: TARGET_NODE - value: '' + # provide lib image + - name: LIB_IMAGE + value: "ubuntu:16.04" + + # provide the target node name + - name: TARGET_NODE + value: "" labels: name: kubelet-service-kill @@ -1184,43 +1270,42 @@ spec: - "" resources: - "nodes" - verbs : + verbs: - "get" - "list" image: "litmuschaos/chaostoolkit:latest" args: - - -c - - python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0 + - -c + - python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0 command: - - /bin/bash + - /bin/bash env: - - name: CHAOSTOOLKIT_IN_POD - value: 'true' + - name: CHAOSTOOLKIT_IN_POD + value: "true" - - name: FILE - value: 'pod-app-kill-count.json' + - name: FILE + value: "pod-app-kill-count.json" - - name: NAME_SPACE - value: '' + - name: NAME_SPACE + value: "" - - name: LABEL_NAME - value: '' + - name: LABEL_NAME + value: "" - - name: APP_ENDPOINT - value: '' + - name: APP_ENDPOINT + value: "" - - name: PERCENTAGE - value: '50' + - name: PERCENTAGE + value: "50" - - name: REPORT - value: 'true' + - name: REPORT + value: "true" - - name: REPORT_ENDPOINT - value: 'none' - - - name: TEST_NAMESPACE - value: 'default' + - name: REPORT_ENDPOINT + value: "none" + - name: TEST_NAMESPACE + value: "default" labels: name: k8-pod-delete @@ -1269,46 +1354,45 @@ spec: - "" resources: - "nodes" - verbs : + verbs: - "get" - "list" labels: - name: k8-service-kill + name: k8-service-kill app.kubernetes.io/part-of: litmus image: "litmuschaos/chaostoolkit:latest" args: - - -c - - python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0 + - -c + - python /app/chaos/chaostest/kubernetes/k8_wrapper.py; exit 0 command: - - /bin/bash + - /bin/bash env: - - name: CHAOSTOOLKIT_IN_POD - value: 'true' + - name: CHAOSTOOLKIT_IN_POD + value: "true" - - name: FILE - value: 'service-app-kill-health.json' + - name: FILE + value: "service-app-kill-health.json" - - name: NAME_SPACE - value: '' + - name: NAME_SPACE + value: "" - - name: LABEL_NAME - value: '' + - name: LABEL_NAME + value: "" - - name: APP_ENDPOINT - value: '' + - name: APP_ENDPOINT + value: "" - - name: PERCENTAGE - value: '50' + - name: PERCENTAGE + value: "50" - - name: REPORT - value: 'true' + - name: REPORT + value: "true" - - name: REPORT_ENDPOINT - value: 'none' - - - name: TEST_NAMESPACE - value: 'default' + - name: REPORT_ENDPOINT + value: "none" + - name: TEST_NAMESPACE + value: "default" --- apiVersion: litmuschaos.io/v1alpha1 @@ -1359,46 +1443,46 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-restart + - -c + - ./experiments -name node-restart command: - - /bin/bash + - /bin/bash env: - - name: SSH_USER - value: 'root' + - name: SSH_USER + value: "root" - - name: TOTAL_CHAOS_DURATION - value: '360' + - name: TOTAL_CHAOS_DURATION + value: "360" - - name: EXPERIMENT_NAME - value: 'node-poweroff' + - name: EXPERIMENT_NAME + value: "node-poweroff" - - name: REBOOT_COMMAND - value: '-o ServerAliveInterval=1 -o ServerAliveCountMax=1 "sudo systemctl poweroff --force --force" ; true' + - name: REBOOT_COMMAND + value: '-o ServerAliveInterval=1 -o ServerAliveCountMax=1 "sudo systemctl poweroff --force --force" ; true' - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # PROVIDE THE LIB HERE - # ONLY LITMUS SUPPORTED - - name: LIB - value: 'litmus' + # PROVIDE THE LIB HERE + # ONLY LITMUS SUPPORTED + - name: LIB + value: "litmus" - # provide lib image - - name: LIB_IMAGE - value: "litmuschaos/go-runner:latest" + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - # ENTER THE TARGET NODE NAME - - name: TARGET_NODE - value: '' + # ENTER THE TARGET NODE NAME + - name: TARGET_NODE + value: "" - - name: NODE_LABEL - value: '' + - name: NODE_LABEL + value: "" - # ENTER THE TARGET NODE IP - - name: TARGET_NODE_IP - value: '' + # ENTER THE TARGET NODE IP + - name: TARGET_NODE_IP + value: "" labels: name: node-poweroff @@ -1456,30 +1540,29 @@ spec: image: "litmuschaos/ansible-runner:ci" imagePullPolicy: Always args: - - -c - - ansible-playbook ./experiments/generic/docker_service_kill/docker_service_kill_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + - -c + - ansible-playbook ./experiments/generic/docker_service_kill/docker_service_kill_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 command: - - /bin/bash + - /bin/bash env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' + - name: ANSIBLE_STDOUT_CALLBACK + value: "default" - - name: TOTAL_CHAOS_DURATION - value: '90' # in seconds + - name: TOTAL_CHAOS_DURATION + value: "90" # in seconds - # Period to wait before injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before injection of chaos in sec + - name: RAMP_TIME + value: "" - - name: LIB - value: 'litmus' + - name: LIB + value: "litmus" labels: name: docker-service-kill app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest - --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -1523,7 +1606,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -1534,28 +1617,27 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-autoscaler + - -c + - ./experiments -name pod-autoscaler command: - - /bin/bash + - /bin/bash env: + - name: TOTAL_CHAOS_DURATION + value: "60" - - name: TOTAL_CHAOS_DURATION - value: '60' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Number of replicas to scale + - name: REPLICA_COUNT + value: "5" - # Number of replicas to scale - - name: REPLICA_COUNT - value: '5' + # PROVIDE THE LIB HERE + # ONLY LITMUS SUPPORTED + - name: LIB + value: "litmus" - # PROVIDE THE LIB HERE - # ONLY LITMUS SUPPORTED - - name: LIB - value: 'litmus' - labels: name: pod-autoscaler app.kubernetes.io/part-of: litmus @@ -1613,70 +1695,69 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-network-latency + - -c + - ./experiments -name pod-network-latency command: - - /bin/bash + - /bin/bash env: - - - name: TARGET_CONTAINER - value: '' + - name: TARGET_CONTAINER + value: "" - - name: NETWORK_INTERFACE - value: 'eth0' + - name: NETWORK_INTERFACE + value: "eth0" - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - - name: TC_IMAGE - value: 'gaiadocker/iproute2' + - name: TC_IMAGE + value: "gaiadocker/iproute2" - - name: NETWORK_LATENCY - value: '2000' #in ms + - name: NETWORK_LATENCY + value: "2000" #in ms - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds + - name: TOTAL_CHAOS_DURATION + value: "60" # in seconds - # Time period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Time period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # lib can be litmus or pumba - - name: LIB - value: 'litmus' + # lib can be litmus or pumba + - name: LIB + value: "litmus" - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - - name: TARGET_PODS - value: '' + - name: TARGET_PODS + value: "" - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'docker' + # provide the name of container runtime + # for litmus LIB, it supports docker, containerd, crio + # for pumba LIB, it supports docker only + - name: CONTAINER_RUNTIME + value: "docker" - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' + # provide the destination ips + # chaos injection will be triggered for these destination ips + - name: DESTINATION_IPS + value: "" - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' + # provide the destination hosts + # chaos injection will be triggered for these destination hosts + - name: DESTINATION_HOSTS + value: "" - # provide the socket file path - - name: SOCKET_PATH - value: '/var/run/docker.sock' + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" labels: name: pod-network-latency @@ -1736,40 +1817,39 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-delete + - -c + - ./experiments -name pod-delete command: - - /bin/bash + - /bin/bash env: + - name: TOTAL_CHAOS_DURATION + value: "15" - - name: TOTAL_CHAOS_DURATION - value: '15' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + - name: FORCE + value: "true" - - name: FORCE - value: 'true' + - name: CHAOS_INTERVAL + value: "5" - - name: CHAOS_INTERVAL - value: '5' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + - name: LIB + value: "litmus" - - name: LIB - value: 'litmus' + - name: TARGET_PODS + value: "" - - name: TARGET_PODS - value: '' + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: pod-delete app.kubernetes.io/part-of: litmus @@ -1816,7 +1896,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -1824,49 +1904,48 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-cpu-hog + - -c + - ./experiments -name node-cpu-hog command: - - /bin/bash + - /bin/bash env: + - name: TOTAL_CHAOS_DURATION + value: "60" - - name: TOTAL_CHAOS_DURATION - value: '60' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + ## ENTER THE NUMBER OF CORES OF CPU FOR CPU HOGGING + ## OPTIONAL VALUE IN CASE OF EMPTY VALUE IT WILL TAKE NODE CPU CAPACITY + - name: NODE_CPU_CORE + value: "" - ## ENTER THE NUMBER OF CORES OF CPU FOR CPU HOGGING - ## OPTIONAL VALUE IN CASE OF EMPTY VALUE IT WILL TAKE NODE CPU CAPACITY - - name: NODE_CPU_CORE - value: '' + # ENTER THE COMMA SEPARATED TARGET NODES NAME + - name: TARGET_NODES + value: "" - # ENTER THE COMMA SEPARATED TARGET NODES NAME - - name: TARGET_NODES - value: '' + - name: NODE_LABEL + value: "" - - name: NODE_LABEL - value: '' + # PROVIDE THE LIB HERE + # ONLY LITMUS SUPPORTED + - name: LIB + value: "litmus" - # PROVIDE THE LIB HERE - # ONLY LITMUS SUPPORTED - - name: LIB - value: 'litmus' + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + ## percentage of total nodes to target + - name: NODES_AFFECTED_PERC + value: "" - ## percentage of total nodes to target - - name: NODES_AFFECTED_PERC - value: '' + ## it defines the sequence of chaos execution for multiple target nodes + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target nodes - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: node-cpu-hog app.kubernetes.io/part-of: litmus @@ -1924,71 +2003,70 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-network-corruption + - -c + - ./experiments -name pod-network-corruption command: - - /bin/bash + - /bin/bash env: - - - name: TARGET_CONTAINER - value: '' + - name: TARGET_CONTAINER + value: "" - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - - name: NETWORK_INTERFACE - value: 'eth0' + - name: NETWORK_INTERFACE + value: "eth0" - - name: TC_IMAGE - value: 'gaiadocker/iproute2' + - name: TC_IMAGE + value: "gaiadocker/iproute2" - - name: NETWORK_PACKET_CORRUPTION_PERCENTAGE - value: '100' #in PERCENTAGE + - name: NETWORK_PACKET_CORRUPTION_PERCENTAGE + value: "100" #in PERCENTAGE - - name: TOTAL_CHAOS_DURATION - value: '60' # in seconds + - name: TOTAL_CHAOS_DURATION + value: "60" # in seconds - # Time period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # lib can be litmus or pumba - - name: LIB - value: 'litmus' + # Time period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - ## percentage of total pods to target - - name: PODS_AFFECTED_PERC - value: '' + # lib can be litmus or pumba + - name: LIB + value: "litmus" - - name: TARGET_PODS - value: '' + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: 'docker' + - name: TARGET_PODS + value: "" - # provide the destination ips - # chaos injection will be triggered for these destination ips - - name: DESTINATION_IPS - value: '' + # provide the name of container runtime + # for litmus LIB, it supports docker, containerd, crio + # for pumba LIB, it supports docker only + - name: CONTAINER_RUNTIME + value: "docker" - # provide the destination hosts - # chaos injection will be triggered for these destination hosts - - name: DESTINATION_HOSTS - value: '' + # provide the destination ips + # chaos injection will be triggered for these destination ips + - name: DESTINATION_IPS + value: "" - # provide the socket file path - - name: SOCKET_PATH - value: '/var/run/docker.sock' + # provide the destination hosts + # chaos injection will be triggered for these destination hosts + - name: DESTINATION_HOSTS + value: "" + + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target pods - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: pod-network-corruption app.kubernetes.io/part-of: litmus @@ -1996,6 +2074,7 @@ spec: app.kubernetes.io/version: latest --- + --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -2047,62 +2126,62 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name pod-io-stress + - -c + - ./experiments -name pod-io-stress command: - - /bin/bash + - /bin/bash env: - name: TOTAL_CHAOS_DURATION - value: '120' + value: "120" ## specify the size as percentage of free space on the file system ## default value 90 (in percentage) - name: FILESYSTEM_UTILIZATION_PERCENTAGE - value: '10' + value: "10" ## we can specify the size in Gigabyte (Gb) also in place of percentage of free space ## NOTE: for selecting this option FILESYSTEM_UTILIZATION_PERCENTAGE should be empty - name: FILESYSTEM_UTILIZATION_BYTES - value: '' + value: "" ## Total number of workers default value is 4 - name: NUMBER_OF_WORKERS - value: '4' + value: "4" ## Percentage of total pods to target - name: PODS_AFFECTED_PERC - value: '' + value: "" # provide volume mount path - name: VOLUME_MOUNT_PATH - value: '' + value: "" ## specify the comma separated target pods - name: TARGET_PODS - value: '' + value: "" # Period to wait before and after injection of chaos in sec - name: RAMP_TIME - value: '' + value: "" # Provide the LIB here # Only pumba supported - name: LIB - value: 'pumba' + value: "pumba" # provide lib image - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + value: "litmuschaos/go-runner:latest" # provide the socket file path # it is used in pumba lib - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "/var/run/docker.sock" ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: "parallel" labels: name: pod-io-stress @@ -2150,56 +2229,56 @@ spec: image: "litmuschaos/ansible-runner:latest" imagePullPolicy: Always args: - - -c - - ansible-playbook ./experiments/generic/disk_loss/disk_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 + - -c + - ansible-playbook ./experiments/generic/disk_loss/disk_loss_ansible_logic.yml -i /etc/ansible/hosts -vv; exit 0 command: - - /bin/bash + - /bin/bash env: - - name: ANSIBLE_STDOUT_CALLBACK - value: 'default' + - name: ANSIBLE_STDOUT_CALLBACK + value: "default" - - name: TOTAL_CHAOS_DURATION - value: '15' + - name: TOTAL_CHAOS_DURATION + value: "15" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - - name: APP_CHECK - value: 'true' - - # GKE and AWS supported - - name: CLOUD_PLATFORM - value: 'GKE' + - name: APP_CHECK + value: "true" - - name: PROJECT_ID - value: '' + # GKE and AWS supported + - name: CLOUD_PLATFORM + value: "GKE" - - name: NODE_NAME - value: '' + - name: PROJECT_ID + value: "" - - name: DISK_NAME - value: '' + - name: NODE_NAME + value: "" - # provide the LIB - # only litmus supported - - name: LIB - value: 'litmus' - - - name: ZONE_NAME - value: '' + - name: DISK_NAME + value: "" + + # provide the LIB + # only litmus supported + - name: LIB + value: "litmus" + + - name: ZONE_NAME + value: "" + + - name: DEVICE_NAME + value: "" - - name: DEVICE_NAME - value: '' - labels: name: disk-loss app.kubernetes.io/part-of: litmus app.kubernetes.io/component: experiment-job app.kubernetes.io/version: latest secrets: - - name: cloud-secret - mountPath: /tmp/ + - name: cloud-secret + mountPath: /tmp/ --- apiVersion: litmuschaos.io/v1alpha1 @@ -2241,7 +2320,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -2249,57 +2328,56 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-memory-hog + - -c + - ./experiments -name node-memory-hog command: - - /bin/bash + - /bin/bash env: + - name: TOTAL_CHAOS_DURATION + value: "120" - - name: TOTAL_CHAOS_DURATION - value: '120' + ## Specify the size as percent of total node capacity Ex: '30' + ## NOTE: for selecting this option keep MEMORY_CONSUMPTION_MEBIBYTES empty + - name: MEMORY_CONSUMPTION_PERCENTAGE + value: "" - ## Specify the size as percent of total node capacity Ex: '30' - ## NOTE: for selecting this option keep MEMORY_CONSUMPTION_MEBIBYTES empty - - name: MEMORY_CONSUMPTION_PERCENTAGE - value: '' - - ## Specify the amount of memory to be consumed in mebibytes - ## NOTE: for selecting this option keep MEMORY_CONSUMPTION_PERCENTAGE empty - - name: MEMORY_CONSUMPTION_MEBIBYTES - value: '' + ## Specify the amount of memory to be consumed in mebibytes + ## NOTE: for selecting this option keep MEMORY_CONSUMPTION_PERCENTAGE empty + - name: MEMORY_CONSUMPTION_MEBIBYTES + value: "" - - name: NUMBER_OF_WORKERS - value: '1' + - name: NUMBER_OF_WORKERS + value: "1" - # ENTER THE COMMA SEPARATED TARGET NODES NAME - - name: TARGET_NODES - value: '' + # ENTER THE COMMA SEPARATED TARGET NODES NAME + - name: TARGET_NODES + value: "" - - name: NODE_LABEL - value: '' + - name: NODE_LABEL + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' + # Provide the LIB here + # Only litmus supported + - name: LIB + value: "litmus" - # provide lib image - - name: LIB_IMAGE - value: 'litmuschaos/go-runner:latest' + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" - ## percentage of total nodes to target - - name: NODES_AFFECTED_PERC - value: '' + ## percentage of total nodes to target + - name: NODES_AFFECTED_PERC + value: "" + + ## it defines the sequence of chaos execution for multiple target nodes + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" - ## it defines the sequence of chaos execution for multiple target nodes - ## supported values: serial, parallel - - name: SEQUENCE - value: 'parallel' - labels: name: node-memory-hog app.kubernetes.io/part-of: litmus @@ -2307,6 +2385,7 @@ spec: app.kubernetes.io/version: latest --- + --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -2350,7 +2429,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -2360,34 +2439,33 @@ spec: image: "litmuschaos/go-runner:latest" imagePullPolicy: Always args: - - -c - - ./experiments -name node-taint + - -c + - ./experiments -name node-taint command: - - /bin/bash + - /bin/bash env: + - name: TARGET_NODE + value: "" - - name: TARGET_NODE - value: '' + - name: NODE_LABEL + value: "" - - name: NODE_LABEL - value: '' + - name: TOTAL_CHAOS_DURATION + value: "60" - - name: TOTAL_CHAOS_DURATION - value: '60' + # Provide the LIB here + # Only litmus supported + - name: LIB + value: "litmus" - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" - # Period to wait before and after injection of chaos in sec - - name: RAMP_TIME - value: '' - - # set taint label & effect - # key=value:effect or key:effect - - name: TAINTS - value: '' + # set taint label & effect + # key=value:effect or key:effect + - name: TAINTS + value: "" labels: name: node-taint @@ -2396,3 +2474,4 @@ spec: app.kubernetes.io/version: latest --- + diff --git a/charts/generic/generic.chartserviceversion.yaml b/charts/generic/generic.chartserviceversion.yaml index fd8a50f..11a6d61 100644 --- a/charts/generic/generic.chartserviceversion.yaml +++ b/charts/generic/generic.chartserviceversion.yaml @@ -6,7 +6,7 @@ metadata: version: 0.1.16 annotations: categories: Kubernetes - chartDescription: Injects generic kubernetes chaos + chartDescription: Injects generic kubernetes chaos spec: displayName: Generic Chaos categoryDescription: > @@ -35,8 +35,9 @@ spec: - node-io-stress - pod-io-stress - node-restart - - pod-dns-chaos - + - pod-dns-error + - pod-dns-spoof + keywords: - Kubernetes - Container @@ -62,7 +63,7 @@ spec: - name: Source Code url: https://github.com/kubernetes/kubernetes - name: Kubernetes Slack - url: https://slack.kubernetes.io/ + url: https://slack.kubernetes.io/ - name: Documentation url: https://docs.litmuschaos.io/docs/chaoshub/#generic-chaos icon: diff --git a/charts/generic/generic.package.yaml b/charts/generic/generic.package.yaml index 9606e7e..5d6fcec 100644 --- a/charts/generic/generic.package.yaml +++ b/charts/generic/generic.package.yaml @@ -1,10 +1,10 @@ -packageName: generic +packageName: generic experiments: - name: pod-delete CSV: pod-delete.chartserviceversion.yaml desc: "pod-delete" - name: container-kill - CSV: container-kill.chartserviceversion.yaml + CSV: container-kill.chartserviceversion.yaml desc: "container-kill" - name: pod-network-loss CSV: pod-network-loss.chartserviceversion.yaml @@ -35,13 +35,13 @@ experiments: desc: "node-memory-hog" - name: pod-memory-hog CSV: pod-memory-hog.chartserviceversion.yaml - desc: "pod-memory-hog" + desc: "pod-memory-hog" - name: kubelet-service-kill CSV: kubelet-service-kill.chartserviceversion.yaml desc: "kubelet-service-kill" - name: pod-network-duplication CSV: pod-network-duplication.chartserviceversion.yaml - desc: "pod-network-duplication" + desc: "pod-network-duplication" - name: node-taint CSV: node-taint.chartserviceversion.yaml desc: "node-taint" @@ -62,10 +62,13 @@ experiments: desc: "node-io-stress" - name: pod-io-stress CSV: pod-io-stress.chartserviceversion.yaml - desc: "pod-io-stress" + desc: "pod-io-stress" - name: node-restart CSV: node-restart.chartserviceversion.yaml desc: "node-restart" - - name: pod-dns-chaos - CSV: pod-dns-chaos.chartserviceversion.yaml - desc: "pod-dns-chaos" + - name: pod-dns-error + CSV: pod-dns-error.chartserviceversion.yaml + desc: "pod-dns-error" + - name: pod-dns-spoof + CSV: pod-dns-spoof.chartserviceversion.yaml + desc: "pod-dns-spoof" diff --git a/charts/generic/icons/pod-dns-chaos.png b/charts/generic/icons/pod-dns-error.png similarity index 100% rename from charts/generic/icons/pod-dns-chaos.png rename to charts/generic/icons/pod-dns-error.png diff --git a/charts/generic/icons/pod-dns-spoof.png b/charts/generic/icons/pod-dns-spoof.png new file mode 100644 index 0000000000000000000000000000000000000000..5d13f6b2fde28f9f5851dda3b8508814821df434 GIT binary patch literal 12130 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 - injects dns failure in target pod container - keywords: - - "pods" - - "kubernetes" - - "generic" + Pod DNS Error injects dns failure/error in target pod containers + keywords: + - "pods" + - "kubernetes" + - "generic" - "dns" - maturity: alpha - minKubeVersion: 1.12.0 - provider: + maturity: alpha + minKubeVersion: 1.12.0 + provider: name: ChaosNative - maintainers: - - name: gdsoumya + maintainers: + - name: gdsoumya email: gdsoumya@chaosnative.com labels: app.kubernetes.io/component: chartserviceversion app.kubernetes.io/version: latest links: - name: Source Code - url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/pod-dns-chaos + url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/pod-dns-error - name: Documentation url: https://docs.litmuschaos.io/docs/getstarted/ - name: Video - url: + url: icon: - base64data: "" mediatype: "" - chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-dns-chaos/experiment.yaml \ No newline at end of file + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-dns-error/experiment.yaml diff --git a/charts/generic/pod-dns-chaos/rbac-psp.yaml b/charts/generic/pod-dns-error/rbac-psp.yaml similarity index 50% rename from charts/generic/pod-dns-chaos/rbac-psp.yaml rename to charts/generic/pod-dns-error/rbac-psp.yaml index b7eba0e..7265de2 100644 --- a/charts/generic/pod-dns-chaos/rbac-psp.yaml +++ b/charts/generic/pod-dns-error/rbac-psp.yaml @@ -2,42 +2,43 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: pod-dns-chaos-sa + name: pod-dns-error-sa namespace: default labels: - name: pod-dns-chaos-sa + name: pod-dns-error-sa app.kubernetes.io/part-of: litmus --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - name: pod-dns-chaos-sa + name: pod-dns-error-sa namespace: default labels: - name: pod-dns-chaos-sa + name: pod-dns-error-sa app.kubernetes.io/part-of: litmus rules: - apiGroups: [""] - resources: ["pods","events"] - verbs: ["create","list","get","patch","update","delete","deletecollection"] + resources: ["pods", "events"] + verbs: + ["create", "list", "get", "patch", "update", "delete", "deletecollection"] - apiGroups: [""] - resources: ["pods/exec","pods/log","replicationcontrollers"] - verbs: ["create","list","get"] + resources: ["pods/exec", "pods/log", "replicationcontrollers"] + verbs: ["create", "list", "get"] - apiGroups: ["batch"] resources: ["jobs"] - verbs: ["create","list","get","delete","deletecollection"] + verbs: ["create", "list", "get", "delete", "deletecollection"] - apiGroups: ["apps"] - resources: ["deployments","statefulsets","daemonsets","replicasets"] - verbs: ["list","get"] + resources: ["deployments", "statefulsets", "daemonsets", "replicasets"] + verbs: ["list", "get"] - apiGroups: ["apps.openshift.io"] resources: ["deploymentconfigs"] - verbs: ["list","get"] + verbs: ["list", "get"] - apiGroups: ["argoproj.io"] resources: ["rollouts"] - verbs: ["list","get"] + verbs: ["list", "get"] - apiGroups: ["litmuschaos.io"] - resources: ["chaosengines","chaosexperiments","chaosresults"] - verbs: ["create","list","get","patch","update"] + resources: ["chaosengines", "chaosexperiments", "chaosresults"] + verbs: ["create", "list", "get", "patch", "update"] - apiGroups: ["policy"] resources: ["podsecuritypolicies"] verbs: ["use"] @@ -46,16 +47,16 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: pod-dns-chaos-sa + name: pod-dns-error-sa namespace: default labels: - name: pod-dns-chaos-sa + name: pod-dns-error-sa app.kubernetes.io/part-of: litmus roleRef: apiGroup: rbac.authorization.k8s.io kind: Role - name: pod-dns-chaos-sa + name: pod-dns-error-sa subjects: -- kind: ServiceAccount - name: pod-dns-chaos-sa - namespace: default \ No newline at end of file + - kind: ServiceAccount + name: pod-dns-error-sa + namespace: default diff --git a/charts/generic/pod-dns-error/rbac.yaml b/charts/generic/pod-dns-error/rbac.yaml new file mode 100644 index 0000000..ba524e7 --- /dev/null +++ b/charts/generic/pod-dns-error/rbac.yaml @@ -0,0 +1,58 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-dns-error-sa + namespace: default + labels: + name: pod-dns-error-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-dns-error-sa + namespace: default + labels: + name: pod-dns-error-sa + app.kubernetes.io/part-of: litmus +rules: + - apiGroups: [""] + resources: ["pods", "events"] + verbs: + ["create", "list", "get", "patch", "update", "delete", "deletecollection"] + - apiGroups: [""] + resources: ["pods/exec", "pods/log", "replicationcontrollers"] + verbs: ["create", "list", "get"] + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create", "list", "get", "delete", "deletecollection"] + - apiGroups: ["apps"] + resources: ["deployments", "statefulsets", "daemonsets", "replicasets"] + verbs: ["list", "get"] + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list", "get"] + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list", "get"] + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines", "chaosexperiments", "chaosresults"] + verbs: ["create", "list", "get", "patch", "update"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-dns-error-sa + namespace: default + labels: + name: pod-dns-error-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-dns-error-sa +subjects: + - kind: ServiceAccount + name: pod-dns-error-sa + namespace: default diff --git a/charts/generic/pod-dns-spoof/engine.yaml b/charts/generic/pod-dns-spoof/engine.yaml new file mode 100644 index 0000000..ed6e959 --- /dev/null +++ b/charts/generic/pod-dns-spoof/engine.yaml @@ -0,0 +1,35 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: nginx-chaos +spec: + appinfo: + appns: "default" + applabel: "app=nginx" + appkind: "deployment" + # It can be active/stop + engineState: "active" + #ex. values: ns1:name=percona,ns2:run=nginx + auxiliaryAppInfo: "" + chaosServiceAccount: pod-dns-spoof-sa + # It can be delete/retain + jobCleanUpPolicy: "delete" + experiments: + - name: pod-dns-spoof + spec: + components: + env: + # map of the target hostnames eg. '{"abc.com":"spoofabc.com"}' . If empty no queries will be spoofed + - name: SPOOF_MAP + value: '{"google.com":"fakegoogle.com"}' + + - name: TOTAL_CHAOS_DURATION + value: "60" # in seconds + + # provide the name of container runtime, it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "docker" + + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" diff --git a/charts/generic/pod-dns-spoof/experiment.yaml b/charts/generic/pod-dns-spoof/experiment.yaml new file mode 100644 index 0000000..ef45c57 --- /dev/null +++ b/charts/generic/pod-dns-spoof/experiment.yaml @@ -0,0 +1,97 @@ +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Pod DNS Spoof can spoof particular dns requests in target pod container to desired target hostnames +kind: ChaosExperiment +metadata: + name: pod-dns-spoof + labels: + name: pod-dns-spoof + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: chaosexperiment + app.kubernetes.io/version: latest +spec: + definition: + scope: Namespaced + permissions: + - apiGroups: + - "" + - "batch" + - "apps" + - "apps.openshift.io" + - "argoproj.io" + - "litmuschaos.io" + resources: + - "jobs" + - "pods" + - "pods/log" + - "replicationcontrollers" + - "deployments" + - "statefulsets" + - "daemonsets" + - "replicasets" + - "deploymentconfigs" + - "rollouts" + - "pods/exec" + - "events" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + - "deletecollection" + image: "litmuschaos/go-runner:latest" + args: + - -c + - ./experiments -name pod-dns-spoof + command: + - /bin/bash + env: + - name: TARGET_CONTAINER + value: "" + + # provide lib image + - name: LIB_IMAGE + value: "litmuschaos/go-runner:latest" + + - name: TOTAL_CHAOS_DURATION + value: "60" # in seconds + + # Time period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: "" + + ## percentage of total pods to target + - name: PODS_AFFECTED_PERC + value: "" + + - name: TARGET_PODS + value: "" + + # provide the name of container runtime, it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "docker" + + # provide the socket file path + - name: SOCKET_PATH + value: "/var/run/docker.sock" + + ## it defines the sequence of chaos execution for multiple target pods + ## supported values: serial, parallel + - name: SEQUENCE + value: "parallel" + + # map of the target hostnames eg. '{"abc.com":"spoofabc.com"}' . If empty no queries will be spoofed + - name: SPOOF_MAP + value: "" + + labels: + experiment: pod-dns-spoof + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest diff --git a/charts/generic/pod-dns-spoof/pod-dns-spoof.chartserviceversion.yaml b/charts/generic/pod-dns-spoof/pod-dns-spoof.chartserviceversion.yaml new file mode 100644 index 0000000..cc169e0 --- /dev/null +++ b/charts/generic/pod-dns-spoof/pod-dns-spoof.chartserviceversion.yaml @@ -0,0 +1,37 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + name: pod-dns-spoof + version: 0.1.0 + annotations: + categories: generic +spec: + displayName: pod-dns-spoof + categoryDescription: > + Pod DNS Spoof can spoof particular dns requests in target pod container to desired target hostnames + keywords: + - "pods" + - "kubernetes" + - "generic" + - "dns" + maturity: alpha + minKubeVersion: 1.12.0 + provider: + name: ChaosNative + maintainers: + - name: gdsoumya + email: gdsoumya@chaosnative.com + labels: + app.kubernetes.io/component: chartserviceversion + app.kubernetes.io/version: latest + links: + - name: Source Code + url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/pod-dns-spoof + - name: Documentation + url: https://docs.litmuschaos.io/docs/getstarted/ + - name: Video + url: + icon: + - base64data: "" + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-dns-spoof/experiment.yaml diff --git a/charts/generic/pod-dns-spoof/rbac-psp.yaml b/charts/generic/pod-dns-spoof/rbac-psp.yaml new file mode 100644 index 0000000..d06212b --- /dev/null +++ b/charts/generic/pod-dns-spoof/rbac-psp.yaml @@ -0,0 +1,62 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-dns-spoof-sa + namespace: default + labels: + name: pod-dns-spoof-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-dns-spoof-sa + namespace: default + labels: + name: pod-dns-spoof-sa + app.kubernetes.io/part-of: litmus +rules: + - apiGroups: [""] + resources: ["pods", "events"] + verbs: + ["create", "list", "get", "patch", "update", "delete", "deletecollection"] + - apiGroups: [""] + resources: ["pods/exec", "pods/log", "replicationcontrollers"] + verbs: ["create", "list", "get"] + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create", "list", "get", "delete", "deletecollection"] + - apiGroups: ["apps"] + resources: ["deployments", "statefulsets", "daemonsets", "replicasets"] + verbs: ["list", "get"] + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list", "get"] + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list", "get"] + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines", "chaosexperiments", "chaosresults"] + verbs: ["create", "list", "get", "patch", "update"] + - apiGroups: ["policy"] + resources: ["podsecuritypolicies"] + verbs: ["use"] + resourceNames: ["litmus"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-dns-spoof-sa + namespace: default + labels: + name: pod-dns-spoof-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-dns-spoof-sa +subjects: + - kind: ServiceAccount + name: pod-dns-spoof-sa + namespace: default diff --git a/charts/generic/pod-dns-spoof/rbac.yaml b/charts/generic/pod-dns-spoof/rbac.yaml new file mode 100644 index 0000000..32d6a01 --- /dev/null +++ b/charts/generic/pod-dns-spoof/rbac.yaml @@ -0,0 +1,58 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-dns-spoof-sa + namespace: default + labels: + name: pod-dns-spoof-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-dns-spoof-sa + namespace: default + labels: + name: pod-dns-spoof-sa + app.kubernetes.io/part-of: litmus +rules: + - apiGroups: [""] + resources: ["pods", "events"] + verbs: + ["create", "list", "get", "patch", "update", "delete", "deletecollection"] + - apiGroups: [""] + resources: ["pods/exec", "pods/log", "replicationcontrollers"] + verbs: ["create", "list", "get"] + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create", "list", "get", "delete", "deletecollection"] + - apiGroups: ["apps"] + resources: ["deployments", "statefulsets", "daemonsets", "replicasets"] + verbs: ["list", "get"] + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list", "get"] + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list", "get"] + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines", "chaosexperiments", "chaosresults"] + verbs: ["create", "list", "get", "patch", "update"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-dns-spoof-sa + namespace: default + labels: + name: pod-dns-spoof-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-dns-spoof-sa +subjects: + - kind: ServiceAccount + name: pod-dns-spoof-sa + namespace: default