Files
litmus-hub/charts/gcp/gcp-vm-instance-stop-by-label/experiment.yaml
Neelanjan Manna eb645f48d5 GCP Label Selector Experiment Charts and GCP Experiments Refactor (#532)
* added gcp-vm-instance-stop-by-label charts

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* updated experiment charts

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* added gcp-vm-disk-loss-by-label-charts; updated gcp-vm-disk-loss and gcp-vm-instance-stop charts to add sequence to engine manifest and removed device name from gcp-vm-disk-loss manifests

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* finalised charts

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* updated chart comments

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* updated AUTO_SCALING_GROUP env to MANAGED_INSTANCE_GROUP env

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* finalised charts for all GCP experiments

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* updated provider and author details in gcp-vm-instance-stop-by-label experiment

Signed-off-by: neelanjan00 <neelanjan@chaosnative.com>

* updated docs links

Signed-off-by: Neelanjan Manna <neelanjan.manna@harness.io>

* removed pods/exec rbac, updated keywords

Signed-off-by: Neelanjan Manna <neelanjan.manna@harness.io>

* updated chartserviceversion, package

Signed-off-by: Neelanjan Manna <neelanjan.manna@harness.io>

Co-authored-by: Udit Gaurav <35391335+uditgaurav@users.noreply.github.com>
2022-05-13 14:45:53 +05:30

91 lines
3.0 KiB
YAML

apiVersion: litmuschaos.io/v1alpha1
description:
message: |
gcp-vm-instance stop by label experiment causes gcp vm instances specified by a label to be stopped for a given time duration
kind: ChaosExperiment
metadata:
name: gcp-vm-instance-stop-by-label
labels:
name: gcp-vm-instance-stop-by-label
app.kubernetes.io/part-of: litmus
app.kubernetes.io/component: chaosexperiment
app.kubernetes.io/version: latest
spec:
definition:
scope: Cluster
permissions:
# Create and monitor the experiment & helper pods
- apiGroups: [""]
resources: ["pods"]
verbs: ["create","delete","get","list","patch","update", "deletecollection"]
# Performs CRUD operations on the events inside chaosengine and chaosresult
- apiGroups: [""]
resources: ["events"]
verbs: ["create","get","list","patch","update"]
# Fetch configmaps & secrets details and mount it to the experiment pod (if specified)
- apiGroups: [""]
resources: ["secrets","configmaps"]
verbs: ["get","list",]
# Track and get the runner, experiment, and helper pods log
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get","list","watch"]
# for configuring and monitor the experiment job by the chaos-runner pod
- apiGroups: ["batch"]
resources: ["jobs"]
verbs: ["create","list","get","delete","deletecollection"]
# for creation, status polling and deletion of litmus chaos resources used within a chaos workflow
- apiGroups: ["litmuschaos.io"]
resources: ["chaosengines","chaosexperiments","chaosresults"]
verbs: ["create","list","get","patch","update","delete"]
# for experiment to perform node status checks
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get","list"]
image: "litmuschaos/go-runner:latest"
imagePullPolicy: Always
args:
- -c
- ./experiments -name gcp-vm-instance-stop-by-label
command:
- /bin/bash
env:
# set chaos duration (in sec) as desired
- name: TOTAL_CHAOS_DURATION
value: '30'
# set chaos interval (in sec) as desired
- name: CHAOS_INTERVAL
value: '30'
- name: SEQUENCE
value: 'parallel'
# GCP project ID to which the vm instances belong
- name: GCP_PROJECT_ID
value: ''
# Label of the target vm instance(s)
- name: INSTANCE_LABEL
value: ''
# Zone in which the target vm instance(s) filtered by the label exist
# all the instances should lie in a single zone
- name: INSTANCE_ZONES
value: ''
# enable it if the target instance is a part of a managed instance group
- name: MANAGED_INSTANCE_GROUP
value: 'disable'
labels:
name: gcp-vm-instance-stop-by-label
app.kubernetes.io/part-of: litmus
app.kubernetes.io/component: experiment-job
app.kubernetes.io/version: latest
secrets:
- name: cloud-secret
mountPath: /tmp/