apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: clusterworkflowtemplates.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: ClusterWorkflowTemplate
    listKind: ClusterWorkflowTemplateList
    plural: clusterworkflowtemplates
    shortNames:
      - clusterwftmpl
      - cwft
    singular: clusterworkflowtemplate
  scope: Cluster
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              type: object
              x-kubernetes-map-type: atomic
              x-kubernetes-preserve-unknown-fields: true
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: cronworkflows.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: CronWorkflow
    listKind: CronWorkflowList
    plural: cronworkflows
    shortNames:
      - cwf
      - cronwf
    singular: cronworkflow
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              type: object
              x-kubernetes-map-type: atomic
              x-kubernetes-preserve-unknown-fields: true
            status:
              type: object
              x-kubernetes-map-type: atomic
              x-kubernetes-preserve-unknown-fields: true
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: workflows.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: Workflow
    listKind: WorkflowList
    plural: workflows
    shortNames:
      - wf
    singular: workflow
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: Status of the workflow
          jsonPath: .status.phase
          name: Status
          type: string
        - description: When the workflow was started
          format: date-time
          jsonPath: .status.startedAt
          name: Age
          type: date
      name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              type: object
              x-kubernetes-map-type: atomic
              x-kubernetes-preserve-unknown-fields: true
            status:
              type: object
              x-kubernetes-map-type: atomic
              x-kubernetes-preserve-unknown-fields: true
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
      subresources: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: workflowtasksets.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTaskSet
    listKind: WorkflowTaskSetList
    plural: workflowtasksets
    shortNames:
    - wfts
    singular: workflowtaskset
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
          status:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: workflowtemplates.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTemplate
    listKind: WorkflowTemplateList
    plural: workflowtemplates
    shortNames:
      - wftmpl
    singular: workflowtemplate
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              type: object
              x-kubernetes-map-type: atomic
              x-kubernetes-preserve-unknown-fields: true
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: workflowtaskresults.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTaskResult
    listKind: WorkflowTaskResultList
    plural: workflowtaskresults
    singular: workflowtaskresult
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          message:
            type: string
          metadata:
            type: object
          outputs:
            properties:
              artifacts:
                items:
                  properties:
                    archive:
                      properties:
                        none:
                          type: object
                        tar:
                          properties:
                            compressionLevel:
                              format: int32
                              type: integer
                          type: object
                        zip:
                          type: object
                      type: object
                    archiveLogs:
                      type: boolean
                    artifactory:
                      properties:
                        passwordSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        url:
                          type: string
                        usernameSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      required:
                      - url
                      type: object
                    from:
                      type: string
                    fromExpression:
                      type: string
                    gcs:
                      properties:
                        bucket:
                          type: string
                        key:
                          type: string
                        serviceAccountKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      required:
                      - key
                      type: object
                    git:
                      properties:
                        depth:
                          format: int64
                          type: integer
                        disableSubmodules:
                          type: boolean
                        fetch:
                          items:
                            type: string
                          type: array
                        insecureIgnoreHostKey:
                          type: boolean
                        passwordSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        repo:
                          type: string
                        revision:
                          type: string
                        sshPrivateKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        usernameSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      required:
                      - repo
                      type: object
                    globalName:
                      type: string
                    hdfs:
                      properties:
                        addresses:
                          items:
                            type: string
                          type: array
                        force:
                          type: boolean
                        hdfsUser:
                          type: string
                        krbCCacheSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        krbConfigConfigMap:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        krbKeytabSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        krbRealm:
                          type: string
                        krbServicePrincipalName:
                          type: string
                        krbUsername:
                          type: string
                        path:
                          type: string
                      required:
                      - path
                      type: object
                    http:
                      properties:
                        headers:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                        url:
                          type: string
                      required:
                      - url
                      type: object
                    mode:
                      format: int32
                      type: integer
                    name:
                      type: string
                    optional:
                      type: boolean
                    oss:
                      properties:
                        accessKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        bucket:
                          type: string
                        createBucketIfNotPresent:
                          type: boolean
                        endpoint:
                          type: string
                        key:
                          type: string
                        lifecycleRule:
                          properties:
                            markDeletionAfterDays:
                              format: int32
                              type: integer
                            markInfrequentAccessAfterDays:
                              format: int32
                              type: integer
                          type: object
                        secretKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        securityToken:
                          type: string
                      required:
                      - key
                      type: object
                    path:
                      type: string
                    raw:
                      properties:
                        data:
                          type: string
                      required:
                      - data
                      type: object
                    recurseMode:
                      type: boolean
                    s3:
                      properties:
                        accessKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        bucket:
                          type: string
                        createBucketIfNotPresent:
                          properties:
                            objectLocking:
                              type: boolean
                          type: object
                        encryptionOptions:
                          properties:
                            enableEncryption:
                              type: boolean
                            kmsEncryptionContext:
                              type: string
                            kmsKeyId:
                              type: string
                            serverSideCustomerKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                          type: object
                        endpoint:
                          type: string
                        insecure:
                          type: boolean
                        key:
                          type: string
                        region:
                          type: string
                        roleARN:
                          type: string
                        secretKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        useSDKCreds:
                          type: boolean
                      type: object
                    subPath:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              exitCode:
                type: string
              parameters:
                items:
                  properties:
                    default:
                      type: string
                    description:
                      type: string
                    enum:
                      items:
                        type: string
                      type: array
                    globalName:
                      type: string
                    name:
                      type: string
                    value:
                      type: string
                    valueFrom:
                      properties:
                        configMapKeyRef:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        default:
                          type: string
                        event:
                          type: string
                        expression:
                          type: string
                        jqFilter:
                          type: string
                        jsonPath:
                          type: string
                        parameter:
                          type: string
                        path:
                          type: string
                        supplied:
                          type: object
                      type: object
                  required:
                  - name
                  type: object
                type: array
              result:
                type: string
            type: object
          phase:
            type: string
          progress:
            type: string
        required:
        - metadata
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: chaosengines.litmuschaos.io
spec:
  group: litmuschaos.io
  names:
    kind: ChaosEngine
    listKind: ChaosEngineList
    plural: chaosengines
    singular: chaosengine
  scope: Namespaced
  versions:
  - 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
              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)$
              defaultAppHealthCheck:
                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: 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 <key,value,effect> using the matching operator <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:
                              - runProperties
                            properties:
                              name:
                                type: string
                              type:
                                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:
                                          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.
                                                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.'
                                                  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:
                                                      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.
                                                        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
                                      image:
                                        description: Image for the source pod
                                        type: string
                                      imagePullPolicy:
                                        description: ImagePullPolicy for the source
                                          pod
                                        type: string
                                      labels:
                                        additionalProperties:
                                          type: string
                                        description: Labels for the source pod
                                        type: object
                                      nodeSelector:
                                        additionalProperties:
                                          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
                                          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
                                                    volume that you want to mount. Tip:
                                                    Ensure that the filesystem type
                                                    is supported by the host operating
                                                    system. Examples: "ext4", "xfs",
                                                    "ntfs". Implicitly inferred to be
                                                    "ext4" if unspecified. More info:
                                                    https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                                    TODO: how do we prevent errors in
                                                    the filesystem from compromising
                                                    the machine'
                                                  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
                                                    /dev/sda1, you specify the partition
                                                    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
                                                    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
                                                    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,
                                                    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:
                                                    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
                                                    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
                                                    mounted root, rather than the full
                                                    Ceph tree, default is /'
                                                  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
                                                    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
                                                    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.
                                                        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
                                                    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
                                                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.
                                                    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
                                                    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
                                                    a secret object containing parameters
                                                    used to connect to OpenStack.'
                                                  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
                                                    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
                                                    to use on created files by default.
                                                    Must be a value between 0 and 0777.
                                                    Defaults to 0644. 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
                                                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
                                                    '..'.
                                                  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,
                                                          the volume defaultMode will
                                                          be used. 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
                                                      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.
                                                        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
                                                  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
                                                    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
                                                items:
                                                  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
                                                          bits to use on this file,
                                                          must be a value between 0
                                                          and 0777. If not specified,
                                                          the volume defaultMode will
                                                          be used. 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
                                                      path:
                                                        description: 'Required: Path
                                                          is  the relative path name
                                                          of the file to be created.
                                                          Must not be absolute or contain
                                                          the ''..'' path. Must be utf-8
                                                          encoded. The first item of
                                                          the relative path must not
                                                          start with ''..'''
                                                        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
                                                              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 to select'
                                                            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
                                                    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
                                                    storage required for this EmptyDir
                                                    volume. The size limit is also applicable
                                                    for memory medium. The maximum usage
                                                    on memory medium EmptyDir would
                                                    be the minimum value between the
                                                    SizeLimit specified here and the
                                                    sum of memory limits of all containers
                                                    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.
                                                    Must be a filesystem type supported
                                                    by the host operating system. Ex.
                                                    "ext4", "xfs", "ntfs". Implicitly
                                                    inferred to be "ext4" if unspecified.
                                                    TODO: how do we prevent errors in
                                                    the filesystem from compromising
                                                    the machine'
                                                  type: string
                                                lun:
                                                  description: 'Optional: FC target
                                                    lun number'
                                                  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
                                                    worldwide names (WWNs)'
                                                  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:
                                                    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
                                                    options if any.'
                                                  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
                                                    is reference to the secret object
                                                    containing sensitive information
                                                    to pass to the plugin scripts. This
                                                    may be empty if no secret object
                                                    is specified. If the secret object
                                                    contains more than one secret, all
                                                    secrets are passed to the plugin
                                                    scripts.'
                                                  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
                                                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
                                                    volume that you want to mount. Tip:
                                                    Ensure that the filesystem type
                                                    is supported by the host operating
                                                    system. Examples: "ext4", "xfs",
                                                    "ntfs". Implicitly inferred to be
                                                    "ext4" if unspecified. More info:
                                                    https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                                    TODO: how do we prevent errors in
                                                    the filesystem from compromising
                                                    the machine'
                                                  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
                                                    /dev/sda1, you specify the partition
                                                    as "1". Similarly, the volume partition
                                                    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
                                                    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
                                                    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
                                                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
                                                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
                                                    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
                                                    volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                                  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
                                                file or directory on the host machine
                                                that is directly exposed to the container.
                                                This is generally used for system agents
                                                or other privileged things that are
                                                allowed to see the host machine. Most
                                                containers will NOT need this. More
                                                info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
                                                ## TODO(jonesdl) We need to restrict
                                                who can use host directory mounts and
                                                who can/can not mount host directories
                                                as read/write.'
                                              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
                                                    Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                                  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
                                                    volume that you want to mount. Tip:
                                                    Ensure that the filesystem type
                                                    is supported by the host operating
                                                    system. Examples: "ext4", "xfs",
                                                    "ntfs". Implicitly inferred to be
                                                    "ext4" if unspecified. More info:
                                                    https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                                    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 <target portal>:<volume
                                                    name> 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
                                                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
                                                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
                                                    by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                                  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
                                                    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
                                                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
                                                    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
                                                              '..'.
                                                            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, the volume
                                                                    defaultMode will
                                                                    be used. 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
                                                                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
                                                            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 bits to use
                                                                    on this file, must
                                                                    be a value between
                                                                    0 and 0777. If not
                                                                    specified, the volume
                                                                    defaultMode will
                                                                    be used. 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
                                                                path:
                                                                  description: 'Required:
                                                                    Path is  the relative
                                                                    path name of the
                                                                    file to be created.
                                                                    Must not be absolute
                                                                    or contain the ''..''
                                                                    path. Must be utf-8
                                                                    encoded. The first
                                                                    item of the relative
                                                                    path must not start
                                                                    with ''..'''
                                                                  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
                                                                        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 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 '..'.
                                                            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, the volume
                                                                    defaultMode will
                                                                    be used. 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
                                                                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
                                                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
                                                    volume that you want to mount. Tip:
                                                    Ensure that the filesystem type
                                                    is supported by the host operating
                                                    system. Examples: "ext4", "xfs",
                                                    "ntfs". Implicitly inferred to be
                                                    "ext4" if unspecified. More info:
                                                    https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                                    TODO: how do we prevent errors in
                                                    the filesystem from compromising
                                                    the machine'
                                                  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
                                                    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.
                                                    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
                                                    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
                                                    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.
                                                        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.
                                                    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.
                                                        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
                                                that should populate this volume. More
                                                info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                                              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
                                                    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
                                                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
                                                    '..'.
                                                  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,
                                                          the volume defaultMode will
                                                          be used. 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
                                                      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.
                                                        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
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                              httpProbe/inputs:
                                type: object
                                properties:
                                  url:
                                    type: string
                                    minLength: 1
                                  insecureSkipVerify:
                                    type: boolean
                                  responseTimeout: 
                                    type: integer
                                  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:
                                type: object
                                minProperties: 3
                                required:
                                  - probeTimeout
                                  - interval
                                  - retry
                                properties:
                                  probeTimeout:
                                    type: integer
                                  interval:
                                    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:
                                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)
                                      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.'
                                        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
                            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 <key,value,effect> using the matching operator <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: {}  
  conversion:
    strategy: None
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: chaosexperiments.litmuschaos.io
spec:
  group: litmuschaos.io
  names:
    kind: ChaosExperiment
    listKind: ChaosExperimentList
    plural: chaosexperiments
    singular: chaosexperiment
  scope: Namespaced
  versions:
  - 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
          description: 
            type: object
            additionalProperties:
              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
          status:
            x-kubernetes-preserve-unknown-fields: true
            type: object            
          spec:
            type: object
            properties:
              definition:
                x-kubernetes-preserve-unknown-fields: true
                type: object
                properties:
                  args:
                    type: array
                    items:
                      type: string
                  command:
                    type: array
                    items:
                      type: string
                  env:
                    type: array
                    items:
                      type: object
                      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.'
                              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
                  image:
                    type: string
                  imagePullPolicy:
                    type: string
                  labels:
                    type: object
                    additionalProperties:
                      type: string
                  scope:
                    type: string
                    pattern: ^(Namespaced|Cluster)$
                  permissions:
                    type: array
                    items:
                      type: object
                      minProperties: 3
                      required:
                        - apiGroups
                        - resources
                        - verbs
                      properties:
                        apiGroups:
                          type: array
                          items:
                            type: string
                        resources:
                          type: array
                          items:
                            type: string
                        verbs:
                          type: array
                          items:
                            type: string
                        resourceNames:
                          type: array
                          items:
                            type: string
                        nonResourceURLs:
                          type: array
                          items:
                            type: string
                  configMaps:
                    type: array
                    items:
                      type: object
                      minProperties: 2
                      properties:
                        name:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                        mountPath:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                  secrets:
                    type: array
                    items:
                      type: object
                      minProperties: 2
                      properties:
                        name:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                        mountPath:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                  hostFileVolumes:
                    type: array
                    items:
                      type: object
                      minProperties: 3
                      properties:
                        name:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                        mountPath:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                        nodePath:
                          type: string
                          allowEmptyValue: false
                          minLength: 1
                  securityContext:
                    x-kubernetes-preserve-unknown-fields: true
                    type: object
                  hostPID:
                    type: boolean

    served: true
    storage: true
    subresources: {}
  conversion:
    strategy: None
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: chaosresults.litmuschaos.io
spec:
  group: litmuschaos.io
  names:
    kind: ChaosResult
    listKind: ChaosResultList
    plural: chaosresults
    singular: chaosresult
  scope: Namespaced
  versions:
  - 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
              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
          status:
            x-kubernetes-preserve-unknown-fields: true
            type: object
    served: true
    storage: true
    subresources: {}
  conversion:
    strategy: None
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  creationTimestamp: null
  name: eventtrackerpolicies.eventtracker.litmuschaos.io
spec:
  group: eventtracker.litmuschaos.io
  names:
    kind: EventTrackerPolicy
    listKind: EventTrackerPolicyList
    plural: eventtrackerpolicies
    singular: eventtrackerpolicy
  scope: Namespaced
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: EventTrackerPolicy is the Schema for the eventtrackerpolicies
            API
          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/sig-architecture/api-conventions.md#resources'
              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/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: EventTrackerPolicySpec defines the desired state of EventTrackerPolicy
              properties:
                condition_type:
                  type: string
                conditions:
                  items:
                    properties:
                      key:
                        type: string
                      operator:
                        type: string
                      value:
                        type: string
                    type: object
                  type: array
              type: object
            statuses:
              items:
                description: EventTrackerPolicyStatus defines the observed state of
                  EventTrackerPolicy
                properties:
                  is_triggered:
                    type: string
                  resource:
                    type: string
                  resource_name:
                    type: string
                  result:
                    type: string
                  time_stamp:
                    description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
                     of cluster Important: Run "make" to regenerate code after modifying
                     this file'
                    type: string
                  workflow_id:
                    type: string
                type: object
              type: array
          type: object
      served: true
      storage: true
      subresources:
        status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []