diff --git a/charts/kube-aws/Chart.yaml b/charts/kube-aws/Chart.yaml index d93f6d92..8d381bde 100644 --- a/charts/kube-aws/Chart.yaml +++ b/charts/kube-aws/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "2.14.0" +appVersion: "3.6.0" description: A Helm chart to install litmus aws chaos experiments name: kube-aws -version: 2.14.1 +version: 3.6.0 home: https://litmuschaos.io sources: - https://github.com/litmuschaos/litmus diff --git a/charts/kube-aws/README.md b/charts/kube-aws/README.md index ad6bcf0d..08f05cd7 100644 --- a/charts/kube-aws/README.md +++ b/charts/kube-aws/README.md @@ -1,6 +1,6 @@ # kube-aws -![Version: 2.14.1](https://img.shields.io/badge/Version-2.14.1-informational?style=flat-square) ![AppVersion: 2.14.0](https://img.shields.io/badge/AppVersion-2.14.0-informational?style=flat-square) +![Version: 3.6.0](https://img.shields.io/badge/Version-3.6.0-informational?style=flat-square) ![AppVersion: 3.6.0](https://img.shields.io/badge/AppVersion-3.6.0-informational?style=flat-square) A Helm chart to install litmus aws chaos experiments @@ -27,7 +27,7 @@ A Helm chart to install litmus aws chaos experiments | fullnameOverride | string | `"kube-aws"` | | | image.litmusGO.pullPolicy | string | `"Always"` | | | image.litmusGO.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/go-runner"` | | -| image.litmusGO.tag | string | `"2.14.0"` | | +| image.litmusGO.tag | string | `"3.6.0"` | | | nameOverride | string | `"kube-aws"` | | ---------------------------------------------- diff --git a/charts/kube-aws/values.yaml b/charts/kube-aws/values.yaml index 51ac42bc..1cb4dcdc 100644 --- a/charts/kube-aws/values.yaml +++ b/charts/kube-aws/values.yaml @@ -11,7 +11,7 @@ customLabels: {} image: litmusGO: repository: litmuschaos.docker.scarf.sh/litmuschaos/go-runner - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always experiments: diff --git a/charts/kube-azure/Chart.yaml b/charts/kube-azure/Chart.yaml index aee12e44..df29b487 100644 --- a/charts/kube-azure/Chart.yaml +++ b/charts/kube-azure/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "2.14.0" +appVersion: "3.6.0" description: A Helm chart to install litmus Azure chaos experiments name: kube-azure -version: 2.14.1 +version: 3.6.0 home: https://litmuschaos.io sources: - https://github.com/litmuschaos/litmus diff --git a/charts/kube-azure/README.md b/charts/kube-azure/README.md index 5e560bb3..2832a873 100644 --- a/charts/kube-azure/README.md +++ b/charts/kube-azure/README.md @@ -1,6 +1,6 @@ # kube-azure -![Version: 2.14.1](https://img.shields.io/badge/Version-2.14.1-informational?style=flat-square) ![AppVersion: 2.14.0](https://img.shields.io/badge/AppVersion-2.14.0-informational?style=flat-square) +![Version: 3.6.0](https://img.shields.io/badge/Version-3.6.0-informational?style=flat-square) ![AppVersion: 3.6.0](https://img.shields.io/badge/AppVersion-3.6.0-informational?style=flat-square) A Helm chart to install litmus Azure chaos experiments @@ -27,7 +27,7 @@ A Helm chart to install litmus Azure chaos experiments | fullnameOverride | string | `"kube-azure"` | | | image.litmusGO.pullPolicy | string | `"Always"` | | | image.litmusGO.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/go-runner"` | | -| image.litmusGO.tag | string | `"2.14.0"` | | +| image.litmusGO.tag | string | `"3.6.0"` | | | nameOverride | string | `"kube-azure"` | | ---------------------------------------------- diff --git a/charts/kube-azure/values.yaml b/charts/kube-azure/values.yaml index fdfe86e8..ff5d1ce7 100644 --- a/charts/kube-azure/values.yaml +++ b/charts/kube-azure/values.yaml @@ -11,7 +11,7 @@ customLabels: {} image: litmusGO: repository: litmuschaos.docker.scarf.sh/litmuschaos/go-runner - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always experiments: diff --git a/charts/kube-gcp/Chart.yaml b/charts/kube-gcp/Chart.yaml index d7ed5a20..9cfdea44 100644 --- a/charts/kube-gcp/Chart.yaml +++ b/charts/kube-gcp/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "2.14.0" +appVersion: "3.6.0" description: A Helm chart to install litmus gcp chaos experiments name: kube-gcp -version: 2.14.1 +version: 3.6.0 home: https://litmuschaos.io sources: - https://github.com/litmuschaos/litmus diff --git a/charts/kube-gcp/README.md b/charts/kube-gcp/README.md index 36905767..e96d1f32 100644 --- a/charts/kube-gcp/README.md +++ b/charts/kube-gcp/README.md @@ -1,6 +1,6 @@ # kube-gcp -![Version: 2.14.1](https://img.shields.io/badge/Version-2.14.1-informational?style=flat-square) ![AppVersion: 2.14.0](https://img.shields.io/badge/AppVersion-2.14.0-informational?style=flat-square) +![Version: 3.6.0](https://img.shields.io/badge/Version-3.6.0-informational?style=flat-square) ![AppVersion: 3.6.0](https://img.shields.io/badge/AppVersion-3.6.0-informational?style=flat-square) A Helm chart to install litmus gcp chaos experiments @@ -27,7 +27,7 @@ A Helm chart to install litmus gcp chaos experiments | fullnameOverride | string | `"kube-gcp"` | | | image.litmusGO.pullPolicy | string | `"Always"` | | | image.litmusGO.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/go-runner"` | | -| image.litmusGO.tag | string | `"2.14.0"` | | +| image.litmusGO.tag | string | `"3.6.0"` | | | nameOverride | string | `"kube-gcp"` | | ---------------------------------------------- diff --git a/charts/kube-gcp/values.yaml b/charts/kube-gcp/values.yaml index 71990d74..825188ec 100644 --- a/charts/kube-gcp/values.yaml +++ b/charts/kube-gcp/values.yaml @@ -11,7 +11,7 @@ customLabels: {} image: litmusGO: repository: litmuschaos.docker.scarf.sh/litmuschaos/go-runner - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always experiments: diff --git a/charts/kubernetes-chaos/Chart.yaml b/charts/kubernetes-chaos/Chart.yaml index ab8cd69b..c2624671 100644 --- a/charts/kubernetes-chaos/Chart.yaml +++ b/charts/kubernetes-chaos/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "2.14.0" +appVersion: "3.6.0" description: A Helm chart to install litmus chaos experiments for kubernetes category (chaos-chart) name: kubernetes-chaos -version: 2.28.1 +version: 3.6.0 home: https://litmuschaos.io sources: - https://github.com/litmuschaos/litmus diff --git a/charts/kubernetes-chaos/README.md b/charts/kubernetes-chaos/README.md index 61cf23b3..31b72a2b 100644 --- a/charts/kubernetes-chaos/README.md +++ b/charts/kubernetes-chaos/README.md @@ -1,6 +1,6 @@ # kubernetes-chaos -![Version: 2.28.1](https://img.shields.io/badge/Version-2.28.1-informational?style=flat-square) ![AppVersion: 2.14.0](https://img.shields.io/badge/AppVersion-2.14.0-informational?style=flat-square) +![Version: 3.6.0](https://img.shields.io/badge/Version-3.6.0-informational?style=flat-square) ![AppVersion: 3.6.0](https://img.shields.io/badge/AppVersion-3.6.0-informational?style=flat-square) A Helm chart to install litmus chaos experiments for kubernetes category (chaos-chart) @@ -23,24 +23,18 @@ A Helm chart to install litmus chaos experiments for kubernetes category (chaos- | Key | Type | Default | Description | |-----|------|---------|-------------| | customLabels | object | `{}` | Additional labels | -| environment.containerPath | string | `"/var/lib/docker/containers"` | | -| environment.runtime | string | `"docker"` | | -| environment.socketPath | string | `"/var/run/docker.sock"` | | +| environment.runtime | string | `"containerd"` | | +| environment.socketPath | string | `"/run/containerd/containerd.sock"` | | | experiments.disabled | list | `[]` | | | fullnameOverride | string | `"k8s"` | | | image.litmus.pullPolicy | string | `"Always"` | | | image.litmus.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/ansible-runner"` | | -| image.litmus.tag | string | `"2.14.0"` | | +| image.litmus.tag | string | `"3.6.0"` | | | image.litmusGO.pullPolicy | string | `"Always"` | | | image.litmusGO.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/go-runner"` | | -| image.litmusGO.tag | string | `"2.14.0"` | | +| image.litmusGO.tag | string | `"3.6.0"` | | | image.litmusLIBImage.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/go-runner"` | | -| image.litmusLIBImage.tag | string | `"2.14.0"` | | -| image.networkChaos.tcImage | string | `"gaiadocker/iproute2"` | | -| image.pumba.libName | string | `"pumba"` | | -| image.resourceChaos.respository | string | `"alexeiled/stress-ng"` | | -| image.resourceChaos.tag | string | `"latest-ubuntu"` | | -| image.stressChaos.stressImage | string | `"gaiaadm/pumba"` | | +| image.litmusLIBImage.tag | string | `"3.6.0"` | | | nameOverride | string | `"k8s"` | | ---------------------------------------------- diff --git a/charts/kubernetes-chaos/templates/container-kill.yaml b/charts/kubernetes-chaos/templates/container-kill.yaml index f5c227a9..573e96ab 100644 --- a/charts/kubernetes-chaos/templates/container-kill.yaml +++ b/charts/kubernetes-chaos/templates/container-kill.yaml @@ -70,23 +70,20 @@ spec: - name: TOTAL_CHAOS_DURATION value: '20' - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, and crio - # for pumba LIB, it supports docker only - - name: CONTAINER_RUNTIME - value: "{{ .Values.environment.runtime }}" - + # provide the socket file path - name: SOCKET_PATH value: "{{ .Values.environment.socketPath }}" - - name: LIB - value: 'litmus' + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" - name: TARGET_PODS - value: '' + value: '' - name: PODS_AFFECTED_PERC value: '' @@ -94,7 +91,7 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' labels: name: container-kill diff --git a/charts/kubernetes-chaos/templates/disk-fill.yaml b/charts/kubernetes-chaos/templates/disk-fill.yaml index 9267758d..d2f362f5 100644 --- a/charts/kubernetes-chaos/templates/disk-fill.yaml +++ b/charts/kubernetes-chaos/templates/disk-fill.yaml @@ -66,9 +66,6 @@ spec: - name: RAMP_TIME value: '' - - name: LIB - value: 'litmus' - - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" @@ -89,12 +86,16 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' + + # provide the socket file path + - name: SOCKET_PATH + value: "{{ .Values.environment.socketPath }}" - # Provide the container runtime path - # Default set to docker container path - - name: CONTAINER_PATH - value: "{{ .Values.environment.containerPath }}" + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" labels: name: disk-fill diff --git a/charts/kubernetes-chaos/templates/docker-service-kill.yaml b/charts/kubernetes-chaos/templates/docker-service-kill.yaml index 6ea23a17..427464a4 100644 --- a/charts/kubernetes-chaos/templates/docker-service-kill.yaml +++ b/charts/kubernetes-chaos/templates/docker-service-kill.yaml @@ -55,16 +55,13 @@ spec: - name: RAMP_TIME value: '' - - name: LIB - value: 'litmus' - - name: NODE_LABEL value: '' # provide lib image - name: LIB_IMAGE - value: 'ubuntu:16.04' - + value: 'ubuntu:16.04' + # provide the target node name - name: TARGET_NODE value: '' diff --git a/charts/kubernetes-chaos/templates/kubelet-service-kill.yaml b/charts/kubernetes-chaos/templates/kubelet-service-kill.yaml index cbab4afe..d195ec35 100644 --- a/charts/kubernetes-chaos/templates/kubelet-service-kill.yaml +++ b/charts/kubernetes-chaos/templates/kubelet-service-kill.yaml @@ -36,7 +36,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -57,9 +57,6 @@ spec: - name: RAMP_TIME value: '' - - name: LIB - value: 'litmus' - - name: NODE_LABEL value: '' diff --git a/charts/kubernetes-chaos/templates/node-cpu-hog.yaml b/charts/kubernetes-chaos/templates/node-cpu-hog.yaml index b01f5ecd..af1ae616 100644 --- a/charts/kubernetes-chaos/templates/node-cpu-hog.yaml +++ b/charts/kubernetes-chaos/templates/node-cpu-hog.yaml @@ -36,7 +36,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -57,7 +57,7 @@ spec: - name: RAMP_TIME value: '' - # Enter the number of CPU cores + # Enter the number of CPU cores - name: NODE_CPU_CORE value: '1' @@ -70,9 +70,6 @@ spec: - name: NODE_LABEL value: '' - - - name: LIB - value: 'litmus' ##TODO: Sync w/ linuxStressNG values - name: LIB_IMAGE diff --git a/charts/kubernetes-chaos/templates/node-drain.yaml b/charts/kubernetes-chaos/templates/node-drain.yaml index b75d1953..d6a861c6 100644 --- a/charts/kubernetes-chaos/templates/node-drain.yaml +++ b/charts/kubernetes-chaos/templates/node-drain.yaml @@ -39,7 +39,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -63,11 +63,6 @@ spec: - name: TOTAL_CHAOS_DURATION value: '60' - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' - # Period to wait before injection of chaos in sec - name: RAMP_TIME value: '' diff --git a/charts/kubernetes-chaos/templates/node-io-stress.yaml b/charts/kubernetes-chaos/templates/node-io-stress.yaml index 2c978f5f..bf252cc3 100644 --- a/charts/kubernetes-chaos/templates/node-io-stress.yaml +++ b/charts/kubernetes-chaos/templates/node-io-stress.yaml @@ -7,7 +7,7 @@ description: kind: ChaosExperiment metadata: name: node-io-stress - labels: + labels: {{- include "kubernetes-chaos.labels" . | indent 4 }} spec: definition: @@ -36,7 +36,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -65,11 +65,11 @@ spec: ## Number of core of CPU - name: CPU - value: '1' + value: '1' # Total number of workers default value is 4 - name: NUMBER_OF_WORKERS - value: '4' + value: '4' ## Total number of vm workers - name: VM_WORKERS @@ -77,23 +77,18 @@ spec: ## enter the comma separated target nodes name - name: TARGET_NODES - value: '' + value: '' - name: NODE_LABEL - value: '' + 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: "{{ .Values.image.litmusGO.repository }}:{{ .Values.image.litmusGO.tag }}" + value: "{{ .Values.image.litmusGO.repository }}:{{ .Values.image.litmusGO.tag }}" ## percentage of total nodes to target - name: NODES_AFFECTED_PERC @@ -103,7 +98,7 @@ spec: ## supported values: serial, parallel - name: SEQUENCE value: 'parallel' - + labels: name: node-io-stress app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/node-memory-hog.yaml b/charts/kubernetes-chaos/templates/node-memory-hog.yaml index 5e33d2a5..79547e86 100644 --- a/charts/kubernetes-chaos/templates/node-memory-hog.yaml +++ b/charts/kubernetes-chaos/templates/node-memory-hog.yaml @@ -36,7 +36,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -61,14 +61,14 @@ spec: ## 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: '0' + value: '0' - name: NUMBER_OF_WORKERS value: '1' ## enter the comma separated target nodes name - name: TARGET_NODES - value: '' + value: '' - name: NODE_LABEL value: '' @@ -77,11 +77,6 @@ spec: - name: RAMP_TIME value: '' - # Provide the LIB here - # Only litmus supported - - name: LIB - value: 'litmus' - # provide lib image - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" diff --git a/charts/kubernetes-chaos/templates/node-taint.yaml b/charts/kubernetes-chaos/templates/node-taint.yaml index 3d40ab37..eeac81fd 100644 --- a/charts/kubernetes-chaos/templates/node-taint.yaml +++ b/charts/kubernetes-chaos/templates/node-taint.yaml @@ -39,7 +39,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -64,11 +64,6 @@ spec: - 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: '' diff --git a/charts/kubernetes-chaos/templates/pod-autoscaler.yaml b/charts/kubernetes-chaos/templates/pod-autoscaler.yaml index 4ff079b2..3e399c94 100644 --- a/charts/kubernetes-chaos/templates/pod-autoscaler.yaml +++ b/charts/kubernetes-chaos/templates/pod-autoscaler.yaml @@ -39,7 +39,7 @@ spec: - "deletecollection" - apiGroups: - "" - resources: + resources: - "nodes" verbs: - "get" @@ -67,11 +67,6 @@ spec: - 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 diff --git a/charts/kubernetes-chaos/templates/pod-cpu-hog-exec.yaml b/charts/kubernetes-chaos/templates/pod-cpu-hog-exec.yaml index d6b32d5d..732f9b88 100644 --- a/charts/kubernetes-chaos/templates/pod-cpu-hog-exec.yaml +++ b/charts/kubernetes-chaos/templates/pod-cpu-hog-exec.yaml @@ -67,19 +67,14 @@ spec: - name: RAMP_TIME value: '' - # Env var that describes the library used to execute the chaos - # Default: litmus. Supported values: litmus - - name: LIB - value: 'litmus' - ## 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: '' - + labels: name: pod-cpu-hog-exec app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-cpu-hog.yaml b/charts/kubernetes-chaos/templates/pod-cpu-hog.yaml index 6987c9a4..9b20ceba 100644 --- a/charts/kubernetes-chaos/templates/pod-cpu-hog.yaml +++ b/charts/kubernetes-chaos/templates/pod-cpu-hog.yaml @@ -70,38 +70,26 @@ spec: - 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 defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' - # It is used in pumba lib only - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" - ## It is used in pumba lib only - - name: STRESS_IMAGE - value: "{{ .Values.image.resourceChaos.repository }}:{{ .Values.image.resourceChaos.tag }}" - - 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: "{{ .Values.environment.runtime }}" - - # provide the container runtime socket path - # default set to std docker sock file path + # provide the socket file path - name: SOCKET_PATH value: "{{ .Values.environment.socketPath }}" - + + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" + labels: name: pod-cpu-hog app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-delete.yaml b/charts/kubernetes-chaos/templates/pod-delete.yaml index 9bff59c3..5ea43de0 100644 --- a/charts/kubernetes-chaos/templates/pod-delete.yaml +++ b/charts/kubernetes-chaos/templates/pod-delete.yaml @@ -71,16 +71,13 @@ spec: - 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' + value: 'parallel' labels: name: pod-delete diff --git a/charts/kubernetes-chaos/templates/pod-http-latency.yaml b/charts/kubernetes-chaos/templates/pod-http-latency.yaml index 9fbdb85a..d2edb98a 100644 --- a/charts/kubernetes-chaos/templates/pod-http-latency.yaml +++ b/charts/kubernetes-chaos/templates/pod-http-latency.yaml @@ -24,10 +24,10 @@ spec: - apiGroups: [""] resources: ["configmaps"] verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log + # Track and get the runner, experiment, and helper pods log - apiGroups: [""] resources: ["pods/log"] - verbs: ["get","list","watch"] + verbs: ["get","list","watch"] # for creating and managing to execute comands inside target container - apiGroups: [""] resources: ["pods/exec"] @@ -36,7 +36,7 @@ spec: - apiGroups: ["apps"] resources: ["deployments","statefulsets","replicasets", "daemonsets"] verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) + # deriving the parent/owner details of the pod(if parent is deploymentConfig) - apiGroups: ["apps.openshift.io"] resources: ["deploymentconfigs"] verbs: ["list","get"] @@ -64,7 +64,7 @@ spec: command: - /bin/bash env: - + - name: TARGET_CONTAINER value: '' @@ -82,13 +82,13 @@ spec: # port on which the proxy will listen - name: PROXY_PORT value: "20000" - + # toxicity is the probability of the request to be affected # provide the percentage value in the range of 0-100 # 0 means no request will be affected and 100 means all - name: TOXICITY value: "100" - + # network interface on which the proxy will listen - name: NETWORK_INTERFACE value: "eth0" @@ -100,10 +100,6 @@ spec: - 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: '' @@ -111,15 +107,14 @@ spec: - 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 socket file path + # provide the socket file path - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" # To select pods on specific node(s) - name: NODE_LABEL diff --git a/charts/kubernetes-chaos/templates/pod-http-modify-body.yaml b/charts/kubernetes-chaos/templates/pod-http-modify-body.yaml index df947a31..cea0a6c1 100644 --- a/charts/kubernetes-chaos/templates/pod-http-modify-body.yaml +++ b/charts/kubernetes-chaos/templates/pod-http-modify-body.yaml @@ -24,10 +24,10 @@ spec: - apiGroups: [""] resources: ["configmaps"] verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log + # Track and get the runner, experiment, and helper pods log - apiGroups: [""] resources: ["pods/log"] - verbs: ["get","list","watch"] + verbs: ["get","list","watch"] # for creating and managing to execute comands inside target container - apiGroups: [""] resources: ["pods/exec"] @@ -36,7 +36,7 @@ spec: - apiGroups: ["apps"] resources: ["deployments","statefulsets","replicasets", "daemonsets"] verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) + # deriving the parent/owner details of the pod(if parent is deploymentConfig) - apiGroups: ["apps.openshift.io"] resources: ["deploymentconfigs"] verbs: ["list","get"] @@ -71,7 +71,7 @@ spec: # provide lib image - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" - + # provide the body string to overwrite the response body # if no value is provided, response will be an empty body. - name: RESPONSE_BODY @@ -100,7 +100,7 @@ spec: # provide the content type for the response body - name: CONTENT_TYPE value: 'text/plain' - + # network interface on which the proxy will listen - name: NETWORK_INTERFACE value: "eth0" @@ -112,10 +112,6 @@ spec: - 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: '' @@ -123,15 +119,14 @@ spec: - 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 socket file path + # provide the socket file path - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" # To select pods on specific node(s) - name: NODE_LABEL @@ -141,7 +136,7 @@ spec: ## supported values: serial, parallel - name: SEQUENCE value: 'parallel' - + labels: name: pod-http-modify-body app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-http-modify-header.yaml b/charts/kubernetes-chaos/templates/pod-http-modify-header.yaml index f5cd6121..0bcb8b26 100644 --- a/charts/kubernetes-chaos/templates/pod-http-modify-header.yaml +++ b/charts/kubernetes-chaos/templates/pod-http-modify-header.yaml @@ -24,10 +24,10 @@ spec: - apiGroups: [""] resources: ["configmaps"] verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log + # Track and get the runner, experiment, and helper pods log - apiGroups: [""] resources: ["pods/log"] - verbs: ["get","list","watch"] + verbs: ["get","list","watch"] # for creating and managing to execute comands inside target container - apiGroups: [""] resources: ["pods/exec"] @@ -36,7 +36,7 @@ spec: - apiGroups: ["apps"] resources: ["deployments","statefulsets","replicasets", "daemonsets"] verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) + # deriving the parent/owner details of the pod(if parent is deploymentConfig) - apiGroups: ["apps.openshift.io"] resources: ["deploymentconfigs"] verbs: ["list","get"] @@ -64,7 +64,7 @@ spec: command: - /bin/bash env: - + - name: TARGET_CONTAINER value: '' @@ -88,7 +88,7 @@ spec: # port on which the proxy will listen - name: PROXY_PORT value: "20000" - + # network interface on which the proxy will listen - name: NETWORK_INTERFACE value: "eth0" @@ -106,10 +106,6 @@ spec: - 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: '' @@ -117,15 +113,14 @@ spec: - 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 socket file path + # provide the socket file path - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" # To select pods on specific node(s) - name: NODE_LABEL diff --git a/charts/kubernetes-chaos/templates/pod-http-reset-peer.yaml b/charts/kubernetes-chaos/templates/pod-http-reset-peer.yaml index 50bfe188..1b409301 100644 --- a/charts/kubernetes-chaos/templates/pod-http-reset-peer.yaml +++ b/charts/kubernetes-chaos/templates/pod-http-reset-peer.yaml @@ -24,10 +24,10 @@ spec: - apiGroups: [""] resources: ["configmaps"] verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log + # Track and get the runner, experiment, and helper pods log - apiGroups: [""] resources: ["pods/log"] - verbs: ["get","list","watch"] + verbs: ["get","list","watch"] # for creating and managing to execute comands inside target container - apiGroups: [""] resources: ["pods/exec"] @@ -36,7 +36,7 @@ spec: - apiGroups: ["apps"] resources: ["deployments","statefulsets","replicasets", "daemonsets"] verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) + # deriving the parent/owner details of the pod(if parent is deploymentConfig) - apiGroups: ["apps.openshift.io"] resources: ["deploymentconfigs"] verbs: ["list","get"] @@ -71,7 +71,7 @@ spec: # provide lib image - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" - + # reset timeout specifies after how much duration to reset the connection - name: RESET_TIMEOUT value: '0' #in ms @@ -89,7 +89,7 @@ spec: # 0 means no request will be affected and 100 means all - name: TOXICITY value: "100" - + # network interface on which the proxy will listen - name: NETWORK_INTERFACE value: "eth0" @@ -101,10 +101,6 @@ spec: - 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: '' @@ -112,15 +108,14 @@ spec: - 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 socket file path + # provide the socket file path - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" # To select pods on specific node(s) - name: NODE_LABEL @@ -130,7 +125,7 @@ spec: ## supported values: serial, parallel - name: SEQUENCE value: 'parallel' - + labels: name: pod-http-reset-peer app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-http-status-code.yaml b/charts/kubernetes-chaos/templates/pod-http-status-code.yaml index 81615a62..637d7a4a 100644 --- a/charts/kubernetes-chaos/templates/pod-http-status-code.yaml +++ b/charts/kubernetes-chaos/templates/pod-http-status-code.yaml @@ -24,10 +24,10 @@ spec: - apiGroups: [""] resources: ["configmaps"] verbs: ["get","list",] - # Track and get the runner, experiment, and helper pods log + # Track and get the runner, experiment, and helper pods log - apiGroups: [""] resources: ["pods/log"] - verbs: ["get","list","watch"] + verbs: ["get","list","watch"] # for creating and managing to execute comands inside target container - apiGroups: [""] resources: ["pods/exec"] @@ -36,7 +36,7 @@ spec: - apiGroups: ["apps"] resources: ["deployments","statefulsets","replicasets", "daemonsets"] verbs: ["list","get"] - # deriving the parent/owner details of the pod(if parent is deploymentConfig) + # deriving the parent/owner details of the pod(if parent is deploymentConfig) - apiGroups: ["apps.openshift.io"] resources: ["deploymentconfigs"] verbs: ["list","get"] @@ -96,7 +96,7 @@ spec: # 0 means no request will be affected and 100 means all - name: TOXICITY value: "100" - + # network interface on which the proxy will listen - name: NETWORK_INTERFACE value: "eth0" @@ -122,10 +122,6 @@ spec: - 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: '' @@ -133,15 +129,14 @@ spec: - 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 socket file path + # provide the socket file path - name: SOCKET_PATH - value: '/var/run/docker.sock' + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" # To select pods on specific node(s) - name: NODE_LABEL @@ -151,7 +146,7 @@ spec: ## supported values: serial, parallel - name: SEQUENCE value: 'parallel' - + labels: name: pod-http-status-code app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-io-stress.yaml b/charts/kubernetes-chaos/templates/pod-io-stress.yaml index 9d11cf04..8de32f14 100644 --- a/charts/kubernetes-chaos/templates/pod-io-stress.yaml +++ b/charts/kubernetes-chaos/templates/pod-io-stress.yaml @@ -67,33 +67,28 @@ spec: # 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: '' - # Provide the LIB here - # Only pumba supported - - name: LIB - value: 'pumba' - ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' # provide lib image - name: LIB_IMAGE diff --git a/charts/kubernetes-chaos/templates/pod-memory-hog-exec.yaml b/charts/kubernetes-chaos/templates/pod-memory-hog-exec.yaml index fc6f0352..2cd11d02 100644 --- a/charts/kubernetes-chaos/templates/pod-memory-hog-exec.yaml +++ b/charts/kubernetes-chaos/templates/pod-memory-hog-exec.yaml @@ -69,11 +69,6 @@ spec: - name: RAMP_TIME value: '' - # Env var that describes the library used to execute the chaos - # Default: litmus. Supported values: litmus - - name: LIB - value: 'litmus' - - name: CHAOS_KILL_COMMAND value: "kill $(find /proc -name exe -lname '*/dd' 2>&1 | grep -v 'Permission denied' | awk -F/ '{print $(NF-1)}' | head -n 1)" diff --git a/charts/kubernetes-chaos/templates/pod-memory-hog.yaml b/charts/kubernetes-chaos/templates/pod-memory-hog.yaml index 00980f29..cd888b5c 100644 --- a/charts/kubernetes-chaos/templates/pod-memory-hog.yaml +++ b/charts/kubernetes-chaos/templates/pod-memory-hog.yaml @@ -69,38 +69,26 @@ spec: - 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: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" - ## It is used in pumba lib only - - name: STRESS_IMAGE - value: "{{ .Values.image.resourceChaos.repository }}:{{ .Values.image.resourceChaos.tag }}" - - name: TARGET_PODS value: '' ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' - # 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: "{{ .Values.environment.runtime }}" - - # provide the container runtime socket path - # default set to std docker sock file path + # provide the socket file path - name: SOCKET_PATH value: "{{ .Values.environment.socketPath }}" + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" + labels: name: pod-memory-hog app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-network-corruption.yaml b/charts/kubernetes-chaos/templates/pod-network-corruption.yaml index f77b63e6..f8a019d5 100644 --- a/charts/kubernetes-chaos/templates/pod-network-corruption.yaml +++ b/charts/kubernetes-chaos/templates/pod-network-corruption.yaml @@ -63,9 +63,6 @@ spec: - name: NETWORK_INTERFACE value: 'eth0' - - name: TC_IMAGE - value: "{{ .Values.image.networkChaos.tcImage }}" - - name: NETWORK_PACKET_CORRUPTION_PERCENTAGE value: '100' #in PERCENTAGE @@ -76,9 +73,6 @@ spec: - name: RAMP_TIME value: '' - - name: LIB - value: 'litmus' - # percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' @@ -89,7 +83,7 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' # provide the destination ips # chaos injection will be triggered for these destination ips @@ -101,17 +95,15 @@ spec: - name: DESTINATION_HOSTS value: '' - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only + # provide the socket file path + - name: SOCKET_PATH + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio - name: CONTAINER_RUNTIME value: "{{ .Values.environment.runtime }}" - # provide the container runtime socket path - # default set to std docker sock file path - - name: SOCKET_PATH - value: "{{ .Values.environment.socketPath }}" - labels: name: pod-network-corruption app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-network-duplication.yaml b/charts/kubernetes-chaos/templates/pod-network-duplication.yaml index 518a3eb8..d71f2feb 100644 --- a/charts/kubernetes-chaos/templates/pod-network-duplication.yaml +++ b/charts/kubernetes-chaos/templates/pod-network-duplication.yaml @@ -64,15 +64,9 @@ spec: - name: NETWORK_INTERFACE value: 'eth0' - - name: TC_IMAGE - value: "{{ .Values.image.networkChaos.tcImage }}" - - name: NETWORK_PACKET_DUPLICATION_PERCENTAGE value: '100' # in percentage - - name: LIB - value: 'litmus' - - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" @@ -86,7 +80,7 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' # provide the destination ips # chaos injection will be triggered for these destination ips @@ -96,19 +90,17 @@ spec: # provide the destination hosts # chaos injection will be triggered for these destination hosts - name: DESTINATION_HOSTS - value: '' + value: '' - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only + # provide the socket file path + - name: SOCKET_PATH + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio - name: CONTAINER_RUNTIME value: "{{ .Values.environment.runtime }}" - # provide the container runtime socket path - # default set to std docker sock file path - - name: SOCKET_PATH - value: "{{ .Values.environment.socketPath }}" - labels: name: pod-network-duplication app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-network-latency.yaml b/charts/kubernetes-chaos/templates/pod-network-latency.yaml index ea6a5b3f..de509218 100644 --- a/charts/kubernetes-chaos/templates/pod-network-latency.yaml +++ b/charts/kubernetes-chaos/templates/pod-network-latency.yaml @@ -59,9 +59,6 @@ spec: - name: NETWORK_INTERFACE value: 'eth0' - - name: TC_IMAGE - value: "{{ .Values.image.networkChaos.tcImage }}" - # provide lib image - name: LIB_IMAGE value: "{{ .Values.image.litmusLIBImage.repository }}:{{ .Values.image.litmusLIBImage.tag }}" @@ -75,13 +72,10 @@ spec: # Time period to wait before injection of chaos in sec - name: RAMP_TIME value: '' - + - name: JITTER value: '0' - - name: LIB - value: 'litmus' - # percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' @@ -92,7 +86,7 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' # provide the destination ips # chaos injection will be triggered for these destination ips @@ -104,17 +98,15 @@ spec: - name: DESTINATION_HOSTS 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: "{{ .Values.environment.runtime }}" - - # provide the container runtime socket path - # default set to std docker sock file path + # provide the socket file path - name: SOCKET_PATH value: "{{ .Values.environment.socketPath }}" + # provide the name of container runtime + # it supports docker, containerd, crio + - name: CONTAINER_RUNTIME + value: "{{ .Values.environment.runtime }}" + labels: name: pod-network-latency app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-network-loss.yaml b/charts/kubernetes-chaos/templates/pod-network-loss.yaml index 3108dfa6..e9e852ea 100644 --- a/charts/kubernetes-chaos/templates/pod-network-loss.yaml +++ b/charts/kubernetes-chaos/templates/pod-network-loss.yaml @@ -63,9 +63,6 @@ spec: - name: NETWORK_INTERFACE value: 'eth0' - - name: TC_IMAGE - value: "{{ .Values.image.networkChaos.tcImage }}" - - name: NETWORK_PACKET_LOSS_PERCENTAGE value: '100' #in PERCENTAGE @@ -76,9 +73,6 @@ spec: - name: RAMP_TIME value: '' - - name: LIB - value: 'litmus' - # percentage of total pods to target - name: PODS_AFFECTED_PERC value: '' @@ -89,7 +83,7 @@ spec: ## it defines the sequence of chaos execution for multiple target pods ## supported values: serial, parallel - name: SEQUENCE - value: 'parallel' + value: 'parallel' # provide the destination ips # chaos injection will be triggered for these destination ips @@ -99,19 +93,17 @@ spec: # provide the destination hosts # chaos injection will be triggered for these destination hosts - name: DESTINATION_HOSTS - value: '' + value: '' - # provide the name of container runtime - # for litmus LIB, it supports docker, containerd, crio - # for pumba LIB, it supports docker only + # provide the socket file path + - name: SOCKET_PATH + value: "{{ .Values.environment.socketPath }}" + + # provide the name of container runtime + # it supports docker, containerd, crio - name: CONTAINER_RUNTIME value: "{{ .Values.environment.runtime }}" - # provide the container runtime socket path - # default set to std docker sock file path - - name: SOCKET_PATH - value: "{{ .Values.environment.socketPath }}" - labels: name: pod-network-loss app.kubernetes.io/part-of: litmus diff --git a/charts/kubernetes-chaos/templates/pod-network-partition.yaml b/charts/kubernetes-chaos/templates/pod-network-partition.yaml index af17b03b..ba986b80 100644 --- a/charts/kubernetes-chaos/templates/pod-network-partition.yaml +++ b/charts/kubernetes-chaos/templates/pod-network-partition.yaml @@ -44,7 +44,7 @@ spec: command: - /bin/bash env: - + - name: TOTAL_CHAOS_DURATION value: '60' # in seconds @@ -52,10 +52,6 @@ spec: - name: RAMP_TIME value: '' - # it should be litmus - - name: LIB - value: 'litmus' - # provide the destination ips # chaos injection will be triggered for these destination ips - name: DESTINATION_IPS diff --git a/charts/kubernetes-chaos/values.yaml b/charts/kubernetes-chaos/values.yaml index a78736da..e3434d40 100644 --- a/charts/kubernetes-chaos/values.yaml +++ b/charts/kubernetes-chaos/values.yaml @@ -11,41 +11,24 @@ customLabels: {} image: litmus: repository: litmuschaos.docker.scarf.sh/litmuschaos/ansible-runner - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always litmusGO: repository: litmuschaos.docker.scarf.sh/litmuschaos/go-runner - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always - pumba: - libName: pumba - litmusLIBImage: repository: litmuschaos.docker.scarf.sh/litmuschaos/go-runner - tag: 2.14.0 - - networkChaos: - tcImage: gaiadocker/iproute2 - - stressChaos: - stressImage: gaiaadm/pumba - - resourceChaos: - respository: alexeiled/stress-ng - tag: latest-ubuntu + tag: 3.6.0 environment: # supported: 'docker', 'containerd', 'crio' - runtime: 'docker' + runtime: 'containerd' # ex: '/var/run/docker.sock', '/run/containerd/containerd.sock', '/run/crio/crio.sock' - socketPath: '/var/run/docker.sock' - - # ex: '/var/lib/docker/containers', '/var/lib/containerd/io.containerd.runtime.v1.linux/k8s.io', '/var/lib/containers/storage/overlay/' - containerPath: '/var/lib/docker/containers' - + socketPath: '/run/containerd/containerd.sock' experiments: disabled: [] diff --git a/charts/litmus-core/Chart.yaml b/charts/litmus-core/Chart.yaml index d88c1ab5..cfe26aa5 100644 --- a/charts/litmus-core/Chart.yaml +++ b/charts/litmus-core/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 -appVersion: "2.14.0" +appVersion: "3.6.0" description: A Helm chart to install litmus infra components on Kubernetes name: litmus-core -version: 2.14.1 +version: 3.6.0 home: https://litmuschaos.io sources: - https://github.com/litmuschaos/litmus diff --git a/charts/litmus-core/README.md b/charts/litmus-core/README.md index 1c717da8..f7ae9618 100644 --- a/charts/litmus-core/README.md +++ b/charts/litmus-core/README.md @@ -1,6 +1,6 @@ # litmus-core -![Version: 2.14.1](https://img.shields.io/badge/Version-2.14.1-informational?style=flat-square) ![AppVersion: 2.14.0](https://img.shields.io/badge/AppVersion-2.14.0-informational?style=flat-square) +![Version: 3.6.0](https://img.shields.io/badge/Version-3.6.0-informational?style=flat-square) ![AppVersion: 3.6.0](https://img.shields.io/badge/AppVersion-3.6.0-informational?style=flat-square) A Helm chart to install litmus infra components on Kubernetes @@ -28,7 +28,7 @@ A Helm chart to install litmus infra components on Kubernetes | exporter.enabled | bool | `false` | | | exporter.image.pullPolicy | string | `"Always"` | | | exporter.image.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/chaos-exporter"` | | -| exporter.image.tag | string | `"2.14.0"` | | +| exporter.image.tag | string | `"3.6.0"` | | | exporter.nodeSelector | object | `{}` | | | exporter.priorityClassName | string | `nil` | | | exporter.resources | object | `{}` | | @@ -48,7 +48,7 @@ A Helm chart to install litmus infra components on Kubernetes | nodeSelector | object | `{}` | | | operator.image.pullPolicy | string | `"Always"` | | | operator.image.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/chaos-operator"` | | -| operator.image.tag | string | `"2.14.0"` | | +| operator.image.tag | string | `"3.6.0"` | | | operatorMode | string | `"standard"` | | | operatorName | string | `"chaos-operator"` | | | policies.monitoring.disabled | bool | `false` | | @@ -58,7 +58,7 @@ A Helm chart to install litmus infra components on Kubernetes | resources.requests.cpu | string | `"100m"` | | | resources.requests.memory | string | `"128Mi"` | | | runner.image.repository | string | `"litmuschaos.docker.scarf.sh/litmuschaos/chaos-runner"` | | -| runner.image.tag | string | `"2.14.0"` | | +| runner.image.tag | string | `"3.6.0"` | | | service.port | int | `80` | | | service.type | string | `"ClusterIP"` | | | tolerations | list | `[]` | | diff --git a/charts/litmus-core/crds/chaosengine_crd.yaml b/charts/litmus-core/crds/chaosengine_crd.yaml index a82658b8..23cee35b 100644 --- a/charts/litmus-core/crds/chaosengine_crd.yaml +++ b/charts/litmus-core/crds/chaosengine_crd.yaml @@ -11,198 +11,424 @@ spec: singular: chaosengine scope: Namespaced versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - type: object - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation + - name: v1alpha1 + schema: + openAPIV3Schema: + type: object + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - x-kubernetes-preserve-unknown-fields: true - type: object - properties: - jobCleanUpPolicy: - type: string - pattern: ^(delete|retain)$ - # alternate ways to do this in case of complex pattern matches - #oneOf: - # - pattern: '^delete$' - # - pattern: '^retain$' - annotationCheck: - type: string - pattern: ^(true|false)$ - defaultHealthCheck: - type: string - pattern: ^(true|false)$ - appinfo: - type: object - properties: - appkind: - type: string - pattern: ^(^$|deployment|statefulset|daemonset|deploymentconfig|rollout)$ - applabel: - type: string - appns: - type: string - auxiliaryAppInfo: - type: string - engineState: - type: string - pattern: ^(active|stop)$ - chaosServiceAccount: - type: string - terminationGracePeriodSeconds: - type: integer - components: - type: object - properties: - runner: - x-kubernetes-preserve-unknown-fields: true - type: object - properties: - image: - type: string - type: - type: string - pattern: ^(go)$ - runnerAnnotations: + type: string + metadata: + type: object + spec: + x-kubernetes-preserve-unknown-fields: true + type: object + properties: + jobCleanUpPolicy: + type: string + pattern: ^(delete|retain)$ + # alternate ways to do this in case of complex pattern matches + #oneOf: + # - pattern: '^delete$' + # - pattern: '^retain$' + defaultHealthCheck: + type: boolean + appinfo: + type: object + properties: + appkind: + type: string + pattern: ^(^$|deployment|statefulset|daemonset|deploymentconfig|rollout)$ + applabel: + type: string + appns: + type: string + selectors: + type: object + properties: + pods: + items: + properties: + names: + type: string + namespace: + type: string + required: + - names + - namespace type: object - runnerLabels: + type: array + workloads: + items: + properties: + kind: + type: string + pattern: ^(^$|deployment|statefulset|daemonset|deploymentconfig|rollout)$ + labels: + type: string + names: + type: string + namespace: + type: string + oneOf: + - required: [ names ] + - required: [ labels ] + required: + - kind + - namespace type: object - additionalProperties: - type: string - properties: - key: - type: string - minLength: 1 - value: - type: string - minLength: 1 - tolerations: - description: Pod's tolerations. - items: - description: The pod with this Toleration tolerates any taint matches the using the matching operator . - properties: - effect: - description: Effect to match. Empty means all effects. - type: string - key: - description: Taint key the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists. - type: string - operator: - description: Operators are Exists or Equal. Defaults to Equal. - type: string - tolerationSeconds: - description: Period of time the toleration tolerates the taint. - format: int64 - type: integer - value: - description: If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string - type: object - type: array - experiments: - type: array - items: + type: array + oneOf: + - required: [ pods ] + - required: [ workloads ] + auxiliaryAppInfo: + type: string + engineState: + type: string + pattern: ^(active|stop)$ + chaosServiceAccount: + type: string + terminationGracePeriodSeconds: + type: integer + components: type: object properties: - name: - type: string - spec: + sidecar: + type: array + items: + type: object + properties: + env: + description: ENV contains ENV passed to the sidecar container + items: + description: EnvVar represents an environment variable + present in a Container. + properties: + name: + description: Name of the environment variable. Must + be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are + expanded using the previous defined environment + variables in the container and any service environment + variables. If a variable cannot be resolved, the + reference in the input string will be unchanged. + The $(VAR_NAME) syntax can be escaped with a double + $$, ie: $$(VAR_NAME). Escaped references will never + be expanded, regardless of whether the variable + exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's + value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap + or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports + metadata.name, metadata.namespace, `metadata.labels['''']`, + `metadata.annotations['''']`, spec.nodeName, + spec.serviceAccountName, status.hostIP, status.podIP, + status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath + is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in + the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: + only resources limits and requests (limits.cpu, + limits.memory, limits.ephemeral-storage, requests.cpu, + requests.memory and requests.ephemeral-storage) + are currently supported.' + properties: + containerName: + description: 'Container name: required for + volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of + the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in the + pod's namespace + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or + its key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + envFrom: + description: EnvFrom for the sidecar container + items: + description: EnvFromSource represents the source of a + set of ConfigMaps + properties: + configMapRef: + description: The ConfigMap to select from + properties: + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the ConfigMap must + be defined + type: boolean + type: object + prefix: + description: An optional identifier to prepend to + each key in the ConfigMap. Must be a C_IDENTIFIER. + type: string + secretRef: + description: The Secret to select from + properties: + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret must be + defined + type: boolean + type: object + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + secrets: + items: + properties: + mountPath: + type: string + name: + type: string + required: + - mountPath + - name + type: object + type: array + runner: + x-kubernetes-preserve-unknown-fields: true type: object properties: - probe: - type: array - items: - type: object - required: - - runProperties + image: + type: string + type: + type: string + pattern: ^(go)$ + runnerAnnotations: + type: object + runnerLabels: + type: object + additionalProperties: + type: string properties: - name: + key: type: string - type: + minLength: 1 + value: type: string minLength: 1 - pattern: ^(k8sProbe|httpProbe|cmdProbe|promProbe)$ - k8sProbe/inputs: - type: object - properties: - group: - type: string - version: - type: string - resource: - type: string - namespace: - type: string - fieldSelector: - type: string - labelSelector: - type: string - operation: - type: string - pattern: ^(present|absent|create|delete)$ - minLength: 1 - cmdProbe/inputs: - type: object - properties: - command: - type: string - minLength: 1 - comparator: - type: object - properties: - type: - type: string - minLength: 1 - pattern: ^(int|float|string)$ - criteria: - type: string - value: - type: string - source: - description: The external pod where we have to run the - probe commands. It will run the commands inside the experiment pod itself(inline mode) if source contains a nil value - properties: - annotations: - additionalProperties: + tolerations: + description: Pod's tolerations. + items: + description: The pod with this Toleration tolerates any taint matches the using the matching operator . + properties: + effect: + description: Effect to match. Empty means all effects. + type: string + key: + description: Taint key the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists. + type: string + operator: + description: Operators are Exists or Equal. Defaults to Equal. + type: string + tolerationSeconds: + description: Period of time the toleration tolerates the taint. + format: int64 + type: integer + value: + description: If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string + type: object + type: array + experiments: + type: array + items: + type: object + properties: + name: + type: string + spec: + type: object + properties: + probe: + type: array + items: + type: object + required: + - name + - type + - mode + - runProperties + properties: + name: + type: string + type: + type: string + minLength: 1 + pattern: ^(k8sProbe|httpProbe|cmdProbe|promProbe|sloProbe)$ + k8sProbe/inputs: + type: object + required: + - version + - resource + - operation + properties: + group: + type: string + version: + type: string + resource: + type: string + namespace: + type: string + resourceNames: + type: string + fieldSelector: + type: string + labelSelector: + type: string + operation: + type: string + pattern: ^(present|absent|create|delete)$ + minLength: 1 + cmdProbe/inputs: + type: object + required: + - command + - comparator + properties: + command: + type: string + minLength: 1 + comparator: + type: object + required: + - type + - criteria + - value + properties: + type: type: string - description: Annotations for the source pod - type: object - args: - description: Args for the source pod - items: + minLength: 1 + pattern: ^(int|float|string)$ + criteria: type: string - type: array - command: - description: Command for the source pod - items: + value: type: string - type: array - env: - description: ENVList contains ENV passed to - the source pod - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) + source: + description: The external pod where we have to run the + probe commands. It will run the commands inside the experiment pod itself(inline mode) if source contains a nil value + required: + - image + properties: + annotations: + additionalProperties: + type: string + description: Annotations for the source pod + type: object + args: + description: Args for the source pod + items: + type: string + type: array + command: + description: Command for the source pod + items: + type: string + type: array + env: + description: ENVList contains ENV passed to + the source pod + items: + description: EnvVar represents an environment + variable present in a Container. + properties: + name: + description: Name of the environment variable. + Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. @@ -213,209 +439,232 @@ spec: Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. + type: string + valueFrom: + description: Source for the environment + variable's value. Cannot be used if + value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the - ConfigMap or its key must be - defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the + type: string + optional: + description: Specify whether the + ConfigMap or its key must be + defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.' - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in - terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field - to select in the specified API - version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of + properties: + apiVersion: + description: Version of the schema + the FieldPath is written in + terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field + to select in the specified API + version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - description: Specifies the output - format of the exposed resources, - defaults to "1" - type: string - resource: - description: 'Required: resource + type: string + divisor: + description: Specifies the output + format of the exposed resources, + defaults to "1" + type: string + resource: + description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: 'Name of the referent. + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret + in the pod's namespace + properties: + key: + description: The key of the secret + to select from. Must be a valid + secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the - Secret or its key must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - hostNetwork: - description: HostNetwork define the hostNetwork - of the external pod it supports boolean values - and default value is false - type: boolean - inheritInputs: - description: InheritInputs define to inherit experiment - details in probe pod it supports boolean values - and default value is false. - type: boolean - image: - description: Image for the source pod - type: string - imagePullPolicy: - description: ImagePullPolicy for the source pod - type: string - imagePullSecrets: - description: ImagePullSecrets for source pod - items: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same - namespace. - properties: - name: - description: 'Name of the referent' - type: string - type: object - type: array - labels: - additionalProperties: + type: string + optional: + description: Specify whether the + Secret or its key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + type: array + hostNetwork: + description: HostNetwork define the hostNetwork + of the external pod it supports boolean values + and default value is false + type: boolean + inheritInputs: + description: InheritInputs define to inherit experiment + details in probe pod it supports boolean values + and default value is false. + type: boolean + image: + description: Image for the source pod type: string - description: Labels for the source pod - type: object - nodeSelector: - additionalProperties: + imagePullPolicy: + description: ImagePullPolicy for the source pod type: string - description: NodeSelector for the source pod - type: object - privileged: - description: Privileged for the source pod - type: boolean - volumeMount: - description: VolumesMount for the source pod - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: mountPropagation determines - how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is - used. This field is beta in 1.10. - type: string - name: - description: This must match the Name - of a Volume. - type: string - readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: Path within the volume from - which the container's volume should - be mounted. Defaults to "" (volume's - root). - type: string - subPathExpr: - description: Expanded path within the - volume from which the container's volume - should be mounted. Behaves similarly - to SubPath but environment variable - references $(VAR_NAME) are expanded - using the container's environment. Defaults - to "" (volume's root). SubPathExpr and - SubPath are mutually exclusive. This - field is beta in 1.15. - type: string - required: - - mountPath - - name + imagePullSecrets: + description: ImagePullSecrets for source pod + items: + description: LocalObjectReference contains enough information + to let you locate the referenced object inside the same + namespace. + properties: + name: + description: 'Name of the referent' + type: string + type: object + type: array + labels: + additionalProperties: + type: string + description: Labels for the source pod type: object - type: array - volumes: - description: Volumes for the source pod - items: - description: Volume represents a named volume - in a pod that may be accessed by any container - in the pod. - properties: - awsElasticBlockStore: - description: 'AWSElasticBlockStore represents + nodeSelector: + additionalProperties: + type: string + description: NodeSelector for the source pod + type: object + tolerations: + description: Tolerations for the source pod + items: + description: The pod with this Toleration tolerates any taint matches the using the matching operator . + properties: + effect: + description: Effect to match. Empty means all effects. + type: string + key: + description: Taint key the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists. + type: string + operator: + description: Operators are Exists or Equal. Defaults to Equal. + type: string + tolerationSeconds: + description: Period of time the toleration tolerates the taint. + format: int64 + type: integer + value: + description: If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string + type: object + type: array + privileged: + description: Privileged for the source pod + type: boolean + volumeMount: + description: VolumesMount for the source pod + items: + description: VolumeMount describes a mounting + of a Volume within a container. + properties: + mountPath: + description: Path within the container + at which the volume should be mounted. Must + not contain ':'. + type: string + mountPropagation: + description: mountPropagation determines + how mounts are propagated from the host + to container and the other way around. + When not set, MountPropagationNone is + used. This field is beta in 1.10. + type: string + name: + description: This must match the Name + of a Volume. + type: string + readOnly: + description: Mounted read-only if true, + read-write otherwise (false or unspecified). + Defaults to false. + type: boolean + subPath: + description: Path within the volume from + which the container's volume should + be mounted. Defaults to "" (volume's + root). + type: string + subPathExpr: + description: Expanded path within the + volume from which the container's volume + should be mounted. Behaves similarly + to SubPath but environment variable + references $(VAR_NAME) are expanded + using the container's environment. Defaults + to "" (volume's root). SubPathExpr and + SubPath are mutually exclusive. This + field is beta in 1.15. + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + description: Volumes for the source pod + items: + description: Volume represents a named volume + in a pod that may be accessed by any container + in the pod. + properties: + awsElasticBlockStore: + description: 'AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' - properties: - fsType: - description: 'Filesystem type of the + properties: + fsType: + description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating @@ -426,9 +675,9 @@ spec: TODO: how do we prevent errors in the filesystem from compromising the machine' - type: string - partition: - description: 'The partition in the + type: string + partition: + description: 'The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume @@ -436,182 +685,182 @@ spec: as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).' - format: int32 - type: integer - readOnly: - description: 'Specify "true" to force + format: int32 + type: integer + readOnly: + description: 'Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' - type: boolean - volumeID: - description: 'Unique ID of the persistent + type: boolean + volumeID: + description: 'Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' - type: string - required: - - volumeID - type: object - azureDisk: - description: AzureDisk represents an Azure - Data Disk mount on the host and bind - mount to the pod. - properties: - cachingMode: - description: 'Host Caching mode: None, + type: string + required: + - volumeID + type: object + azureDisk: + description: AzureDisk represents an Azure + Data Disk mount on the host and bind + mount to the pod. + properties: + cachingMode: + description: 'Host Caching mode: None, Read Only, Read Write.' - type: string - diskName: - description: The Name of the data - disk in the blob storage - type: string - diskURI: - description: The URI the data disk - in the blob storage - type: string - fsType: - description: Filesystem type to mount. - Must be a filesystem type supported - by the host operating system. Ex. - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - type: string - kind: - description: 'Expected values Shared: + type: string + diskName: + description: The Name of the data + disk in the blob storage + type: string + diskURI: + description: The URI the data disk + in the blob storage + type: string + fsType: + description: Filesystem type to mount. + Must be a filesystem type supported + by the host operating system. Ex. + "ext4", "xfs", "ntfs". Implicitly + inferred to be "ext4" if unspecified. + type: string + kind: + description: 'Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' - type: string - readOnly: - description: Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - description: AzureFile represents an Azure - File Service mount on the host and bind - mount to the pod. - properties: - readOnly: - description: Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. - type: boolean - secretName: - description: the name of secret that - contains Azure Storage Account Name - and Key - type: string - shareName: - description: Share Name - type: string - required: - - secretName - - shareName - type: object - cephfs: - description: CephFS represents a Ceph - FS mount on the host that shares a pod's - lifetime - properties: - monitors: - description: 'Required: Monitors is + type: string + readOnly: + description: Defaults to false (read/write). + ReadOnly here will force the ReadOnly + setting in VolumeMounts. + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + description: AzureFile represents an Azure + File Service mount on the host and bind + mount to the pod. + properties: + readOnly: + description: Defaults to false (read/write). + ReadOnly here will force the ReadOnly + setting in VolumeMounts. + type: boolean + secretName: + description: the name of secret that + contains Azure Storage Account Name + and Key + type: string + shareName: + description: Share Name + type: string + required: + - secretName + - shareName + type: object + cephfs: + description: CephFS represents a Ceph + FS mount on the host that shares a pod's + lifetime + properties: + monitors: + description: 'Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' - items: - type: string - type: array - path: - description: 'Optional: Used as the + items: + type: string + type: array + path: + description: 'Optional: Used as the mounted root, rather than the full Ceph tree, default is /' - type: string - readOnly: - description: 'Optional: Defaults to + type: string + readOnly: + description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' - type: boolean - secretFile: - description: 'Optional: SecretFile + type: boolean + secretFile: + description: 'Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' - type: string - secretRef: - description: 'Optional: SecretRef + type: string + secretRef: + description: 'Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' - properties: - name: - description: 'Name of the referent. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - user: - description: 'Optional: User is the + type: string + type: object + user: + description: 'Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' - type: string - required: - - monitors - type: object - cinder: - description: 'Cinder represents a cinder + type: string + required: + - monitors + type: object + cinder: + description: 'Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' - properties: - fsType: - description: 'Filesystem type to mount. + properties: + fsType: + description: 'Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' - type: string - readOnly: - description: 'Optional: Defaults to + type: string + readOnly: + description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' - type: boolean - secretRef: - description: 'Optional: points to + type: boolean + secretRef: + description: 'Optional: points to a secret object containing parameters used to connect to OpenStack.' - properties: - name: - description: 'Name of the referent. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - volumeID: - description: 'volume id used to identify + type: string + type: object + volumeID: + description: 'volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' - type: string - required: - - volumeID - type: object - configMap: - description: ConfigMap represents a configMap - that should populate this volume - properties: - defaultMode: - description: 'Optional: mode bits + type: string + required: + - volumeID + type: object + configMap: + description: ConfigMap represents a configMap + that should populate this volume + properties: + defaultMode: + description: 'Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within @@ -620,33 +869,33 @@ spec: with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' - format: int32 - type: integer - items: - description: If unspecified, each - key-value pair in the Data field - of the referenced ConfigMap will - be projected into the volume as - a file whose name is the key and - content is the value. If specified, - the listed keys will be projected - into the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the ConfigMap, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. + format: int32 + type: integer items: - description: Maps a string key to - a path within a volume. - properties: - key: - description: The key to project. - type: string - mode: - description: 'Optional: mode + description: If unspecified, each + key-value pair in the Data field + of the referenced ConfigMap will + be projected into the volume as + a file whose name is the key and + content is the value. If specified, + the listed keys will be projected + into the specified paths, and unlisted + keys will not be present. If a key + is specified which is not present + in the ConfigMap, the volume setup + will error unless it is marked optional. + Paths must be relative and may not + contain the '..' path or start with + '..'. + items: + description: Maps a string key to + a path within a volume. + properties: + key: + description: The key to project. + type: string + mode: + description: 'Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, @@ -656,95 +905,95 @@ spec: that affect the file mode, like fsGroup, and the result can be other mode bits set.' - format: int32 - type: integer - path: - description: The relative path - of the file to map the key - to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: 'Name of the referent. + format: int32 + type: integer + path: + description: The relative path + of the file to map the key + to. May not be an absolute + path. May not contain the + path element '..'. May not + start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap - or its keys must be defined - type: boolean - type: object - csi: - description: CSI (Container Storage Interface) - represents storage that is handled by - an external CSI driver (Alpha feature). - properties: - driver: - description: Driver is the name of - the CSI driver that handles this - volume. Consult with your admin - for the correct name as registered - in the cluster. - type: string - fsType: - description: Filesystem type to mount. - Ex. "ext4", "xfs", "ntfs". If not - provided, the empty value is passed - to the associated CSI driver which - will determine the default filesystem - to apply. - type: string - nodePublishSecretRef: - description: NodePublishSecretRef - is a reference to the secret object - containing sensitive information - to pass to the CSI driver to complete - the CSI NodePublishVolume and NodeUnpublishVolume - calls. This field is optional, and may - be empty if no secret is required. - If the secret object contains more - than one secret, all secret references - are passed. - properties: - name: - description: 'Name of the referent. + type: string + optional: + description: Specify whether the ConfigMap + or its keys must be defined + type: boolean + type: object + csi: + description: CSI (Container Storage Interface) + represents storage that is handled by + an external CSI driver (Alpha feature). + properties: + driver: + description: Driver is the name of + the CSI driver that handles this + volume. Consult with your admin + for the correct name as registered + in the cluster. + type: string + fsType: + description: Filesystem type to mount. + Ex. "ext4", "xfs", "ntfs". If not + provided, the empty value is passed + to the associated CSI driver which + will determine the default filesystem + to apply. + type: string + nodePublishSecretRef: + description: NodePublishSecretRef + is a reference to the secret object + containing sensitive information + to pass to the CSI driver to complete + the CSI NodePublishVolume and NodeUnpublishVolume + calls. This field is optional, and may + be empty if no secret is required. + If the secret object contains more + than one secret, all secret references + are passed. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + readOnly: + description: Specifies a read-only + configuration for the volume. Defaults + to false (read/write). + type: boolean + volumeAttributes: + additionalProperties: type: string - type: object - readOnly: - description: Specifies a read-only - configuration for the volume. Defaults - to false (read/write). - type: boolean - volumeAttributes: - additionalProperties: - type: string - description: VolumeAttributes stores - driver-specific properties that - are passed to the CSI driver. Consult - your driver's documentation for - supported values. - type: object - required: - - driver - type: object - downwardAPI: - description: DownwardAPI represents downward - API about the pod that should populate - this volume - properties: - defaultMode: - description: 'Optional: mode bits + description: VolumeAttributes stores + driver-specific properties that + are passed to the CSI driver. Consult + your driver's documentation for + supported values. + type: object + required: + - driver + type: object + downwardAPI: + description: DownwardAPI represents downward + API about the pod that should populate + this volume + properties: + defaultMode: + description: 'Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within @@ -753,38 +1002,38 @@ spec: with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' - format: int32 - type: integer - items: - description: Items is a list of downward - API volume file + format: int32 + type: integer items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field - properties: - fieldRef: - description: 'Required: Selects + description: Items is a list of downward + API volume file + items: + description: DownwardAPIVolumeFile + represents information to create + the file containing the pod field + properties: + fieldRef: + description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.' - properties: - apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". - type: string - fieldPath: - description: Path of the - field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - mode: - description: 'Optional: mode + properties: + apiVersion: + description: Version of + the schema the FieldPath + is written in terms of, + defaults to "v1". + type: string + fieldPath: + description: Path of the + field to select in the + specified API version. + type: string + required: + - fieldPath + type: object + mode: + description: 'Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, @@ -794,10 +1043,10 @@ spec: that affect the file mode, like fsGroup, and the result can be other mode bits set.' - format: int32 - type: integer - path: - description: 'Required: Path + format: int32 + type: integer + path: + description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain @@ -805,53 +1054,53 @@ spec: encoded. The first item of the relative path must not start with ''..''' - type: string - resourceFieldRef: - description: 'Selects a resource + type: string + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.' - properties: - containerName: - description: 'Container + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - description: Specifies the - output format of the exposed - resources, defaults to - "1" - type: string - resource: - description: 'Required: + type: string + divisor: + description: Specifies the + output format of the exposed + resources, defaults to + "1" + type: string + resource: + description: 'Required: resource to select' - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - emptyDir: - description: 'EmptyDir represents a temporary + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + emptyDir: + description: 'EmptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' - properties: - medium: - description: 'What type of storage + properties: + medium: + description: 'What type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' - type: string - sizeLimit: - description: 'Total amount of local + type: string + sizeLimit: + description: 'Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage @@ -862,16 +1111,16 @@ spec: in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir' - type: string - type: object - fc: - description: FC represents a Fibre Channel - resource that is attached to a kubelet's - host machine and then exposed to the - pod. - properties: - fsType: - description: 'Filesystem type to mount. + type: string + type: object + fc: + description: FC represents a Fibre Channel + resource that is attached to a kubelet's + host machine and then exposed to the + pod. + properties: + fsType: + description: 'Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly @@ -879,65 +1128,65 @@ spec: TODO: how do we prevent errors in the filesystem from compromising the machine' - type: string - lun: - description: 'Optional: FC target + type: string + lun: + description: 'Optional: FC target lun number' - format: int32 - type: integer - readOnly: - description: 'Optional: Defaults to + format: int32 + type: integer + readOnly: + description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' - type: boolean - targetWWNs: - description: 'Optional: FC target + type: boolean + targetWWNs: + description: 'Optional: FC target worldwide names (WWNs)' - items: - type: string - type: array - wwids: - description: 'Optional: FC volume + items: + type: string + type: array + wwids: + description: 'Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.' - items: + items: + type: string + type: array + type: object + flexVolume: + description: FlexVolume represents a generic + volume resource that is provisioned/attached + using an exec based plugin. + properties: + driver: + description: Driver is the name of + the driver to use for this volume. type: string - type: array - type: object - flexVolume: - description: FlexVolume represents a generic - volume resource that is provisioned/attached - using an exec based plugin. - properties: - driver: - description: Driver is the name of - the driver to use for this volume. - type: string - fsType: - description: Filesystem type to mount. - Must be a filesystem type supported - by the host operating system. Ex. - "ext4", "xfs", "ntfs". The default - filesystem depends on FlexVolume - script. - type: string - options: - additionalProperties: - type: string - description: 'Optional: Extra command + fsType: + description: Filesystem type to mount. + Must be a filesystem type supported + by the host operating system. Ex. + "ext4", "xfs", "ntfs". The default + filesystem depends on FlexVolume + script. + type: string + options: + additionalProperties: + type: string + description: 'Optional: Extra command options if any.' - type: object - readOnly: - description: 'Optional: Defaults to + type: object + readOnly: + description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' - type: boolean - secretRef: - description: 'Optional: SecretRef + type: boolean + secretRef: + description: 'Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This @@ -946,43 +1195,43 @@ spec: contains more than one secret, all secrets are passed to the plugin scripts.' - properties: - name: - description: 'Name of the referent. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - required: - - driver - type: object - flocker: - description: Flocker represents a Flocker - volume attached to a kubelet's host - machine. This depends on the Flocker - control service being running - properties: - datasetName: - description: Name of the dataset stored - as metadata -> name on the dataset - for Flocker should be considered - as deprecated - type: string - datasetUUID: - description: UUID of the dataset. - This is unique identifier of a Flocker - dataset - type: string - type: object - gcePersistentDisk: - description: 'GCEPersistentDisk represents + type: string + type: object + required: + - driver + type: object + flocker: + description: Flocker represents a Flocker + volume attached to a kubelet's host + machine. This depends on the Flocker + control service being running + properties: + datasetName: + description: Name of the dataset stored + as metadata -> name on the dataset + for Flocker should be considered + as deprecated + type: string + datasetUUID: + description: UUID of the dataset. + This is unique identifier of a Flocker + dataset + type: string + type: object + gcePersistentDisk: + description: 'GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' - properties: - fsType: - description: 'Filesystem type of the + properties: + fsType: + description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating @@ -993,9 +1242,9 @@ spec: TODO: how do we prevent errors in the filesystem from compromising the machine' - type: string - partition: - description: 'The partition in the + type: string + partition: + description: 'The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume @@ -1004,75 +1253,75 @@ spec: for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' - format: int32 - type: integer - pdName: - description: 'Unique name of the PD + format: int32 + type: integer + pdName: + description: 'Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' - type: string - readOnly: - description: 'ReadOnly here will force + type: string + readOnly: + description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' - type: boolean - required: - - pdName - type: object - gitRepo: - description: 'GitRepo represents a git + type: boolean + required: + - pdName + type: object + gitRepo: + description: 'GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.' - properties: - directory: - description: Target directory name. - Must not contain or start with '..'. If - '.' is supplied, the volume directory - will be the git repository. Otherwise, - if specified, the volume will contain - the git repository in the subdirectory - with the given name. - type: string - repository: - description: Repository URL - type: string - revision: - description: Commit hash for the specified - revision. - type: string - required: - - repository - type: object - glusterfs: - description: 'Glusterfs represents a Glusterfs + properties: + directory: + description: Target directory name. + Must not contain or start with '..'. If + '.' is supplied, the volume directory + will be the git repository. Otherwise, + if specified, the volume will contain + the git repository in the subdirectory + with the given name. + type: string + repository: + description: Repository URL + type: string + revision: + description: Commit hash for the specified + revision. + type: string + required: + - repository + type: object + glusterfs: + description: 'Glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' - properties: - endpoints: - description: 'EndpointsName is the + properties: + endpoints: + description: 'EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' - type: string - path: - description: 'Path is the Glusterfs + type: string + path: + description: 'Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' - type: string - readOnly: - description: 'ReadOnly here will force + type: string + readOnly: + description: 'ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' - type: boolean - required: - - endpoints - - path - type: object - hostPath: - description: 'HostPath represents a pre-existing + type: boolean + required: + - endpoints + - path + type: object + hostPath: + description: 'HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents @@ -1084,36 +1333,36 @@ spec: who can use host directory mounts and who can/can not mount host directories as read/write.' - properties: - path: - description: 'Path of the directory + properties: + path: + description: 'Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' - type: string - type: - description: 'Type for HostPath Volume + type: string + type: + description: 'Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' - type: string - required: - - path - type: object - iscsi: - description: 'ISCSI represents an ISCSI + type: string + required: + - path + type: object + iscsi: + description: 'ISCSI represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' - properties: - chapAuthDiscovery: - description: whether support iSCSI - Discovery CHAP authentication - type: boolean - chapAuthSession: - description: whether support iSCSI - Session CHAP authentication - type: boolean - fsType: - description: 'Filesystem type of the + properties: + chapAuthDiscovery: + description: whether support iSCSI + Discovery CHAP authentication + type: boolean + chapAuthSession: + description: whether support iSCSI + Session CHAP authentication + type: boolean + fsType: + description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating @@ -1124,214 +1373,214 @@ spec: TODO: how do we prevent errors in the filesystem from compromising the machine' - type: string - initiatorName: - description: Custom iSCSI Initiator - Name. If initiatorName is specified - with iscsiInterface simultaneously, - new iSCSI interface : will be created for the connection. - type: string - iqn: - description: Target iSCSI Qualified - Name. - type: string - iscsiInterface: - description: iSCSI Interface Name - that uses an iSCSI transport. Defaults - to 'default' (tcp). - type: string - lun: - description: iSCSI Target Lun number. - format: int32 - type: integer - portals: - description: iSCSI Target Portal List. - The portal is either an IP or ip_addr:port - if the port is other than default - (typically TCP ports 860 and 3260). - items: type: string - type: array - readOnly: - description: ReadOnly here will force - the ReadOnly setting in VolumeMounts. - Defaults to false. - type: boolean - secretRef: - description: CHAP Secret for iSCSI - target and initiator authentication - properties: - name: - description: 'Name of the referent. + initiatorName: + description: Custom iSCSI Initiator + Name. If initiatorName is specified + with iscsiInterface simultaneously, + new iSCSI interface : will be created for the connection. + type: string + iqn: + description: Target iSCSI Qualified + Name. + type: string + iscsiInterface: + description: iSCSI Interface Name + that uses an iSCSI transport. Defaults + to 'default' (tcp). + type: string + lun: + description: iSCSI Target Lun number. + format: int32 + type: integer + portals: + description: iSCSI Target Portal List. + The portal is either an IP or ip_addr:port + if the port is other than default + (typically TCP ports 860 and 3260). + items: + type: string + type: array + readOnly: + description: ReadOnly here will force + the ReadOnly setting in VolumeMounts. + Defaults to false. + type: boolean + secretRef: + description: CHAP Secret for iSCSI + target and initiator authentication + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - targetPortal: - description: iSCSI Target Portal. - The Portal is either an IP or ip_addr:port - if the port is other than default - (typically TCP ports 860 and 3260). - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - description: 'Volume''s name. Must be + type: string + type: object + targetPortal: + description: iSCSI Target Portal. + The Portal is either an IP or ip_addr:port + if the port is other than default + (typically TCP ports 860 and 3260). + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + description: 'Volume''s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - nfs: - description: 'NFS represents an NFS mount + type: string + nfs: + description: 'NFS represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' - properties: - path: - description: 'Path that is exported + properties: + path: + description: 'Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' - type: string - readOnly: - description: 'ReadOnly here will force + type: string + readOnly: + description: 'ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' - type: boolean - server: - description: 'Server is the hostname + type: boolean + server: + description: 'Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - description: 'PersistentVolumeClaimVolumeSource + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + description: 'PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' - properties: - claimName: - description: 'ClaimName is the name + properties: + claimName: + description: 'ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' - type: string - readOnly: - description: Will force the ReadOnly - setting in VolumeMounts. Default - false. - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - description: PhotonPersistentDisk represents - a PhotonController persistent disk attached - and mounted on kubelets host machine - properties: - fsType: - description: Filesystem type to mount. - Must be a filesystem type supported - by the host operating system. Ex. - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - type: string - pdID: - description: ID that identifies Photon - Controller persistent disk - type: string - required: - - pdID - type: object - portworxVolume: - description: PortworxVolume represents - a portworx volume attached and mounted - on kubelets host machine - properties: - fsType: - description: FSType represents the - filesystem type to mount Must be - a filesystem type supported by the - host operating system. Ex. "ext4", - "xfs". Implicitly inferred to be - "ext4" if unspecified. - type: string - readOnly: - description: Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. - type: boolean - volumeID: - description: VolumeID uniquely identifies - a Portworx volume - type: string - required: - - volumeID - type: object - projected: - description: Items for all in one resources - secrets, configmaps, and downward API - properties: - defaultMode: - description: Mode bits to use on created - files by default. Must be a value - between 0 and 0777. Directories - within the path are not affected - by this setting. This might be in - conflict with other options that - affect the file mode, like fsGroup, - and the result can be other mode - bits set. - format: int32 - type: integer - sources: - description: list of volume projections - items: - description: Projection that may - be projected along with other - supported volume types - properties: - configMap: - description: information about - the configMap data to project - properties: - items: - description: If unspecified, - each key-value pair in - the Data field of the - referenced ConfigMap will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - ConfigMap, the volume - setup will error unless - it is marked optional. - Paths must be relative - and may not contain the - '..' path or start with - '..'. + type: string + readOnly: + description: Will force the ReadOnly + setting in VolumeMounts. Default + false. + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + description: PhotonPersistentDisk represents + a PhotonController persistent disk attached + and mounted on kubelets host machine + properties: + fsType: + description: Filesystem type to mount. + Must be a filesystem type supported + by the host operating system. Ex. + "ext4", "xfs", "ntfs". Implicitly + inferred to be "ext4" if unspecified. + type: string + pdID: + description: ID that identifies Photon + Controller persistent disk + type: string + required: + - pdID + type: object + portworxVolume: + description: PortworxVolume represents + a portworx volume attached and mounted + on kubelets host machine + properties: + fsType: + description: FSType represents the + filesystem type to mount Must be + a filesystem type supported by the + host operating system. Ex. "ext4", + "xfs". Implicitly inferred to be + "ext4" if unspecified. + type: string + readOnly: + description: Defaults to false (read/write). + ReadOnly here will force the ReadOnly + setting in VolumeMounts. + type: boolean + volumeID: + description: VolumeID uniquely identifies + a Portworx volume + type: string + required: + - volumeID + type: object + projected: + description: Items for all in one resources + secrets, configmaps, and downward API + properties: + defaultMode: + description: Mode bits to use on created + files by default. Must be a value + between 0 and 0777. Directories + within the path are not affected + by this setting. This might be in + conflict with other options that + affect the file mode, like fsGroup, + and the result can be other mode + bits set. + format: int32 + type: integer + sources: + description: list of volume projections + items: + description: Projection that may + be projected along with other + supported volume types + properties: + configMap: + description: information about + the configMap data to project + properties: items: - description: Maps a string - key to a path within - a volume. - properties: - key: - description: The key - to project. - type: string - mode: - description: 'Optional: + description: If unspecified, + each key-value pair in + the Data field of the + referenced ConfigMap will + be projected into the + volume as a file whose + name is the key and content + is the value. If specified, + the listed keys will be + projected into the specified + paths, and unlisted keys + will not be present. If + a key is specified which + is not present in the + ConfigMap, the volume + setup will error unless + it is marked optional. + Paths must be relative + and may not contain the + '..' path or start with + '..'. + items: + description: Maps a string + key to a path within + a volume. + properties: + key: + description: The key + to project. + type: string + mode: + description: 'Optional: mode bits to use on this file, must be a value between @@ -1346,79 +1595,79 @@ spec: and the result can be other mode bits set.' - format: int32 - type: integer - path: - description: The relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: 'Name of the + format: int32 + type: integer + path: + description: The relative + path of the file + to map the key to. + May not be an absolute + path. May not contain + the path element + '..'. May not start + with the string + '..'. + type: string + required: + - key + - path + type: object + type: array + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether - the ConfigMap or its keys - must be defined - type: boolean - type: object - downwardAPI: - description: information about - the downwardAPI data to project - properties: - items: - description: Items is a - list of DownwardAPIVolume - file + type: string + optional: + description: Specify whether + the ConfigMap or its keys + must be defined + type: boolean + type: object + downwardAPI: + description: information about + the downwardAPI data to project + properties: items: - description: DownwardAPIVolumeFile - represents information - to create the file containing - the pod field - properties: - fieldRef: - description: 'Required: + description: Items is a + list of DownwardAPIVolume + file + items: + description: DownwardAPIVolumeFile + represents information + to create the file containing + the pod field + properties: + fieldRef: + description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.' - properties: - apiVersion: - description: Version - of the schema - the FieldPath - is written in - terms of, defaults - to "v1". - type: string - fieldPath: - description: Path - of the field - to select in - the specified - API version. - type: string - required: - - fieldPath - type: object - mode: - description: 'Optional: + properties: + apiVersion: + description: Version + of the schema + the FieldPath + is written in + terms of, defaults + to "v1". + type: string + fieldPath: + description: Path + of the field + to select in + the specified + API version. + type: string + required: + - fieldPath + type: object + mode: + description: 'Optional: mode bits to use on this file, must be a value between @@ -1433,10 +1682,10 @@ spec: and the result can be other mode bits set.' - format: int32 - type: integer - path: - description: 'Required: + format: int32 + type: integer + path: + description: 'Required: Path is the relative path name of the file to be created. @@ -1447,9 +1696,9 @@ spec: item of the relative path must not start with ''..''' - type: string - resourceFieldRef: - description: 'Selects + type: string + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits @@ -1457,70 +1706,70 @@ spec: limits.memory, requests.cpu and requests.memory) are currently supported.' - properties: - containerName: - description: 'Container + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - description: Specifies - the output format - of the exposed - resources, defaults - to "1" - type: string - resource: - description: 'Required: + type: string + divisor: + description: Specifies + the output format + of the exposed + resources, defaults + to "1" + type: string + resource: + description: 'Required: resource to select' - type: string - required: - - resource - type: object - required: - - path - type: object - type: array - type: object - secret: - description: information about - the secret data to project - properties: - items: - description: If unspecified, - each key-value pair in - the Data field of the - referenced Secret will - be projected into the - volume as a file whose - name is the key and content - is the value. If specified, - the listed keys will be - projected into the specified - paths, and unlisted keys - will not be present. If - a key is specified which - is not present in the - Secret, the volume setup - will error unless it is - marked optional. Paths - must be relative and may - not contain the '..' path - or start with '..'. + type: string + required: + - resource + type: object + required: + - path + type: object + type: array + type: object + secret: + description: information about + the secret data to project + properties: items: - description: Maps a string - key to a path within - a volume. - properties: - key: - description: The key - to project. - type: string - mode: - description: 'Optional: + description: If unspecified, + each key-value pair in + the Data field of the + referenced Secret will + be projected into the + volume as a file whose + name is the key and content + is the value. If specified, + the listed keys will be + projected into the specified + paths, and unlisted keys + will not be present. If + a key is specified which + is not present in the + Secret, the volume setup + will error unless it is + marked optional. Paths + must be relative and may + not contain the '..' path + or start with '..'. + items: + description: Maps a string + key to a path within + a volume. + properties: + key: + description: The key + to project. + type: string + mode: + description: 'Optional: mode bits to use on this file, must be a value between @@ -1535,139 +1784,139 @@ spec: and the result can be other mode bits set.' - format: int32 - type: integer - path: - description: The relative - path of the file - to map the key to. - May not be an absolute - path. May not contain - the path element - '..'. May not start - with the string - '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: 'Name of the + format: int32 + type: integer + path: + description: The relative + path of the file + to map the key to. + May not be an absolute + path. May not contain + the path element + '..'. May not start + with the string + '..'. + type: string + required: + - key + - path + type: object + type: array + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether - the Secret or its key - must be defined - type: boolean - type: object - serviceAccountToken: - description: information about - the serviceAccountToken data - to project - properties: - audience: - description: Audience is - the intended audience - of the token. A recipient - of a token must identify - itself with an identifier - specified in the audience - of the token, and otherwise - should reject the token. - The audience defaults - to the identifier of the - apiserver. - type: string - expirationSeconds: - description: ExpirationSeconds - is the requested duration - of validity of the service - account token. As the - token approaches expiration, - the kubelet volume plugin - will proactively rotate - the service account token. - The kubelet will start - trying to rotate the token - if the token is older - than 80 percent of its - time to live or if the - token is older than 24 - hours.Defaults to 1 hour - and must be at least 10 - minutes. - format: int64 - type: integer - path: - description: Path is the - path relative to the mount - point of the file to project - the token into. - type: string - required: - - path - type: object - type: object - type: array - required: - - sources - type: object - quobyte: - description: Quobyte represents a Quobyte - mount on the host that shares a pod's - lifetime - properties: - group: - description: Group to map volume access - to Default is no group - type: string - readOnly: - description: ReadOnly here will force - the Quobyte volume to be mounted - with read-only permissions. Defaults - to false. - type: boolean - registry: - description: Registry represents a - single or multiple Quobyte Registry - services specified as a string as - host:port pair (multiple entries - are separated with commas) which - acts as the central registry for - volumes - type: string - tenant: - description: Tenant owning the given - Quobyte volume in the Backend Used - with dynamically provisioned Quobyte - volumes, value is set by the plugin - type: string - user: - description: User to map volume access - to Defaults to serivceaccount user - type: string - volume: - description: Volume is a string that - references an already created Quobyte - volume by name. - type: string - required: - - registry - - volume - type: object - rbd: - description: 'RBD represents a Rados Block + type: string + optional: + description: Specify whether + the Secret or its key + must be defined + type: boolean + type: object + serviceAccountToken: + description: information about + the serviceAccountToken data + to project + properties: + audience: + description: Audience is + the intended audience + of the token. A recipient + of a token must identify + itself with an identifier + specified in the audience + of the token, and otherwise + should reject the token. + The audience defaults + to the identifier of the + apiserver. + type: string + expirationSeconds: + description: ExpirationSeconds + is the requested duration + of validity of the service + account token. As the + token approaches expiration, + the kubelet volume plugin + will proactively rotate + the service account token. + The kubelet will start + trying to rotate the token + if the token is older + than 80 percent of its + time to live or if the + token is older than 24 + hours.Defaults to 1 hour + and must be at least 10 + minutes. + format: int64 + type: integer + path: + description: Path is the + path relative to the mount + point of the file to project + the token into. + type: string + required: + - path + type: object + type: object + type: array + required: + - sources + type: object + quobyte: + description: Quobyte represents a Quobyte + mount on the host that shares a pod's + lifetime + properties: + group: + description: Group to map volume access + to Default is no group + type: string + readOnly: + description: ReadOnly here will force + the Quobyte volume to be mounted + with read-only permissions. Defaults + to false. + type: boolean + registry: + description: Registry represents a + single or multiple Quobyte Registry + services specified as a string as + host:port pair (multiple entries + are separated with commas) which + acts as the central registry for + volumes + type: string + tenant: + description: Tenant owning the given + Quobyte volume in the Backend Used + with dynamically provisioned Quobyte + volumes, value is set by the plugin + type: string + user: + description: User to map volume access + to Defaults to serivceaccount user + type: string + volume: + description: Volume is a string that + references an already created Quobyte + volume by name. + type: string + required: + - registry + - volume + type: object + rbd: + description: 'RBD represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' - properties: - fsType: - description: 'Filesystem type of the + properties: + fsType: + description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating @@ -1678,129 +1927,129 @@ spec: TODO: how do we prevent errors in the filesystem from compromising the machine' - type: string - image: - description: 'The rados image name. + type: string + image: + description: 'The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - type: string - keyring: - description: 'Keyring is the path + type: string + keyring: + description: 'Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - type: string - monitors: - description: 'A collection of Ceph - monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - items: type: string - type: array - pool: - description: 'The rados pool name. + monitors: + description: 'A collection of Ceph + monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' + items: + type: string + type: array + pool: + description: 'The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - type: string - readOnly: - description: 'ReadOnly here will force + type: string + readOnly: + description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - type: boolean - secretRef: - description: 'SecretRef is name of + type: boolean + secretRef: + description: 'SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - properties: - name: - description: 'Name of the referent. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - user: - description: 'The rados user name. + type: string + type: object + user: + description: 'The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' - type: string - required: - - image - - monitors - type: object - scaleIO: - description: ScaleIO represents a ScaleIO - persistent volume attached and mounted - on Kubernetes nodes. - properties: - fsType: - description: Filesystem type to mount. - Must be a filesystem type supported - by the host operating system. Ex. - "ext4", "xfs", "ntfs". Default is - "xfs". - type: string - gateway: - description: The host address of the - ScaleIO API Gateway. - type: string - protectionDomain: - description: The name of the ScaleIO - Protection Domain for the configured - storage. - type: string - readOnly: - description: Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. - type: boolean - secretRef: - description: SecretRef references - to the secret for ScaleIO user and - other sensitive information. If - this is not provided, Login operation - will fail. - properties: - name: - description: 'Name of the referent. + type: string + required: + - image + - monitors + type: object + scaleIO: + description: ScaleIO represents a ScaleIO + persistent volume attached and mounted + on Kubernetes nodes. + properties: + fsType: + description: Filesystem type to mount. + Must be a filesystem type supported + by the host operating system. Ex. + "ext4", "xfs", "ntfs". Default is + "xfs". + type: string + gateway: + description: The host address of the + ScaleIO API Gateway. + type: string + protectionDomain: + description: The name of the ScaleIO + Protection Domain for the configured + storage. + type: string + readOnly: + description: Defaults to false (read/write). + ReadOnly here will force the ReadOnly + setting in VolumeMounts. + type: boolean + secretRef: + description: SecretRef references + to the secret for ScaleIO user and + other sensitive information. If + this is not provided, Login operation + will fail. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - sslEnabled: - description: Flag to enable/disable - SSL communication with Gateway, - default false - type: boolean - storageMode: - description: Indicates whether the - storage for a volume should be ThickProvisioned - or ThinProvisioned. Default is ThinProvisioned. - type: string - storagePool: - description: The ScaleIO Storage Pool - associated with the protection domain. - type: string - system: - description: The name of the storage - system as configured in ScaleIO. - type: string - volumeName: - description: The name of a volume - already created in the ScaleIO system - that is associated with this volume - source. - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - description: 'Secret represents a secret + type: string + type: object + sslEnabled: + description: Flag to enable/disable + SSL communication with Gateway, + default false + type: boolean + storageMode: + description: Indicates whether the + storage for a volume should be ThickProvisioned + or ThinProvisioned. Default is ThinProvisioned. + type: string + storagePool: + description: The ScaleIO Storage Pool + associated with the protection domain. + type: string + system: + description: The name of the storage + system as configured in ScaleIO. + type: string + volumeName: + description: The name of a volume + already created in the ScaleIO system + that is associated with this volume + source. + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + description: 'Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' - properties: - defaultMode: - description: 'Optional: mode bits + properties: + defaultMode: + description: 'Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within @@ -1809,33 +2058,33 @@ spec: with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' - format: int32 - type: integer - items: - description: If unspecified, each - key-value pair in the Data field - of the referenced Secret will be - projected into the volume as a file - whose name is the key and content - is the value. If specified, the - listed keys will be projected into - the specified paths, and unlisted - keys will not be present. If a key - is specified which is not present - in the Secret, the volume setup - will error unless it is marked optional. - Paths must be relative and may not - contain the '..' path or start with - '..'. + format: int32 + type: integer items: - description: Maps a string key to - a path within a volume. - properties: - key: - description: The key to project. - type: string - mode: - description: 'Optional: mode + description: If unspecified, each + key-value pair in the Data field + of the referenced Secret will be + projected into the volume as a file + whose name is the key and content + is the value. If specified, the + listed keys will be projected into + the specified paths, and unlisted + keys will not be present. If a key + is specified which is not present + in the Secret, the volume setup + will error unless it is marked optional. + Paths must be relative and may not + contain the '..' path or start with + '..'. + items: + description: Maps a string key to + a path within a volume. + properties: + key: + description: The key to project. + type: string + mode: + description: 'Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, @@ -1845,232 +2094,341 @@ spec: that affect the file mode, like fsGroup, and the result can be other mode bits set.' - format: int32 - type: integer - path: - description: The relative path - of the file to map the key - to. May not be an absolute - path. May not contain the - path element '..'. May not - start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - optional: - description: Specify whether the Secret - or its keys must be defined - type: boolean - secretName: - description: 'Name of the secret in + format: int32 + type: integer + path: + description: The relative path + of the file to map the key + to. May not be an absolute + path. May not contain the + path element '..'. May not + start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + optional: + description: Specify whether the Secret + or its keys must be defined + type: boolean + secretName: + description: 'Name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' - type: string - type: object - storageos: - description: StorageOS represents a StorageOS - volume attached and mounted on Kubernetes - nodes. - properties: - fsType: - description: Filesystem type to mount. - Must be a filesystem type supported - by the host operating system. Ex. - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - type: string - readOnly: - description: Defaults to false (read/write). - ReadOnly here will force the ReadOnly - setting in VolumeMounts. - type: boolean - secretRef: - description: SecretRef specifies the - secret to use for obtaining the - StorageOS API credentials. If not - specified, default values will be - attempted. - properties: - name: - description: 'Name of the referent. + type: string + type: object + storageos: + description: StorageOS represents a StorageOS + volume attached and mounted on Kubernetes + nodes. + properties: + fsType: + description: Filesystem type to mount. + Must be a filesystem type supported + by the host operating system. Ex. + "ext4", "xfs", "ntfs". Implicitly + inferred to be "ext4" if unspecified. + type: string + readOnly: + description: Defaults to false (read/write). + ReadOnly here will force the ReadOnly + setting in VolumeMounts. + type: boolean + secretRef: + description: SecretRef specifies the + secret to use for obtaining the + StorageOS API credentials. If not + specified, default values will be + attempted. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - volumeName: - description: VolumeName is the human-readable - name of the StorageOS volume. Volume - names are only unique within a namespace. - type: string - volumeNamespace: - description: VolumeNamespace specifies - the scope of the volume within StorageOS. If - no namespace is specified then the - Pod's namespace will be used. This - allows the Kubernetes name scoping - to be mirrored within StorageOS - for tighter integration. Set VolumeName - to any name to override the default - behaviour. Set to "default" if you - are not using namespaces within - StorageOS. Namespaces that do not - pre-exist within StorageOS will - be created. - type: string - type: object - vsphereVolume: - description: VsphereVolume represents - a vSphere volume attached and mounted - on kubelets host machine - properties: - fsType: - description: Filesystem type to mount. - Must be a filesystem type supported - by the host operating system. Ex. - "ext4", "xfs", "ntfs". Implicitly - inferred to be "ext4" if unspecified. - type: string - storagePolicyID: - description: Storage Policy Based - Management (SPBM) profile ID associated - with the StoragePolicyName. - type: string - storagePolicyName: - description: Storage Policy Based - Management (SPBM) profile name. - type: string - volumePath: - description: Path that identifies - vSphere volume vmdk - type: string - required: - - volumePath - type: object + type: string + type: object + volumeName: + description: VolumeName is the human-readable + name of the StorageOS volume. Volume + names are only unique within a namespace. + type: string + volumeNamespace: + description: VolumeNamespace specifies + the scope of the volume within StorageOS. If + no namespace is specified then the + Pod's namespace will be used. This + allows the Kubernetes name scoping + to be mirrored within StorageOS + for tighter integration. Set VolumeName + to any name to override the default + behaviour. Set to "default" if you + are not using namespaces within + StorageOS. Namespaces that do not + pre-exist within StorageOS will + be created. + type: string + type: object + vsphereVolume: + description: VsphereVolume represents + a vSphere volume attached and mounted + on kubelets host machine + properties: + fsType: + description: Filesystem type to mount. + Must be a filesystem type supported + by the host operating system. Ex. + "ext4", "xfs", "ntfs". Implicitly + inferred to be "ext4" if unspecified. + type: string + storagePolicyID: + description: Storage Policy Based + Management (SPBM) profile ID associated + with the StoragePolicyName. + type: string + storagePolicyName: + description: Storage Policy Based + Management (SPBM) profile name. + type: string + volumePath: + description: Path that identifies + vSphere volume vmdk + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + type: object + httpProbe/inputs: + type: object + required: + - url + - method + properties: + url: + type: string + minLength: 1 + insecureSkipVerify: + type: boolean + method: + type: object + minProperties: 1 + properties: + get: + type: object required: - - name + - criteria + - responseCode + properties: + criteria: + type: string + minLength: 1 + responseCode: + type: string + minLength: 1 + post: type: object - type: array - type: object - httpProbe/inputs: - type: object - properties: - url: - type: string - minLength: 1 - insecureSkipVerify: - type: boolean - method: - type: object - minProperties: 1 - properties: - get: - type: object - properties: - criteria: - type: string - minLength: 1 - responseCode: - type: string - minLength: 1 - post: - type: object - properties: - contentType: - type: string - minLength: 1 - body: - type: string - bodyPath: - type: string - criteria: - type: string - minLength: 1 - responseCode: - type: string - minLength: 1 - promProbe/inputs: - type: object - properties: - endpoint: - type: string - query: - type: string - queryPath: - type: string - comparator: - type: object - properties: - criteria: - type: string - value: - type: string - runProperties: + required: + - criteria + - responseCode + properties: + contentType: + type: string + minLength: 1 + body: + type: string + bodyPath: + type: string + criteria: + type: string + minLength: 1 + responseCode: + type: string + minLength: 1 + promProbe/inputs: + type: object + required: + - endpoint + - comparator + properties: + endpoint: + type: string + query: + type: string + queryPath: + type: string + comparator: + type: object + required: + - criteria + - value + properties: + criteria: + type: string + value: + type: string + runProperties: + type: object + minProperties: 2 + required: + - probeTimeout + - interval + properties: + evaluationTimeout: + type: string + probeTimeout: + type: string + interval: + type: string + retry: + type: integer + attempt: + type: integer + probePollingInterval: + type: string + initialDelaySeconds: + type: integer + initialDelay: + type: string + verbosity: + type: string + stopOnFailure: + type: boolean + sloProbe/inputs: + description: inputs needed for the SLO probe + required: + - platformEndpoint + - sloIdentifier + - sloSourceMetadata + - comparator + properties: + comparator: + description: Comparator check for the correctness + of the probe output + required: + - criteria + - value + properties: + criteria: + description: Criteria for matching data it + supports >=, <=, ==, >, <, != for int and + float it supports equal, notEqual, contains + for string + type: string + type: + description: Type of data it can be int, float, + string + type: string + value: + description: Value contains relative value + for criteria + type: string + type: object + evaluationWindow: + description: EvaluationWindow is the time period + for which the metrics will be evaluated + properties: + evaluationEndTime: + description: End time of evaluation + type: integer + evaluationStartTime: + description: Start time of evaluation + type: integer + type: object + platformEndpoint: + description: PlatformEndpoint for the monitoring + service endpoint + type: string + insecureSkipVerify: + description: InsecureSkipVerify flag to skip certificate + checks + type: boolean + sloIdentifier: + description: SLOIdentifier for fetching the details + of the SLO + type: string + sloSourceMetadata: + description: SLOSourceMetadata consists of required + metadata details to fetch metric data + required: + - apiTokenSecret + - scope + properties: + apiTokenSecret: + description: APITokenSecret for authenticating + with the platform service + type: string + scope: + description: Scope required for fetching details + required: + - accountIdentifier + - orgIdentifier + - projectIdentifier + properties: + accountIdentifier: + description: AccountIdentifier for account + ID + type: string + orgIdentifier: + description: OrgIdentifier for organization + ID + type: string + projectIdentifier: + description: ProjectIdentifier for project + ID + type: string + type: object + type: object + type: object + mode: + type: string + pattern: ^(SOT|EOT|Edge|Continuous|OnChaos)$ + minLength: 1 + data: + type: string + components: + x-kubernetes-preserve-unknown-fields: true + type: object + properties: + statusCheckTimeouts: type: object - minProperties: 2 - required: - - probeTimeout - - interval properties: - probeTimeout: + delay: type: integer - interval: + timeout: type: integer - retry: - type: integer - probePollingInterval: - type: integer - initialDelaySeconds: - type: integer - stopOnFailure: - type: boolean - mode: - type: string - pattern: ^(SOT|EOT|Edge|Continuous|OnChaos)$ - minLength: 1 - data: - type: string - components: - x-kubernetes-preserve-unknown-fields: true - type: object - properties: - statusCheckTimeouts: - type: object - properties: - delay: - type: integer - timeout: - type: integer - nodeSelector: - type: object - additionalProperties: + nodeSelector: + type: object + additionalProperties: + type: string + properties: + key: + type: string + minLength: 1 + allowEmptyValue: false + value: + type: string + minLength: 1 + allowEmptyValue: false + experimentImage: type: string - properties: - key: - type: string - minLength: 1 - allowEmptyValue: false - value: - type: string - minLength: 1 - allowEmptyValue: false - experimentImage: - type: string - env: - type: array - items: - description: EnvVar represents an environment variable - present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) + env: + type: array + items: + description: EnvVar represents an environment variable + present in a Container. + properties: + name: + description: Name of the environment variable. + Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, @@ -2079,161 +2437,161 @@ spec: double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More + type: string + valueFrom: + description: Source for the environment variable's + value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of the pod: + type: string + optional: + description: Specify whether the ConfigMap + or its key must be defined + type: boolean + required: + - key + type: object + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.' - properties: - apiVersion: - description: Version of the schema the - FieldPath is written in terms of, defaults - to "v1". - type: string - fieldPath: - description: Path of the field to select - in the specified API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource of the container: + properties: + apiVersion: + description: Version of the schema the + FieldPath is written in terms of, defaults + to "v1". + type: string + fieldPath: + description: Path of the field to select + in the specified API version. + type: string + required: + - fieldPath + type: object + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' - properties: - containerName: - description: 'Container name: required + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format - of the exposed resources, defaults to - "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a secret in - the pod's namespace - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - description: 'Name of the referent. More + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format + of the exposed resources, defaults to + "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + secretKeyRef: + description: Selects a key of a secret in + the pod's namespace + properties: + key: + description: The key of the secret to + select from. Must be a valid secret + key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - configMaps: - type: array - items: - type: object - properties: - name: - type: string - mountPath: - type: string - secrets: - type: array - items: - type: object - properties: - name: - type: string - mountPath: - type: string - experimentAnnotations: - type: object - additionalProperties: - type: string - properties: - key: - type: string - minLength: 1 - allowEmptyValue: false - value: - type: string - minLength: 1 - allowEmptyValue: false - tolerations: - description: Pod's tolerations. - items: - description: The pod with this Toleration tolerates any taint matches the using the matching operator . - properties: - effect: - description: Effect to match. Empty means all effects. - type: string - key: - description: Taint key the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists. - type: string - operator: - description: Operators are Exists or Equal. Defaults to Equal. - type: string - tolerationSeconds: - description: Period of time the toleration tolerates the taint. - format: int64 - type: integer - value: - description: If the operator is Exists, the value should be empty, otherwise just a regular string. - type: string + type: string + optional: + description: Specify whether the Secret + or its key must be defined + type: boolean + required: + - key + type: object + type: object + required: + - name + type: object + configMaps: + type: array + items: + type: object + properties: + name: + type: string + mountPath: + type: string + secrets: + type: array + items: + type: object + properties: + name: + type: string + mountPath: + type: string + experimentAnnotations: type: object - type: array + additionalProperties: + type: string + properties: + key: + type: string + minLength: 1 + allowEmptyValue: false + value: + type: string + minLength: 1 + allowEmptyValue: false + tolerations: + description: Pod's tolerations. + items: + description: The pod with this Toleration tolerates any taint matches the using the matching operator . + properties: + effect: + description: Effect to match. Empty means all effects. + type: string + key: + description: Taint key the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists. + type: string + operator: + description: Operators are Exists or Equal. Defaults to Equal. + type: string + tolerationSeconds: + description: Period of time the toleration tolerates the taint. + format: int64 + type: integer + value: + description: If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string + type: object + type: array - status: - x-kubernetes-preserve-unknown-fields: true - type: object - served: true - storage: true - subresources: {} + status: + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: {} conversion: strategy: None \ No newline at end of file diff --git a/charts/litmus-core/values.yaml b/charts/litmus-core/values.yaml index 74ebc02a..2ea88c79 100644 --- a/charts/litmus-core/values.yaml +++ b/charts/litmus-core/values.yaml @@ -15,12 +15,12 @@ replicaCount: 1 operator: image: repository: litmuschaos.docker.scarf.sh/litmuschaos/chaos-operator - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always runner: image: repository: litmuschaos.docker.scarf.sh/litmuschaos/chaos-runner - tag: 2.14.0 + tag: 3.6.0 service: type: ClusterIP @@ -75,7 +75,7 @@ exporter: additionalLabels: {} image: repository: litmuschaos.docker.scarf.sh/litmuschaos/chaos-exporter - tag: 2.14.0 + tag: 3.6.0 pullPolicy: Always service: type: ClusterIP