apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Injects network packet duplication on pods belonging to an app deployment
kind: ChaosExperiment
metadata:
  name: pod-network-duplication
  labels:
    name: pod-network-duplication
    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:
        - "get"
        - "list"
        - "patch"
        - "create"
        - "update"
        - "delete"
        - "deletecollection"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-network-duplication
    command:
    - /bin/bash
    env:
    - name: TOTAL_CHAOS_DURATION
      value: '60'

    - name: RAMP_TIME
      value: ''

    - name: TARGET_CONTAINER
      value: ''

    - name: TC_IMAGE
      value: 'gaiadocker/iproute2'

    - name: NETWORK_INTERFACE
      value: 'eth0'

    - name: NETWORK_PACKET_DUPLICATION_PERCENTAGE
      value: '100' # in percentage

    # 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: ''

    - 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 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 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'

    labels:
      name: pod-network-duplication
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Give a cpu spike on a node belonging to a deployment
kind: ChaosExperiment
metadata:
  name: node-cpu-hog
  labels:
    name: node-cpu-hog
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-cpu-hog
    command:
    - /bin/bash
    env:

    - name: TOTAL_CHAOS_DURATION
      value: '60'

    # 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 COMMA SEPARATED TARGET NODES NAME
    - name: TARGET_NODES
      value: ''

    # PROVIDE THE LIB HERE
    # ONLY LITMUS SUPPORTED
    - name: LIB
      value: 'litmus'

    # provide lib image
    - name: LIB_IMAGE
      value: 'litmuschaos/go-runner:latest' 

    ## 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'
   
    labels:
      name: node-cpu-hog
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Drain the node where application pod is scheduled
kind: ChaosExperiment
metadata:
  name: node-drain
  labels:
    name: node-drain
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
          - "apps"
        resources:
          - "jobs"
          - "pods"
          - "events"
          - "pods/log"
          - "pods/exec"
          - "daemonsets"
          - "pods/eviction"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
          - "patch"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-drain
    command:
    - /bin/bash
    env:
    
    - name: TARGET_NODE
      value: ''

    - name: TOTAL_CHAOS_DURATION
      value: '60'

    # 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: ''
      
    labels:
      name: node-drain
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Kills the docker service on the application node to check the resiliency.
kind: ChaosExperiment
metadata:
  name: docker-service-kill
  labels:
    name: docker-service-kill
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "apps"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
      - apiGroups:
          - ""
        resources:
          - "nodes"
        verbs:
          - "get"
          - "list"
    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
    command:
    - /bin/bash
    env:
    - name: ANSIBLE_STDOUT_CALLBACK
      value: 'default'

    - name: TOTAL_CHAOS_DURATION
      value: '90' # in seconds

    # Period to wait before injection of chaos in sec
    - name: RAMP_TIME
      value: ''

    - 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:
  message: |
    Taint the node where application pod is scheduled
kind: ChaosExperiment
metadata:
  name: node-taint
  labels:
    name: node-taint
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "apps"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "events"
          - "pods/log"
          - "pods/exec"
          - "daemonsets"
          - "pods/eviction"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
          - "patch"
          - "update"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-taint
    command:
    - /bin/bash
    env:

    - name: TARGET_NODE
      value: ''

    - name: TOTAL_CHAOS_DURATION
      value: '60'

    # 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: ''

    # set taint label & effect
    # key=value:effect or key:effect
    - name: TAINTS
      value: '' 

    labels:
      name: node-taint
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Scale the application replicas and test the node autoscaling on cluster
kind: ChaosExperiment
metadata:
  name: pod-autoscaler
  labels:
    name: pod-autoscaler
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "apps"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "deployments"
          - "statefulsets"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
          - "create"
          - "patch"
          - "update"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-autoscaler
    command:
    - /bin/bash
    env:

    - name: TOTAL_CHAOS_DURATION
      value: '60'

    # 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'

    # PROVIDE THE LIB HERE
    # ONLY LITMUS SUPPORTED
    - name: LIB
      value: 'litmus'
  
    labels:
      name: pod-autoscaler
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Injects network packet loss on pods belonging to an app deployment
kind: ChaosExperiment
metadata:
  name: pod-network-loss
  labels:
    name: pod-network-loss
    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:
        - "get"
        - "list"
        - "patch"
        - "create"
        - "update"
        - "delete"
        - "deletecollection"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-network-loss
    command:
    - /bin/bash
    env:
    
    - name: TARGET_CONTAINER
      value: ''

    # provide lib image
    - name: LIB_IMAGE
      value: 'litmuschaos/go-runner:latest' 

    - name: NETWORK_INTERFACE
      value: 'eth0'

    - name: TC_IMAGE
      value: 'gaiadocker/iproute2'

    - name: NETWORK_PACKET_LOSS_PERCENTAGE
      value: '100' #in PERCENTAGE

    - name: TOTAL_CHAOS_DURATION
      value: '60' # in seconds

    # 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'

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      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 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 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'
      
    labels:
      name: pod-network-loss
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Give a memory hog on a node belonging to a deployment
kind: ChaosExperiment
metadata:
  name: node-memory-hog
  labels:
    name: node-memory-hog
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-memory-hog
    command:
    - /bin/bash
    env:

    - 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 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'

    # ENTER THE COMMA SEPARATED TARGET NODES NAME
    - name: TARGET_NODES
      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 lib image
    - name: LIB_IMAGE
      value: 'litmuschaos/go-runner:latest' 

    ## 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'
      
    labels:
      name: node-memory-hog
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Detaching a persistent disk from a node/instance. Supports only for AWS and GCP
kind: ChaosExperiment
metadata:
  name: disk-loss
  labels:
    name: disk-loss
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "events"
          - "pods/log"
          - "secrets"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
    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
    command:
    - /bin/bash
    env:
    - name: ANSIBLE_STDOUT_CALLBACK
      value: 'default'

    - name: TOTAL_CHAOS_DURATION
      value: '15'

    # 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: PROJECT_ID 
      value: ''

    - name: NODE_NAME
      value: '' 

    - name: DISK_NAME
      value: ''  

    # provide the LIB
    # only litmus supported
    - name: LIB
      value: 'litmus'  
          
    - name: ZONE_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/

---
---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    IO stress on a app pods belonging to an app deployment
kind: ChaosExperiment
metadata:
  name: pod-io-stress
  labels:
    name: pod-io-stress
    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"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-io-stress
    command:
    - /bin/bash
    env:
      - 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'

      ## 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: ''

      ## Total number of workers default value is 4
      - name: NUMBER_OF_WORKERS
        value: '4'    

      ## Percentage of total pods to target
      - name: PODS_AFFECTED_PERC
        value: ''    

      # provide volume mount path
      - name: VOLUME_MOUNT_PATH
        value: ''

      ## specify the comma separated target pods
      - name: TARGET_PODS
        value: ''    

      # Period to wait before and after injection of chaos in sec
      - name: RAMP_TIME
        value: ''

      # Provide the LIB here
      # Only pumba supported
      - name: LIB
        value: 'pumba'

      # provide lib image
      - name: LIB_IMAGE
        value: 'litmuschaos/go-runner:latest'

      # provide the socket file path
      # it is used in pumba lib
      - 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'

    labels:
      name: pod-io-stress
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Inject network packet corruption into application pod
kind: ChaosExperiment
metadata:
  name: pod-network-corruption
  labels:
    name: pod-network-corruption
    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"
          - "delete"
          - "list"
          - "patch"
          - "update"
          - "get"
          - "deletecollection"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-network-corruption
    command:
    - /bin/bash
    env:
    
    - name: TARGET_CONTAINER
      value: ''

    # provide lib image
    - name: LIB_IMAGE
      value: 'litmuschaos/go-runner:latest' 

    - name: NETWORK_INTERFACE
      value: 'eth0'

    - name: TC_IMAGE
      value: 'gaiadocker/iproute2'

    - name: NETWORK_PACKET_CORRUPTION_PERCENTAGE
      value: '100' #in PERCENTAGE

    - 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'

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      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 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 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'
      
    labels:
      name: pod-network-corruption
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: "Kills a container belonging to an application pod \n"
kind: ChaosExperiment
metadata:
  name: container-kill
  labels:
    name: container-kill
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions:
      - apiGroups:
          - ""
          - "apps"
          - "batch"
          - "apps.openshift.io"
          - "argoproj.io"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "events"
          - "replicationcontrollers"
          - "deployments"
          - "statefulsets"
          - "daemonsets"
          - "replicasets"
          - "deploymentconfigs"
          - "rollouts"
          - "pods/exec"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "update"
          - "patch"
          - "delete"
          - "deletecollection"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name container-kill
    command:
    - /bin/bash
    env:

    - name: TARGET_CONTAINER
      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'
      
    - name: TARGET_PODS
      value: ''

    # provide the chaos interval
    - name: CHAOS_INTERVAL
      value: '10'

    - name: SIGNAL
      value: 'SIGKILL'

    # 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 total chaos duration
    - name: TOTAL_CHAOS_DURATION
      value: '20'
    
    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      value: ''

    - 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:
  message: |
    Restart node
kind: ChaosExperiment
metadata:
  name: node-restart
  labels:
    name: node-restart
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
          - "secrets"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources:
          - "nodes"
        verbs:
          - "get"
          - "list"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-restart
    command:
    - /bin/bash
    env:
    - name: SSH_USER
      value: 'root'

    - name: TOTAL_CHAOS_DURATION
      value: '60'

    # 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 lib image
    - name: LIB_IMAGE
      value: "litmuschaos/go-runner:latest"

    # ENTER THE TARGET NODE NAME
    - name: TARGET_NODE
      value: ''

    # ENTER THE TARGET NODE IP
    - name: TARGET_NODE_IP
      value: ''

    labels:
      name: node-restart
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest
    secrets:
      - name: id-rsa
        mountPath: /mnt/

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Give IO disk stress on a node belonging to a deployment
kind: ChaosExperiment
metadata:
  name: node-io-stress
  labels:
    name: node-io-stress
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-io-stress
    command:
    - /bin/bash
    env:

    - 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'

    ## 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'      

    ## Total number of workers default value is 4
    - name: NUMBER_OF_WORKERS
      value: '4'

    ## Total number of vm workers
    - name: VM_WORKERS
      value: '1'

    ## enter the comma separated target nodes name
    - name: TARGET_NODES
      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 lib image
    - name: LIB_IMAGE
      value: 'litmuschaos/go-runner:latest' 

    ## 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'
      
    labels:
      name: node-io-stress
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Fillup Ephemeral Storage of a Resource
kind: ChaosExperiment
metadata:
  name: disk-fill
  labels:
    name: disk-fill
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions: 
      - apiGroups:
          - ""
          - "apps"
          - "batch"
          - "apps.openshift.io"
          - "argoproj.io"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/exec"
          - "pods/log"
          - "replicationcontrollers"
          - "deployments"
          - "statefulsets"
          - "daemonsets"
          - "replicasets"
          - "deploymentconfigs"
          - "rollouts"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name disk-fill
    command:
    - /bin/bash
    env:

    - name: TARGET_CONTAINER
      value: ''
    
    - name: FILL_PERCENTAGE
      value: '80'

    - name: TOTAL_CHAOS_DURATION
      value: '60'

    # 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'

    - name: TARGET_PODS
      value: ''

    - name: EPHEMERAL_STORAGE_MEBIBYTES
      value: ''

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      value: ''

    - 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'

    ## it defines the sequence of chaos execution for multiple target pods
    ## supported values: serial, parallel
    - name: SEQUENCE
      value: 'parallel'

    labels:
      name: disk-fill
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Injects cpu consumption on pods belonging to an app deployment
kind: ChaosExperiment
metadata:
  name: pod-cpu-hog
  labels:
    name: pod-cpu-hog
    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"
          - "events"
          - "replicationcontrollers"
          - "deployments"
          - "statefulsets"
          - "daemonsets"
          - "replicasets"
          - "deploymentconfigs"
          - "rollouts"
          - "pods/exec"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-cpu-hog
    command:
    - /bin/bash
    env:
    - name: TOTAL_CHAOS_DURATION
      value: '60'

    ## Number of CPU cores to stress
    - name: CPU_CORES
      value: '1'

    ## 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: ''

    ## 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: 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'      

    - name: TARGET_PODS
      value: ''

    ## 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
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Injects network latency on pods belonging to an app deployment
kind: ChaosExperiment
metadata:
  name: pod-network-latency
  labels:
    name: pod-network-latency
    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"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-network-latency
    command:
    - /bin/bash
    env:
    
    - name: TARGET_CONTAINER
      value: ''

    - name: NETWORK_INTERFACE
      value: 'eth0'

    # provide lib image
    - name: LIB_IMAGE
      value: 'litmuschaos/go-runner:latest' 

    - name: TC_IMAGE
      value: 'gaiadocker/iproute2'

    - name: NETWORK_LATENCY
      value: '2000' #in ms

    - 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'

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      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 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 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'

    labels:
      name: pod-network-latency
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Kills the kubelet service on the application node to check the resiliency.
kind: ChaosExperiment
metadata:
  name: kubelet-service-kill
  labels:
    name: kubelet-service-kill
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources: 
          - "nodes"
        verbs:
          - "get"
          - "list"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name kubelet-service-kill
    command:
    - /bin/bash
    env:
   
    - name: TOTAL_CHAOS_DURATION
      value: '90' # in seconds

    # Period to wait before and after injection of chaos in sec
    - name: RAMP_TIME
      value: ''

    - name: LIB
      value: 'litmus'

    # provide lib image
    - name: LIB_IMAGE
      value: 'ubuntu:16.04' 
            
    # provide the target node name
    - name: TARGET_NODE
      value: ''

    labels:
      name: kubelet-service-kill
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Deletes a pod belonging to a deployment/statefulset/daemonset
kind: ChaosExperiment
metadata:
  name: k8-pod-delete
  labels:
    name: k8-pod-delete
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions:
      - apiGroups:
          - ""
          - "apps"
          - "batch"
          - "litmuschaos.io"
        resources:
          - "deployments"
          - "jobs"
          - "pods"
          - "configmaps"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
      - apiGroups:
          - ""
        resources:
          - "nodes"
        verbs :
          - "get"
          - "list"
    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'


    labels:
      name: k8-pod-delete
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Deletes a pod belonging to a deployment/statefulset/daemonset
kind: ChaosExperiment
metadata:
  name: pod-delete
  labels:
    name: pod-delete
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions:
      - apiGroups:
          - ""
          - "apps"
          - "apps.openshift.io"
          - "argoproj.io"
          - "batch"
          - "litmuschaos.io"
        resources:
          - "deployments"
          - "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"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-delete
    command:
    - /bin/bash
    env:

    - name: TOTAL_CHAOS_DURATION
      value: '15'

    # Period to wait before and after injection of chaos in sec
    - name: RAMP_TIME
      value: ''

    - name: FORCE
      value: 'true'

    - name: CHAOS_INTERVAL
      value: '5'

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      value: ''

    - name: LIB
      value: 'litmus'    

    - name: TARGET_PODS
      value: ''

    ## 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
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    poweroff node
kind: ChaosExperiment
metadata:
  name: node-poweroff
  labels:
    name: node-poweroff
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Cluster
    permissions:
      - apiGroups:
          - ""
          - "batch"
          - "litmuschaos.io"
        resources:
          - "jobs"
          - "pods"
          - "pods/log"
          - "pods/exec"
          - "events"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
          - "secrets"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
          - "deletecollection"
      - apiGroups:
          - ""
        resources:
          - "nodes"
        verbs:
          - "get"
          - "list"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name node-restart
    command:
    - /bin/bash
    env:
    - name: SSH_USER
      value: 'root'

    - name: TOTAL_CHAOS_DURATION
      value: '360'

    - name: EXPERIMENT_NAME
      value: 'node-poweroff'

    - 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: ''

    # PROVIDE THE LIB HERE
    # ONLY LITMUS SUPPORTED
    - name: LIB
      value: 'litmus'

    # provide lib image
    - name: LIB_IMAGE
      value: "litmuschaos/go-runner:latest"

    # ENTER THE TARGET NODE NAME
    - name: TARGET_NODE
      value: ''

    # ENTER THE TARGET NODE IP
    - name: TARGET_NODE_IP
      value: ''

    labels:
      name: node-poweroff
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest
    secrets:
      - name: id-rsa
        mountPath: /mnt/

---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    injects dns failure in target pod container
kind: ChaosExperiment
metadata:
  name: pod-dns-chaos
  labels:
    name: pod-dns-chaos
    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-chaos
    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'

      # currently only error chaos is supported
      - name: CHAOS_TYPE
        value: 'error'

    labels:
      experiment: pod-dns-chaos
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest


---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Deletes a pod belonging to a deployment/statefulset/daemonset
kind: ChaosExperiment
metadata:
  name: k8-service-kill
  labels:
    name: k8-service-kill
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions:
      - apiGroups:
          - ""
          - "apps"
          - "batch"
          - "litmuschaos.io"
        resources:
          - "deployments"
          - "jobs"
          - "pods"
          - "configmaps"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
      - apiGroups:
          - ""
        resources:
          - "nodes"
        verbs :
          - "get"
          - "list"
    labels:
      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
    command:
    - /bin/bash
    env:
    - name: CHAOSTOOLKIT_IN_POD
      value: 'true'

    - name: FILE
      value: 'service-app-kill-health.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'


---
---
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Injects memory consumption on pods belonging to an app deployment
kind: ChaosExperiment
metadata:
  name: pod-memory-hog
  labels:
    name: pod-memory-hog
    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"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-memory-hog
    command:
    - /bin/bash
    env:
      - name: TOTAL_CHAOS_DURATION
        value: '60'

      ## enter the amount of memory in megabytes to be consumed by the application pod
      - name: MEMORY_CONSUMPTION
        value: '500'

      ## 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: ''     

      ## 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: 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'        
        
      ## it defines the sequence of chaos execution for multiple target pods
      ## supported values: serial, parallel
      - name: SEQUENCE
        value: 'parallel'

      - name: TARGET_PODS
        value: ''

    labels:
      name: pod-memory-hog
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

---
