From bd278ef948aa098d0824cd9a71a2b9050ae1585f Mon Sep 17 00:00:00 2001 From: Udit Gaurav <35391335+uditgaurav@users.noreply.github.com> Date: Wed, 16 Jun 2021 03:27:06 +0530 Subject: [PATCH] Chore(aws-ssm): Add AWS SSM chaos experiment charts (#469) Signed-off-by: udit Co-authored-by: Shubham Chaudhary --- ...s-ssm-chaos-by-id.chartserviceversion.yaml | 45 ++++ .../aws-ssm/aws-ssm-chaos-by-id/engine.yaml | 29 +++ .../aws-ssm-chaos-by-id/experiment.yaml | 124 +++++++++ charts/aws-ssm/aws-ssm-chaos-by-id/rbac.yaml | 46 ++++ ...-ssm-chaos-by-tag.chartserviceversion.yaml | 45 ++++ .../aws-ssm/aws-ssm-chaos-by-tag/engine.yaml | 29 +++ .../aws-ssm-chaos-by-tag/experiment.yaml | 127 ++++++++++ charts/aws-ssm/aws-ssm-chaos-by-tag/rbac.yaml | 46 ++++ .../aws-ssm/aws-ssm.chartserviceversion.yaml | 36 +++ charts/aws-ssm/aws-ssm.package.yaml | 8 + charts/aws-ssm/experiments.yaml | 238 ++++++++++++++++++ charts/aws-ssm/icons/aws-ssm-chaos-by-id.png | Bin 0 -> 3152 bytes charts/aws-ssm/icons/aws-ssm-chaos-by-tag.png | Bin 0 -> 3152 bytes charts/aws-ssm/icons/aws-ssm.png | Bin 0 -> 3152 bytes 14 files changed, 773 insertions(+) create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-id/aws-ssm-chaos-by-id.chartserviceversion.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-id/engine.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-id/experiment.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-id/rbac.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-tag/aws-ssm-chaos-by-tag.chartserviceversion.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-tag/engine.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-tag/experiment.yaml create mode 100644 charts/aws-ssm/aws-ssm-chaos-by-tag/rbac.yaml create mode 100644 charts/aws-ssm/aws-ssm.chartserviceversion.yaml create mode 100644 charts/aws-ssm/aws-ssm.package.yaml create mode 100644 charts/aws-ssm/experiments.yaml create mode 100644 charts/aws-ssm/icons/aws-ssm-chaos-by-id.png create mode 100644 charts/aws-ssm/icons/aws-ssm-chaos-by-tag.png create mode 100644 charts/aws-ssm/icons/aws-ssm.png diff --git a/charts/aws-ssm/aws-ssm-chaos-by-id/aws-ssm-chaos-by-id.chartserviceversion.yaml b/charts/aws-ssm/aws-ssm-chaos-by-id/aws-ssm-chaos-by-id.chartserviceversion.yaml new file mode 100644 index 0000000..3d4fd71 --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-id/aws-ssm-chaos-by-id.chartserviceversion.yaml @@ -0,0 +1,45 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + createdAt: 2021-06-10T10:28:08Z + name: aws-ssm-chaos-by-id + version: 0.1.0 + annotations: + categories: Kubernetes + vendor: CNCF + support: https://slack.kubernetes.io/ +spec: + displayName: aws-ssm-chaos-by-id + categoryDescription: | + AWS SSM Chaos By ID contains chaos to disrupt the state of infra resources. The experiment can induce chaos on AWS resources using Amazon SSM Run Command This is carried out by using SSM Docs that defines the actions performed by Systems Manager on your managed instances (having SSM agent installed) which let us perform chaos experiments on resources. + - Causes chaos on AWS ec2 instances with given instance ID(s) using SSM docs for total chaos duration with the specified chaos interval. + - Tests deployment sanity (replica availability & uninterrupted service) and recovery workflows of the target application pod(if provided). + keywords: + - Kubernetes + - SSM + - AWS + - Document + - Run Command + platforms: + - AWS + maturity: alpha + chaosType: infra + maintainers: + - name: Udit Gaurav + email: udit@chaosnative.com + provider: + name: ChaosNative + 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/aws-ssm/aws-ssm-chaos-by-id + - name: Documentation + url: https://docs.litmuschaos.io/docs/aws-ssm-chaos-by-id/ + - name: Video + url: + icon: + - url: + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/aws-ssm-chaos-by-id/experiment.yaml diff --git a/charts/aws-ssm/aws-ssm-chaos-by-id/engine.yaml b/charts/aws-ssm/aws-ssm-chaos-by-id/engine.yaml new file mode 100644 index 0000000..1e0df68 --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-id/engine.yaml @@ -0,0 +1,29 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: nginx-chaos + namespace: default +spec: + engineState: 'active' + chaosServiceAccount: aws-ssm-chaos-by-id-sa + experiments: + - name: aws-ssm-chaos-by-id + spec: + components: + env: + # set chaos duration (in sec) as desired + - name: TOTAL_CHAOS_DURATION + value: '60' + + # set chaos duration (in sec) as desired + - name: CHAOS_INTERVAL + value: '60' + + # Instance ID of the target ec2 instance + # Multiple IDs can also be provided as comma separated values ex: id1,id2 + - name: EC2_INSTANCE_ID + value: '' + + # provide the region name of the target instances + - name: REGION + value: '' diff --git a/charts/aws-ssm/aws-ssm-chaos-by-id/experiment.yaml b/charts/aws-ssm/aws-ssm-chaos-by-id/experiment.yaml new file mode 100644 index 0000000..10add3b --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-id/experiment.yaml @@ -0,0 +1,124 @@ +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Execute AWS SSM Chaos on given ec2 instance IDs +kind: ChaosExperiment +metadata: + name: aws-ssm-chaos-by-id + labels: + name: aws-ssm-chaos-by-id + 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" + - "pods/exec" + - "secrets" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:ci" + imagePullPolicy: Always + args: + - -c + - ./experiments -name aws-ssm-chaos-by-id + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '60' + + - name: CHAOS_INTERVAL + value: '60' + + + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + # Instance ID of the target ec2 instance + # Multiple IDs can also be provided as comma separated values ex: id1,id2 + - name: EC2_INSTANCE_ID + value: '' + + - name: REGION + value: '' + + # it defines the sequence of chaos execution for multiple target instances + # supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + # Provide the path of aws credentials mounted from secret + - name: AWS_SHARED_CREDENTIALS_FILE + value: '/tmp/cloud_config.yml' + + # Provide the name of ssm doc + # if not using the default stress docs + - name: DOCUMENT_NAME + value: '' + + # Provide the type of ssm doc + # if not using the default stress docs + - name: DOCUMENT_TYPE + value: '' + + # Provide the format of ssm doc + # if not using the default stress docs + - name: DOCUMENT_FORMAT + value: '' + + # Provide the path of ssm doc + # if not using the default stress docs + - name: DOCUMENT_PATH + value: '' + + # if you want to install dependencies to run default ssm docs + - name: INSTALL_DEPENDENCIES + value: 'True' + + # provide the number of workers for memory stress + - name: NUMBER_OF_WORKERS + value: '1' + + # provide the percentage of available memory to stress + - name: MEMORY_PERCENTAGE + value: '80' + + # provide the CPU chores to be comsumed + # 0 will consume all the available cpu cores + - name: CPU_CORE + value: '0' + + # provide the LIB + # only litmus supported + - name: LIB + value: 'litmus' + + labels: + name: aws-ssm-chaos-by-id + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + secrets: + - name: cloud-secret + mountPath: /tmp/ diff --git a/charts/aws-ssm/aws-ssm-chaos-by-id/rbac.yaml b/charts/aws-ssm/aws-ssm-chaos-by-id/rbac.yaml new file mode 100644 index 0000000..cea6238 --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-id/rbac.yaml @@ -0,0 +1,46 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: aws-ssm-chaos-by-id-sa + namespace: default + labels: + name: aws-ssm-chaos-by-id-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: aws-ssm-chaos-by-id-sa + labels: + name: aws-ssm-chaos-by-id-sa + app.kubernetes.io/part-of: litmus +rules: +- apiGroups: [""] + resources: ["pods","events","secrets","configmaps"] + verbs: ["create","list","get","patch","update","delete","deletecollection"] +- apiGroups: [""] + resources: ["pods/exec","pods/log"] + verbs: ["create","list","get"] +- apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create","list","get","delete","deletecollection"] +- apiGroups: ["litmuschaos.io"] + resources: ["chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: aws-ssm-chaos-by-id-sa + labels: + name: aws-ssm-chaos-by-id-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: aws-ssm-chaos-by-id-sa +subjects: +- kind: ServiceAccount + name: aws-ssm-chaos-by-id-sa + namespace: default diff --git a/charts/aws-ssm/aws-ssm-chaos-by-tag/aws-ssm-chaos-by-tag.chartserviceversion.yaml b/charts/aws-ssm/aws-ssm-chaos-by-tag/aws-ssm-chaos-by-tag.chartserviceversion.yaml new file mode 100644 index 0000000..1b8ef92 --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-tag/aws-ssm-chaos-by-tag.chartserviceversion.yaml @@ -0,0 +1,45 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + createdAt: 2021-06-10T10:28:08Z + name: aws-ssm-chaos-by-tag + version: 0.1.0 + annotations: + categories: Kubernetes + vendor: CNCF + support: https://slack.kubernetes.io/ +spec: + displayName: aws-ssm-chaos-by-tag + categoryDescription: | + AWS SSM Chaos By ID contains chaos to disrupt the state of infra resources. The experiment can induce chaos on AWS resources using Amazon SSM Run Command This is carried out by using SSM Docs that defines the actions performed by Systems Manager on your managed instances (having SSM agent installed) which let us perform chaos experiments on resources. + - Causes chaos on AWS ec2 instances with given instance tag using SSM docs for total chaos duration with the specified chaos interval. + - Tests deployment sanity (replica availability & uninterrupted service) and recovery workflows of the target application pod(if provided). + keywords: + - Kubernetes + - SSM + - AWS + - Document + - Run Command + platforms: + - AWS + maturity: alpha + chaosType: infra + maintainers: + - name: Udit Gaurav + email: udit@chaosnative.com + provider: + name: ChaosNative + 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/aws-ssm/aws-ssm-chaos-by-tag + - name: Documentation + url: https://docs.litmuschaos.io/docs/aws-ssm-chaos-by-tag/ + - name: Video + url: + icon: + - url: + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/aws-ssm-chaos-by-tag/experiment.yaml diff --git a/charts/aws-ssm/aws-ssm-chaos-by-tag/engine.yaml b/charts/aws-ssm/aws-ssm-chaos-by-tag/engine.yaml new file mode 100644 index 0000000..c10f7a7 --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-tag/engine.yaml @@ -0,0 +1,29 @@ +apiVersion: litmuschaos.io/v1alpha1 +kind: ChaosEngine +metadata: + name: nginx-chaos + namespace: default +spec: + engineState: 'active' + chaosServiceAccount: aws-ssm-chaos-by-tag-sa + experiments: + - name: aws-ssm-chaos-by-tag + spec: + components: + env: + # set chaos duration (in sec) as desired + - name: TOTAL_CHAOS_DURATION + value: '60' + + # set chaos duration (in sec) as desired + - name: CHAOS_INTERVAL + value: '60' + + # provide tag of the target ec2 instances + # ex: team:devops (key:value) + - name: EC2_INSTANCE_TAG + value: '' + + # provide the region name of the target instances + - name: REGION + value: '' diff --git a/charts/aws-ssm/aws-ssm-chaos-by-tag/experiment.yaml b/charts/aws-ssm/aws-ssm-chaos-by-tag/experiment.yaml new file mode 100644 index 0000000..42bd36e --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-tag/experiment.yaml @@ -0,0 +1,127 @@ +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Execute AWS SSM Chaos on given ec2 instance Tag +kind: ChaosExperiment +metadata: + name: aws-ssm-chaos-by-tag + labels: + name: aws-ssm-chaos-by-tag + 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" + - "pods/exec" + - "secrets" + - "configmaps" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:ci" + imagePullPolicy: Always + args: + - -c + - ./experiments -name aws-ssm-chaos-by-tag + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '60' + + - name: CHAOS_INTERVAL + value: '60' + + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + # provide tag of the target ec2 instances + # ex: team:devops (key:value) + - name: EC2_INSTANCE_TAG + value: '' + + - name: REGION + value: '' + + # it defines the sequence of chaos execution for multiple target instances + # supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + # Provide the path of aws credentials mounted from secret + - name: AWS_SHARED_CREDENTIALS_FILE + value: '/tmp/cloud_config.yml' + + # percentage of total instance to target + - name: INSTANCE_AFFECTED_PERC + value: '' + + # Provide the name of ssm doc + # if not using the default stress docs + - name: DOCUMENT_NAME + value: '' + + # Provide the type of ssm doc + # if not using the default stress docs + - name: DOCUMENT_TYPE + value: '' + + # Provide the format of ssm doc + # if not using the default stress docs + - name: DOCUMENT_FORMAT + value: '' + + # Provide the path of ssm doc + # if not using the default stress docs + - name: DOCUMENT_PATH + value: '' + + # if you want to install dependencies to run default ssm docs + - name: INSTALL_DEPENDENCIES + value: 'True' + + # provide the number of workers for memory stress + - name: NUMBER_OF_WORKERS + value: '1' + + # provide the percentage of available memory to stress + - name: MEMORY_PERCENTAGE + value: '80' + + # provide the CPU chores to comsumed + # 0 will consume all the available cpu cores + - name: CPU_CORE + value: '0' + + # provide the LIB + # only litmus supported + - name: LIB + value: 'litmus' + + labels: + name: aws-ssm-chaos-by-tag + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + secrets: + - name: cloud-secret + mountPath: /tmp/ diff --git a/charts/aws-ssm/aws-ssm-chaos-by-tag/rbac.yaml b/charts/aws-ssm/aws-ssm-chaos-by-tag/rbac.yaml new file mode 100644 index 0000000..56b3ca5 --- /dev/null +++ b/charts/aws-ssm/aws-ssm-chaos-by-tag/rbac.yaml @@ -0,0 +1,46 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: aws-ssm-chaos-by-tag-sa + namespace: default + labels: + name: aws-ssm-chaos-by-tag-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: aws-ssm-chaos-by-tag-sa + labels: + name: aws-ssm-chaos-by-tag-sa + app.kubernetes.io/part-of: litmus +rules: +- apiGroups: [""] + resources: ["pods","events","secrets","configmaps"] + verbs: ["create","list","get","patch","update","delete","deletecollection"] +- apiGroups: [""] + resources: ["pods/exec","pods/log"] + verbs: ["create","list","get"] +- apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create","list","get","delete","deletecollection"] +- apiGroups: ["litmuschaos.io"] + resources: ["chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: aws-ssm-chaos-by-tag-sa + labels: + name: aws-ssm-chaos-by-tag-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: aws-ssm-chaos-by-tag-sa +subjects: +- kind: ServiceAccount + name: aws-ssm-chaos-by-tag-sa + namespace: default diff --git a/charts/aws-ssm/aws-ssm.chartserviceversion.yaml b/charts/aws-ssm/aws-ssm.chartserviceversion.yaml new file mode 100644 index 0000000..2cf336b --- /dev/null +++ b/charts/aws-ssm/aws-ssm.chartserviceversion.yaml @@ -0,0 +1,36 @@ +apiVersion: litmuchaos.io/v1alpha1 +kind: ChartServiceVersion +metadata: + createdAt: 2021-06-11T10:28:08Z + name: aws ssm + version: 0.1.0 + annotations: + categories: Kubernetes + chartDescription: Injects aws ssm chaos +spec: + displayName: AWS SSM + categoryDescription: > + aws ssm contains chaos to disrupt state of aws resources by litmus aws ssm docs + experiments: + - aws-ssm-chaos-by-id + - aws-ssm-chaos-by-tag + keywords: + - AWS + - SSM + - EC2 + maintainers: + - name: ksatchit + email: karthik@chaosnative.com + provider: + name: ChaosNative + links: + - name: Kubernetes Website + url: https://kubernetes.io + - name: Source Code + url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/aws-ssm + - name: Kubernetes Slack + url: https://slack.kubernetes.io/ + icon: + - url: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/icons/aws-ssm.png + mediatype: image/png + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/experiments.yaml diff --git a/charts/aws-ssm/aws-ssm.package.yaml b/charts/aws-ssm/aws-ssm.package.yaml new file mode 100644 index 0000000..cfae7ec --- /dev/null +++ b/charts/aws-ssm/aws-ssm.package.yaml @@ -0,0 +1,8 @@ +packageName: aws-ssm +experiments: + - name: aws-ssm-chaos-by-id + CSV: aws-ssm-chaos-by-id.chartserviceversion.yaml + desc: "aws-ssm-chaos-by-id" + - name: aws-ssm-chaos-by-tag + CSV: aws-ssm-chaos-by-tag.chartserviceversion.yaml + desc: "aws-ssm-chaos-by-tag" \ No newline at end of file diff --git a/charts/aws-ssm/experiments.yaml b/charts/aws-ssm/experiments.yaml new file mode 100644 index 0000000..148633f --- /dev/null +++ b/charts/aws-ssm/experiments.yaml @@ -0,0 +1,238 @@ +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Execute AWS SSM Chaos on given ec2 instance IDs +kind: ChaosExperiment +metadata: + name: aws-ssm-chaos-by-id + labels: + name: aws-ssm-chaos-by-id + 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" + - "pods/exec" + - "secrets" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name aws-ssm-chaos-by-id + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '60' + + - name: CHAOS_INTERVAL + value: '60' + + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + # Instance ID of the target ec2 instance + # Multiple IDs can also be provided as comma separated values ex: id1,id2 + - name: EC2_INSTANCE_ID + value: '' + + - name: REGION + value: '' + + # it defines the sequence of chaos execution for multiple target instances + # supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + # Provide the name of ssm doc + # if not using the default stress docs + - name: DOCUMENT_NAME + value: '' + + # Provide the type of ssm doc + # if not using the default stress docs + - name: DOCUMENT_TYPE + value: '' + + # Provide the format of ssm doc + # if not using the default stress docs + - name: DOCUMENT_FORMAT + value: '' + + # Provide the path of ssm doc + # if not using the default stress docs + - name: DOCUMENT_PATH + value: '' + + # if you want to install dependencies to run default ssm docs + - name: INSTALL_DEPENDENCIES + value: 'True' + + # provide the number of workers for memory stress + - name: NUMBER_OF_WORKERS + value: '1' + + # provide the percentage of available memory to stress + - name: MEMORY_PERCENTAGE + value: '80' + + # provide the CPU chore to comsume + # giving 0 will consume all the available cpu cores + - name: CPU + value: '0' + + # provide the LIB + # only litmus supported + - name: LIB + value: 'litmus' + + labels: + name: aws-ssm-chaos-by-id + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest +--- +apiVersion: litmuschaos.io/v1alpha1 +description: + message: | + Execute AWS SSM Chaos on given ec2 instance Tag +kind: ChaosExperiment +metadata: + name: aws-ssm-chaos-by-tag + labels: + name: aws-ssm-chaos-by-tag + 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" + - "pods/exec" + - "secrets" + - "chaosengines" + - "chaosexperiments" + - "chaosresults" + verbs: + - "create" + - "list" + - "get" + - "patch" + - "update" + - "delete" + image: "litmuschaos/go-runner:latest" + imagePullPolicy: Always + args: + - -c + - ./experiments -name aws-ssm-chaos-by-tag + command: + - /bin/bash + env: + - name: TOTAL_CHAOS_DURATION + value: '60' + + - name: CHAOS_INTERVAL + value: '60' + + # Period to wait before and after injection of chaos in sec + - name: RAMP_TIME + value: '' + + # provide tag of the target ec2 instances + # ex: team:devops (key:value) + - name: EC2_INSTANCE_TAG + value: '' + + - name: REGION + value: '' + + # it defines the sequence of chaos execution for multiple target instances + # supported values: serial, parallel + - name: SEQUENCE + value: 'parallel' + + # percentage of total instance to target + - name: INSTANCE_AFFECTED_PERC + value: '' + + # Provide the name of ssm doc + # if not using the default stress docs + - name: DOCUMENT_NAME + value: '' + + # Provide the type of ssm doc + # if not using the default stress docs + - name: DOCUMENT_TYPE + value: '' + + # Provide the format of ssm doc + # if not using the default stress docs + - name: DOCUMENT_FORMAT + value: '' + + # Provide the path of ssm doc + # if not using the default stress docs + - name: DOCUMENT_PATH + value: '' + + # if you want to install dependencies to run default ssm docs + - name: INSTALL_DEPENDENCIES + value: 'True' + + # provide the number of workers for memory stress + - name: NUMBER_OF_WORKERS + value: '1' + + # provide the percentage of available memory to stress + - name: MEMORY_PERCENTAGE + value: '80' + + # provide the CPU chore to comsume + # giving 0 will consume all the available cpu cores + - name: CPU + value: '0' + + # provide the LIB + # only litmus supported + - name: LIB + value: 'litmus' + + labels: + name: aws-ssm-chaos-by-tag + app.kubernetes.io/part-of: litmus + app.kubernetes.io/component: experiment-job + app.kubernetes.io/version: latest + secrets: + - name: cloud-secret + mountPath: /tmp/ diff --git a/charts/aws-ssm/icons/aws-ssm-chaos-by-id.png b/charts/aws-ssm/icons/aws-ssm-chaos-by-id.png new file mode 100644 index 0000000000000000000000000000000000000000..fd09e34f6cd5c49336db1bb357ebf14d82201274 GIT binary patch literal 3152 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