GCP VM disk loss by label
GCP VM disk loss by label disrupts the state of GCP persistent disk volume filtered using a label by detaching it from its VM instance for a specific duration.
Usage
View fault usage
Prerequisites
- Kubernetes > 1.16.
- Service account should have editor access (or owner access) to the GCP project.
- Target disk volume should not be a boot disk of any VM instance.
- Kubernetes secret that has the GCP service account credentials in the default namespace. Below is a sample secret file:
apiVersion: v1
kind: Secret
metadata:
name: cloud-secret
type: Opaque
stringData:
type:
project_id:
private_key_id:
private_key:
client_email:
client_id:
auth_uri:
token_uri:
auth_provider_x509_cert_url:
client_x509_cert_url:
Default validations
All the disk volumes that have the target label are attached to their respective instances.
Fault tunables
Fault tunables
Mandatory Fields
Variables | Description | Notes |
---|---|---|
GCP_PROJECT_ID | The ID of the GCP project, of which the disk volumes are a part. | All the target disk volumes should belong to a single GCP project. |
DISK_VOLUME_LABEL | Label of the target non-boot persistent disk volume. | This value is provided as a key:value pair or as a key if the corresponding value is empty. For example, disk:target-disk . |
ZONES | The zone of the target disk volumes. | Only one zone is provided, which indicates that all target disks reside in the same zone. |
Optional Fields
Variables | Description | Notes |
---|---|---|
TOTAL_CHAOS_DURATION | Duration that you specify, through which chaos is injected into the target resource (in seconds). | Defaults to 30s. |
CHAOS_INTERVAL | Time interval between two successive chaos iterations (in seconds). | Defaults to 30s. |
DISK_AFFECTED_PERC | Percentage of total disks that are filtered using the target label (specify numeric values only. | Defaults to 0 (that corresponds to 1 disk). |
SEQUENCE | Sequence of chaos execution for multiple target disks. | Defaults to parallel. It supports serial sequence as well. |
RAMP_TIME | Period to wait before and after injecting chaos (in seconds). | For example, 30s. |
Fault examples
Common fault tunables
Refer to the common attributes to tune the common tunables for all the faults.
Detach volumes by label
It contains the label of disk volumes that are subject to disk loss. It detaches all the disks with the DISK_VOLUME_LABEL
label in the ZONES
zone within the GCP_PROJECT_ID
project. It re-attaches the disk volume after waiting for the duration specified by TOTAL_CHAOS_DURATION
environment variable.
NOTE:
The DISK_VOLUME_LABEL
accepts only one label and ZONES
accepts only one zone name. Therefore, all the disks must reside in the same zone.
Use the following example to tune it:
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: gcp-vm-disk-loss-by-label
spec:
components:
env:
- name: DISK_VOLUME_LABEL
value: 'disk:target-disk'
- name: ZONES
value: 'us-east1-b'
- name: GCP_PROJECT_ID
value: 'my-project-4513'
- name: TOTAL_CHAOS_DURATION
VALUE: '60'