apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  labels:
    app.kubernetes.io/name: moco
  name: mysqlclusters.moco.cybozu.com
spec:
  group: moco.cybozu.com
  names:
    kind: MySQLCluster
    listKind: MySQLClusterList
    plural: mysqlclusters
    singular: mysqlcluster
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Available')].status
      name: Available
      type: string
    - jsonPath: .status.conditions[?(@.type=='Healthy')].status
      name: Healthy
      type: string
    - jsonPath: .status.currentPrimaryIndex
      name: Primary
      type: integer
    - jsonPath: .status.syncedReplicas
      name: Synced replicas
      type: integer
    - jsonPath: .status.errantReplicas
      name: Errant replicas
      type: integer
    - jsonPath: .status.backup.time
      name: Last backup
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: MySQLCluster is the Schema for the mysqlclusters 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.'
            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.'
            type: string
          metadata:
            type: object
          spec:
            description: MySQLClusterSpec defines the desired state of MySQLCluster
            properties:
              backupPolicyName:
                description: The name of BackupPolicy custom resource in the same
                  namespace. If this is set, MOCO creates a CronJob to take backup
                  of this MySQL cluster periodically.
                nullable: true
                type: string
              collectors:
                description: "Collectors is the list of collector flag names of mysqld_exporter.
                  If this field is not empty, MOCO adds mysqld_exporter as a sidecar
                  to collect and export mysqld metrics in Prometheus format. \n See
                  https://github."
                items:
                  type: string
                type: array
              disableSlowQueryLogContainer:
                description: DisableSlowQueryLogContainer controls whether to add
                  a sidecar container named "slow-log" to output slow logs as the
                  containers output. If set to true, the sidecar container is not
                  added. The default is false.
                type: boolean
              logRotationSchedule:
                description: LogRotationSchedule specifies the schedule to rotate
                  MySQL logs. If not set, the default is to rotate logs every 5 minutes.
                  See https://pkg.go.dev/github.
                type: string
              maxDelaySeconds:
                description: MaxDelaySeconds, if set, configures the readiness probe
                  of mysqld container. For a replica mysqld instance, if it is delayed
                  to apply transactions over this threshold, the mysqld instance will
                  be marked as non-ready.
                minimum: 0
                type: integer
              mysqlConfigMapName:
                description: MySQLConfigMapName is a `ConfigMap` name of MySQL config.
                nullable: true
                type: string
              podTemplate:
                description: PodTemplate is a `Pod` template for MySQL server container.
                properties:
                  metadata:
                    description: Standard object's metadata.  The name in this metadata
                      is ignored.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations is a map of string keys and values.
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: Labels is a map of string keys and values.
                        type: object
                      name:
                        description: Name is the name of the object.
                        type: string
                    type: object
                  spec:
                    description: Specification of the desired behavior of the pod.
                      The name of the MySQL server container in this spec must be
                      `mysqld`.
                    properties:
                      activeDeadlineSeconds:
                        description: Optional duration in seconds the pod may be active
                          on the node relative to StartTime before the system will
                          actively try to mark it failed and kill associated containers.
                          Value must be a positive integer.
                        format: int64
                        type: integer
                      affinity:
                        description: If specified, the pod's scheduling constraints
                        properties:
                          nodeAffinity:
                            description: Describes node affinity scheduling rules
                              for the pod.
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                description: The scheduler will prefer to schedule
                                  pods to nodes that satisfy the affinity expressions
                                  specified by this field, but it may choose a node
                                  that violates one or more of the expressions.
                                items:
                                  description: An empty preferred scheduling term
                                    matches all objects with implicit weight 0 (i.e.
                                    it's a no-op). A null preferred scheduling term
                                    matches no objects (i.e. is also a no-op).
                                  properties:
                                    preference:
                                      description: A node selector term, associated
                                        with the corresponding weight.
                                      properties:
                                        matchExpressions:
                                          description: A list of node selector requirements
                                            by node's labels.
                                          items:
                                            description: A node selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: The label key that the
                                                  selector applies to.
                                                type: string
                                              operator:
                                                description: Represents a key's relationship
                                                  to a set of values. Valid operators
                                                  are In, NotIn, Exists, DoesNotExist.
                                                  Gt, and Lt.
                                                type: string
                                              values:
                                                description: An array of string values.
                                                  If the operator is In or NotIn,
                                                  the values array must be non-empty.
                                                  If the operator is Exists or DoesNotExist,
                                                  the values array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          description: A list of node selector requirements
                                            by node's fields.
                                          items:
                                            description: A node selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: The label key that the
                                                  selector applies to.
                                                type: string
                                              operator:
                                                description: Represents a key's relationship
                                                  to a set of values. Valid operators
                                                  are In, NotIn, Exists, DoesNotExist.
                                                  Gt, and Lt.
                                                type: string
                                              values:
                                                description: An array of string values.
                                                  If the operator is In or NotIn,
                                                  the values array must be non-empty.
                                                  If the operator is Exists or DoesNotExist,
                                                  the values array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    weight:
                                      description: Weight associated with matching
                                        the corresponding nodeSelectorTerm, in the
                                        range 1-100.
                                      format: int32
                                      type: integer
                                  required:
                                  - preference
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                description: If the affinity requirements specified
                                  by this field are not met at scheduling time, the
                                  pod will not be scheduled onto the node.
                                properties:
                                  nodeSelectorTerms:
                                    description: Required. A list of node selector
                                      terms. The terms are ORed.
                                    items:
                                      description: A null or empty node selector term
                                        matches no objects. The requirements of them
                                        are ANDed. The TopologySelectorTerm type implements
                                        a subset of the NodeSelectorTerm.
                                      properties:
                                        matchExpressions:
                                          description: A list of node selector requirements
                                            by node's labels.
                                          items:
                                            description: A node selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: The label key that the
                                                  selector applies to.
                                                type: string
                                              operator:
                                                description: Represents a key's relationship
                                                  to a set of values. Valid operators
                                                  are In, NotIn, Exists, DoesNotExist.
                                                  Gt, and Lt.
                                                type: string
                                              values:
                                                description: An array of string values.
                                                  If the operator is In or NotIn,
                                                  the values array must be non-empty.
                                                  If the operator is Exists or DoesNotExist,
                                                  the values array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          description: A list of node selector requirements
                                            by node's fields.
                                          items:
                                            description: A node selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: The label key that the
                                                  selector applies to.
                                                type: string
                                              operator:
                                                description: Represents a key's relationship
                                                  to a set of values. Valid operators
                                                  are In, NotIn, Exists, DoesNotExist.
                                                  Gt, and Lt.
                                                type: string
                                              values:
                                                description: An array of string values.
                                                  If the operator is In or NotIn,
                                                  the values array must be non-empty.
                                                  If the operator is Exists or DoesNotExist,
                                                  the values array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    type: array
                                required:
                                - nodeSelectorTerms
                                type: object
                            type: object
                          podAffinity:
                            description: Describes pod affinity scheduling rules (e.g.
                              co-locate this pod in the same node, zone, etc. as some
                              other pod(s)).
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                description: The scheduler will prefer to schedule
                                  pods to nodes that satisfy the affinity expressions
                                  specified by this field, but it may choose a node
                                  that violates one or more of the expressions.
                                items:
                                  description: The weights of all of the matched WeightedPodAffinityTerm
                                    fields are added per-node to find the most preferred
                                    node(s)
                                  properties:
                                    podAffinityTerm:
                                      description: Required. A pod affinity term,
                                        associated with the corresponding weight.
                                      properties:
                                        labelSelector:
                                          description: A label query over a set of
                                            resources, in this case pods.
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list
                                                of label selector requirements. The
                                                requirements are ANDed.
                                              items:
                                                description: A label selector requirement
                                                  is a selector that contains values,
                                                  a key, and an operator that relates
                                                  the key and values.
                                                properties:
                                                  key:
                                                    description: key is the label
                                                      key that the selector applies
                                                      to.
                                                    type: string
                                                  operator:
                                                    description: operator represents
                                                      a key's relationship to a set
                                                      of values. Valid operators are
                                                      In, NotIn, Exists and DoesNotExist.
                                                    type: string
                                                  values:
                                                    description: values is an array
                                                      of string values. If the operator
                                                      is In or NotIn, the values array
                                                      must be non-empty. If the operator
                                                      is Exists or DoesNotExist, the
                                                      values array must be empty.
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: matchLabels is a map of
                                                {key,value} pairs.
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          description: A label query over the set
                                            of namespaces that the term applies to.
                                            The term is applied to the union of the
                                            namespaces selected by this field and
                                            the ones listed in the namespaces field.
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list
                                                of label selector requirements. The
                                                requirements are ANDed.
                                              items:
                                                description: A label selector requirement
                                                  is a selector that contains values,
                                                  a key, and an operator that relates
                                                  the key and values.
                                                properties:
                                                  key:
                                                    description: key is the label
                                                      key that the selector applies
                                                      to.
                                                    type: string
                                                  operator:
                                                    description: operator represents
                                                      a key's relationship to a set
                                                      of values. Valid operators are
                                                      In, NotIn, Exists and DoesNotExist.
                                                    type: string
                                                  values:
                                                    description: values is an array
                                                      of string values. If the operator
                                                      is In or NotIn, the values array
                                                      must be non-empty. If the operator
                                                      is Exists or DoesNotExist, the
                                                      values array must be empty.
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: matchLabels is a map of
                                                {key,value} pairs.
                                              type: object
                                          type: object
                                        namespaces:
                                          description: namespaces specifies a static
                                            list of namespace names that the term
                                            applies to. The term is applied to the
                                            union of the namespaces listed in this
                                            field and the ones selected by namespaceSelector.
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          description: This pod should be co-located
                                            (affinity) or not co-located (anti-affinity)
                                            with the pods matching the labelSelector
                                            in the specified namespaces, where co-located
                                            is defined as running on a node whose
                                            value of the label w
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      description: weight associated with matching
                                        the corresponding podAffinityTerm, in the
                                        range 1-100.
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                description: If the affinity requirements specified
                                  by this field are not met at scheduling time, the
                                  pod will not be scheduled onto the node.
                                items:
                                  description: Defines a set of pods (namely those
                                    matching the labelSelector relative to the given
                                    namespace(s)) that this pod should be co-located
                                    (affinity) or not co-located (anti-affinity) with,
                                    where co-located is defined as runn
                                  properties:
                                    labelSelector:
                                      description: A label query over a set of resources,
                                        in this case pods.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs.
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      description: A label query over the set of namespaces
                                        that the term applies to. The term is applied
                                        to the union of the namespaces selected by
                                        this field and the ones listed in the namespaces
                                        field.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs.
                                          type: object
                                      type: object
                                    namespaces:
                                      description: namespaces specifies a static list
                                        of namespace names that the term applies to.
                                        The term is applied to the union of the namespaces
                                        listed in this field and the ones selected
                                        by namespaceSelector.
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      description: This pod should be co-located (affinity)
                                        or not co-located (anti-affinity) with the
                                        pods matching the labelSelector in the specified
                                        namespaces, where co-located is defined as
                                        running on a node whose value of the label
                                        w
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                          podAntiAffinity:
                            description: Describes pod anti-affinity scheduling rules
                              (e.g. avoid putting this pod in the same node, zone,
                              etc. as some other pod(s)).
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                description: The scheduler will prefer to schedule
                                  pods to nodes that satisfy the anti-affinity expressions
                                  specified by this field, but it may choose a node
                                  that violates one or more of the expressions.
                                items:
                                  description: The weights of all of the matched WeightedPodAffinityTerm
                                    fields are added per-node to find the most preferred
                                    node(s)
                                  properties:
                                    podAffinityTerm:
                                      description: Required. A pod affinity term,
                                        associated with the corresponding weight.
                                      properties:
                                        labelSelector:
                                          description: A label query over a set of
                                            resources, in this case pods.
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list
                                                of label selector requirements. The
                                                requirements are ANDed.
                                              items:
                                                description: A label selector requirement
                                                  is a selector that contains values,
                                                  a key, and an operator that relates
                                                  the key and values.
                                                properties:
                                                  key:
                                                    description: key is the label
                                                      key that the selector applies
                                                      to.
                                                    type: string
                                                  operator:
                                                    description: operator represents
                                                      a key's relationship to a set
                                                      of values. Valid operators are
                                                      In, NotIn, Exists and DoesNotExist.
                                                    type: string
                                                  values:
                                                    description: values is an array
                                                      of string values. If the operator
                                                      is In or NotIn, the values array
                                                      must be non-empty. If the operator
                                                      is Exists or DoesNotExist, the
                                                      values array must be empty.
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: matchLabels is a map of
                                                {key,value} pairs.
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          description: A label query over the set
                                            of namespaces that the term applies to.
                                            The term is applied to the union of the
                                            namespaces selected by this field and
                                            the ones listed in the namespaces field.
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list
                                                of label selector requirements. The
                                                requirements are ANDed.
                                              items:
                                                description: A label selector requirement
                                                  is a selector that contains values,
                                                  a key, and an operator that relates
                                                  the key and values.
                                                properties:
                                                  key:
                                                    description: key is the label
                                                      key that the selector applies
                                                      to.
                                                    type: string
                                                  operator:
                                                    description: operator represents
                                                      a key's relationship to a set
                                                      of values. Valid operators are
                                                      In, NotIn, Exists and DoesNotExist.
                                                    type: string
                                                  values:
                                                    description: values is an array
                                                      of string values. If the operator
                                                      is In or NotIn, the values array
                                                      must be non-empty. If the operator
                                                      is Exists or DoesNotExist, the
                                                      values array must be empty.
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: matchLabels is a map of
                                                {key,value} pairs.
                                              type: object
                                          type: object
                                        namespaces:
                                          description: namespaces specifies a static
                                            list of namespace names that the term
                                            applies to. The term is applied to the
                                            union of the namespaces listed in this
                                            field and the ones selected by namespaceSelector.
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          description: This pod should be co-located
                                            (affinity) or not co-located (anti-affinity)
                                            with the pods matching the labelSelector
                                            in the specified namespaces, where co-located
                                            is defined as running on a node whose
                                            value of the label w
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      description: weight associated with matching
                                        the corresponding podAffinityTerm, in the
                                        range 1-100.
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                description: If the anti-affinity requirements specified
                                  by this field are not met at scheduling time, the
                                  pod will not be scheduled onto the node.
                                items:
                                  description: Defines a set of pods (namely those
                                    matching the labelSelector relative to the given
                                    namespace(s)) that this pod should be co-located
                                    (affinity) or not co-located (anti-affinity) with,
                                    where co-located is defined as runn
                                  properties:
                                    labelSelector:
                                      description: A label query over a set of resources,
                                        in this case pods.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs.
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      description: A label query over the set of namespaces
                                        that the term applies to. The term is applied
                                        to the union of the namespaces selected by
                                        this field and the ones listed in the namespaces
                                        field.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs.
                                          type: object
                                      type: object
                                    namespaces:
                                      description: namespaces specifies a static list
                                        of namespace names that the term applies to.
                                        The term is applied to the union of the namespaces
                                        listed in this field and the ones selected
                                        by namespaceSelector.
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      description: This pod should be co-located (affinity)
                                        or not co-located (anti-affinity) with the
                                        pods matching the labelSelector in the specified
                                        namespaces, where co-located is defined as
                                        running on a node whose value of the label
                                        w
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                        type: object
                      automountServiceAccountToken:
                        description: AutomountServiceAccountToken indicates whether
                          a service account token should be automatically mounted.
                        type: boolean
                      containers:
                        description: List of containers belonging to the pod. Containers
                          cannot currently be added or removed. There must be at least
                          one container in a Pod. Cannot be updated.
                        items:
                          description: A single application container that you want
                            to run within a pod.
                          properties:
                            args:
                              description: Arguments to the entrypoint. The docker
                                image's CMD is used if this is not provided. Variable
                                references $(VAR_NAME) are expanded using the container's
                                environment.
                              items:
                                type: string
                              type: array
                            command:
                              description: Entrypoint array. Not executed within a
                                shell. The docker image's ENTRYPOINT is used if this
                                is not provided. Variable references $(VAR_NAME) are
                                expanded using the container's environment.
                              items:
                                type: string
                              type: array
                            env:
                              description: List of environment variables to set in
                                the container. Cannot be updated.
                              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 previously defined environment
                                      variables in the container and any service environment
                                      variables.
                                    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[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
                                          spec.nodeName, spec.serviceAccountName,
                                          status.hostIP, status.podIP, status.podIPs.'
                                        properties:
                                          apiVersion:
                                            description: Version of the schema the
                                              FieldPath is written in terms of, defaults
                                              to "v1".
                                            type: string
                                          fieldPath:
                                            description: Path of the field to select
                                              in the specified API version.
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        description: 'Selects a resource of the container:
                                          only resources limits and requests (limits.cpu,
                                          limits.memory, limits.ephemeral-storage,
                                          requests.cpu, requests.memory and requests.ephemeral-storage)
                                          are currently supported.'
                                        properties:
                                          containerName:
                                            description: 'Container name: required
                                              for volumes, optional for env vars'
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: Specifies the output format
                                              of the exposed resources, defaults to
                                              "1"
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            description: 'Required: resource to select'
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        description: Selects a key of a secret in
                                          the pod's namespace
                                        properties:
                                          key:
                                            description: The key of the secret to
                                              select from.  Must be a valid secret
                                              key.
                                            type: string
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret
                                              or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              description: List of sources to populate environment
                                variables in the container. The keys defined within
                                a source must be a C_IDENTIFIER. All invalid keys
                                will be reported as an event when the container is
                                starting.
                              items:
                                description: EnvFromSource represents the source of
                                  a set of ConfigMaps
                                properties:
                                  configMapRef:
                                    description: The ConfigMap to select from
                                    properties:
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          TODO: Add other useful fields. apiVersion,
                                          kind, uid?'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap
                                          must be defined
                                        type: boolean
                                    type: object
                                  prefix:
                                    description: An optional identifier to prepend
                                      to each key in the ConfigMap. Must be a C_IDENTIFIER.
                                    type: string
                                  secretRef:
                                    description: The Secret to select from
                                    properties:
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          TODO: Add other useful fields. apiVersion,
                                          kind, uid?'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret must
                                          be defined
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              description: 'Docker image name. More info: https://kubernetes.'
                              type: string
                            imagePullPolicy:
                              description: 'Image pull policy. One of Always, Never,
                                IfNotPresent. Defaults to Always if :latest tag is
                                specified, or IfNotPresent otherwise. Cannot be updated.
                                More info: https://kubernetes.'
                              type: string
                            lifecycle:
                              description: Actions that the management system should
                                take in response to container lifecycle events. Cannot
                                be updated.
                              properties:
                                postStart:
                                  description: PostStart is called immediately after
                                    a container is created. If the handler fails,
                                    the container is terminated and restarted according
                                    to its restart policy.
                                  properties:
                                    exec:
                                      description: One and only one of the following
                                        should be specified. Exec specifies the action
                                        to take.
                                      properties:
                                        command:
                                          description: Command is the command line
                                            to execute inside the container, the working
                                            directory for the command  is root ('/')
                                            in the container's filesystem.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies the http request
                                        to perform.
                                      properties:
                                        host:
                                          description: Host name to connect to, defaults
                                            to the pod IP. You probably want to set
                                            "Host" in httpHeaders instead.
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the
                                            request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom
                                              header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: The header field name
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          description: Path to access on the HTTP
                                            server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Name or number of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: Scheme to use for connecting
                                            to the host. Defaults to HTTP.
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      description: 'TCPSocket specifies an action
                                        involving a TCP port. TCP hooks not yet supported
                                        TODO: implement a realistic TCP lifecycle
                                        hook'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect
                                            to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Number or name of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  description: PreStop is called immediately before
                                    a container is terminated due to an API request
                                    or management event such as liveness/startup probe
                                    failure, preemption, resource contention, etc.
                                  properties:
                                    exec:
                                      description: One and only one of the following
                                        should be specified. Exec specifies the action
                                        to take.
                                      properties:
                                        command:
                                          description: Command is the command line
                                            to execute inside the container, the working
                                            directory for the command  is root ('/')
                                            in the container's filesystem.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies the http request
                                        to perform.
                                      properties:
                                        host:
                                          description: Host name to connect to, defaults
                                            to the pod IP. You probably want to set
                                            "Host" in httpHeaders instead.
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the
                                            request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom
                                              header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: The header field name
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          description: Path to access on the HTTP
                                            server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Name or number of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: Scheme to use for connecting
                                            to the host. Defaults to HTTP.
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      description: 'TCPSocket specifies an action
                                        involving a TCP port. TCP hooks not yet supported
                                        TODO: implement a realistic TCP lifecycle
                                        hook'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect
                                            to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Number or name of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              description: 'Periodic probe of container liveness.
                                Container will be restarted if the probe fails. Cannot
                                be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              description: Name of the container specified as a DNS_LABEL.
                                Each container in a pod must have a unique name (DNS_LABEL).
                                Cannot be updated.
                              type: string
                            ports:
                              description: List of ports to expose from the container.
                                Exposing a port here gives the system additional information
                                about the network connections a container uses, but
                                is primarily informational.
                              items:
                                description: ContainerPort represents a network port
                                  in a single container.
                                properties:
                                  containerPort:
                                    description: Number of port to expose on the pod's
                                      IP address. This must be a valid port number,
                                      0 < x < 65536.
                                    format: int32
                                    type: integer
                                  hostIP:
                                    description: What host IP to bind the external
                                      port to.
                                    type: string
                                  hostPort:
                                    description: Number of port to expose on the host.
                                      If specified, this must be a valid port number,
                                      0 < x < 65536. If HostNetwork is specified,
                                      this must match ContainerPort. Most containers
                                      do not need this.
                                    format: int32
                                    type: integer
                                  name:
                                    description: If specified, this must be an IANA_SVC_NAME
                                      and unique within the pod. Each named port in
                                      a pod must have a unique name. Name for the
                                      port that can be referred to by services.
                                    type: string
                                  protocol:
                                    default: TCP
                                    description: Protocol for port. Must be UDP, TCP,
                                      or SCTP. Defaults to "TCP".
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              description: 'Periodic probe of container service readiness.
                                Container will be removed from service endpoints if
                                the probe fails. Cannot be updated. More info: https://kubernetes.'
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            resources:
                              description: 'Compute Resources required by this container.
                                Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              properties:
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Limits describes the maximum amount
                                    of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: Requests describes the minimum amount
                                    of compute resources required. If Requests is
                                    omitted for a container, it defaults to Limits
                                    if that is explicitly specified, otherwise to
                                    an implementation-defined value.
                                  type: object
                              type: object
                            securityContext:
                              description: 'SecurityContext defines the security options
                                the container should be run with. If set, the fields
                                of SecurityContext override the equivalent fields
                                of PodSecurityContext. More info: https://kubernetes.'
                              properties:
                                allowPrivilegeEscalation:
                                  description: AllowPrivilegeEscalation controls whether
                                    a process can gain more privileges than its parent
                                    process. This bool directly controls if the no_new_privs
                                    flag will be set on the container process.
                                  type: boolean
                                capabilities:
                                  description: The capabilities to add/drop when running
                                    containers. Defaults to the default set of capabilities
                                    granted by the container runtime.
                                  properties:
                                    add:
                                      description: Added capabilities
                                      items:
                                        description: Capability represent POSIX capabilities
                                          type
                                        type: string
                                      type: array
                                    drop:
                                      description: Removed capabilities
                                      items:
                                        description: Capability represent POSIX capabilities
                                          type
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  description: Run container in privileged mode. Processes
                                    in privileged containers are essentially equivalent
                                    to root on the host. Defaults to false.
                                  type: boolean
                                procMount:
                                  description: procMount denotes the type of proc
                                    mount to use for the containers. The default is
                                    DefaultProcMount which uses the container runtime
                                    defaults for readonly paths and masked paths.
                                  type: string
                                readOnlyRootFilesystem:
                                  description: Whether this container has a read-only
                                    root filesystem. Default is false.
                                  type: boolean
                                runAsGroup:
                                  description: The GID to run the entrypoint of the
                                    container process. Uses runtime default if unset.
                                    May also be set in PodSecurityContext.
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  description: Indicates that the container must run
                                    as a non-root user. If true, the Kubelet will
                                    validate the image at runtime to ensure that it
                                    does not run as UID 0 (root) and fail to start
                                    the container if it does.
                                  type: boolean
                                runAsUser:
                                  description: The UID to run the entrypoint of the
                                    container process. Defaults to user specified
                                    in image metadata if unspecified. May also be
                                    set in PodSecurityContext.
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  description: The SELinux context to be applied to
                                    the container. If unspecified, the container runtime
                                    will allocate a random SELinux context for each
                                    container.  May also be set in PodSecurityContext.
                                  properties:
                                    level:
                                      description: Level is SELinux level label that
                                        applies to the container.
                                      type: string
                                    role:
                                      description: Role is a SELinux role label that
                                        applies to the container.
                                      type: string
                                    type:
                                      description: Type is a SELinux type label that
                                        applies to the container.
                                      type: string
                                    user:
                                      description: User is a SELinux user label that
                                        applies to the container.
                                      type: string
                                  type: object
                                seccompProfile:
                                  description: The seccomp options to use by this
                                    container. If seccomp options are provided at
                                    both the pod & container level, the container
                                    options override the pod options.
                                  properties:
                                    localhostProfile:
                                      description: localhostProfile indicates a profile
                                        defined in a file on the node should be used.
                                        The profile must be preconfigured on the node
                                        to work.
                                      type: string
                                    type:
                                      description: "type indicates which kind of seccomp
                                        profile will be applied. Valid options are:
                                        \n Localhost - a profile defined in a file
                                        on the node should be used."
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  description: The Windows specific settings applied
                                    to all containers. If unspecified, the options
                                    from the PodSecurityContext will be used.
                                  properties:
                                    gmsaCredentialSpec:
                                      description: GMSACredentialSpec is where the
                                        GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                        inlines the contents of the GMSA credential
                                        spec named by the GMSACredentialSpecName field.
                                      type: string
                                    gmsaCredentialSpecName:
                                      description: GMSACredentialSpecName is the name
                                        of the GMSA credential spec to use.
                                      type: string
                                    hostProcess:
                                      description: HostProcess determines if a container
                                        should be run as a 'Host Process' container.
                                        This field is alpha-level and will only be
                                        honored by components that enable the WindowsHostProcessContainers
                                        feature flag.
                                      type: boolean
                                    runAsUserName:
                                      description: The UserName in Windows to run
                                        the entrypoint of the container process. Defaults
                                        to the user specified in image metadata if
                                        unspecified. May also be set in PodSecurityContext.
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              description: StartupProbe indicates that the Pod has
                                successfully initialized. If specified, no other probes
                                are executed until this completes successfully.
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              description: Whether this container should allocate
                                a buffer for stdin in the container runtime. If this
                                is not set, reads from stdin in the container will
                                always result in EOF. Default is false.
                              type: boolean
                            stdinOnce:
                              description: Whether the container runtime should close
                                the stdin channel after it has been opened by a single
                                attach. When stdin is true the stdin stream will remain
                                open across multiple attach sessions.
                              type: boolean
                            terminationMessagePath:
                              description: 'Optional: Path at which the file to which
                                the container''s termination message will be written
                                is mounted into the container''s filesystem.'
                              type: string
                            terminationMessagePolicy:
                              description: Indicate how the termination message should
                                be populated. File will use the contents of terminationMessagePath
                                to populate the container status message on both success
                                and failure.
                              type: string
                            tty:
                              description: Whether this container should allocate
                                a TTY for itself, also requires 'stdin' to be true.
                                Default is false.
                              type: boolean
                            volumeDevices:
                              description: volumeDevices is the list of block devices
                                to be used by the container.
                              items:
                                description: volumeDevice describes a mapping of a
                                  raw block device within a container.
                                properties:
                                  devicePath:
                                    description: devicePath is the path inside of
                                      the container that the device will be mapped
                                      to.
                                    type: string
                                  name:
                                    description: name must match the name of a persistentVolumeClaim
                                      in the pod
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              description: Pod volumes to mount into the container's
                                filesystem. Cannot be updated.
                              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.
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              description: Container's working directory. If not specified,
                                the container runtime's default will be used, which
                                might be configured in the container image. Cannot
                                be updated.
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      dnsConfig:
                        description: Specifies the DNS parameters of a pod. Parameters
                          specified here will be merged to the generated DNS configuration
                          based on DNSPolicy.
                        properties:
                          nameservers:
                            description: A list of DNS name server IP addresses. This
                              will be appended to the base nameservers generated from
                              DNSPolicy. Duplicated nameservers will be removed.
                            items:
                              type: string
                            type: array
                          options:
                            description: A list of DNS resolver options. This will
                              be merged with the base options generated from DNSPolicy.
                              Duplicated entries will be removed.
                            items:
                              description: PodDNSConfigOption defines DNS resolver
                                options of a pod.
                              properties:
                                name:
                                  description: Required.
                                  type: string
                                value:
                                  type: string
                              type: object
                            type: array
                          searches:
                            description: A list of DNS search domains for host-name
                              lookup. This will be appended to the base search paths
                              generated from DNSPolicy. Duplicated search paths will
                              be removed.
                            items:
                              type: string
                            type: array
                        type: object
                      dnsPolicy:
                        description: Set DNS policy for the pod. Defaults to "ClusterFirst".
                          Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst',
                          'Default' or 'None'.
                        type: string
                      enableServiceLinks:
                        description: 'EnableServiceLinks indicates whether information
                          about services should be injected into pod''s environment
                          variables, matching the syntax of Docker links. Optional:
                          Defaults to true.'
                        type: boolean
                      ephemeralContainers:
                        description: List of ephemeral containers run in this pod.
                          Ephemeral containers may be run in an existing pod to perform
                          user-initiated actions such as debugging.
                        items:
                          description: An EphemeralContainer is a container that may
                            be added temporarily to an existing pod for user-initiated
                            activities such as debugging.
                          properties:
                            args:
                              description: Arguments to the entrypoint. The docker
                                image's CMD is used if this is not provided. Variable
                                references $(VAR_NAME) are expanded using the container's
                                environment.
                              items:
                                type: string
                              type: array
                            command:
                              description: Entrypoint array. Not executed within a
                                shell. The docker image's ENTRYPOINT is used if this
                                is not provided. Variable references $(VAR_NAME) are
                                expanded using the container's environment.
                              items:
                                type: string
                              type: array
                            env:
                              description: List of environment variables to set in
                                the container. Cannot be updated.
                              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 previously defined environment
                                      variables in the container and any service environment
                                      variables.
                                    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[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
                                          spec.nodeName, spec.serviceAccountName,
                                          status.hostIP, status.podIP, status.podIPs.'
                                        properties:
                                          apiVersion:
                                            description: Version of the schema the
                                              FieldPath is written in terms of, defaults
                                              to "v1".
                                            type: string
                                          fieldPath:
                                            description: Path of the field to select
                                              in the specified API version.
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        description: 'Selects a resource of the container:
                                          only resources limits and requests (limits.cpu,
                                          limits.memory, limits.ephemeral-storage,
                                          requests.cpu, requests.memory and requests.ephemeral-storage)
                                          are currently supported.'
                                        properties:
                                          containerName:
                                            description: 'Container name: required
                                              for volumes, optional for env vars'
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: Specifies the output format
                                              of the exposed resources, defaults to
                                              "1"
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            description: 'Required: resource to select'
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        description: Selects a key of a secret in
                                          the pod's namespace
                                        properties:
                                          key:
                                            description: The key of the secret to
                                              select from.  Must be a valid secret
                                              key.
                                            type: string
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret
                                              or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              description: List of sources to populate environment
                                variables in the container. The keys defined within
                                a source must be a C_IDENTIFIER. All invalid keys
                                will be reported as an event when the container is
                                starting.
                              items:
                                description: EnvFromSource represents the source of
                                  a set of ConfigMaps
                                properties:
                                  configMapRef:
                                    description: The ConfigMap to select from
                                    properties:
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          TODO: Add other useful fields. apiVersion,
                                          kind, uid?'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap
                                          must be defined
                                        type: boolean
                                    type: object
                                  prefix:
                                    description: An optional identifier to prepend
                                      to each key in the ConfigMap. Must be a C_IDENTIFIER.
                                    type: string
                                  secretRef:
                                    description: The Secret to select from
                                    properties:
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          TODO: Add other useful fields. apiVersion,
                                          kind, uid?'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret must
                                          be defined
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images'
                              type: string
                            imagePullPolicy:
                              description: 'Image pull policy. One of Always, Never,
                                IfNotPresent. Defaults to Always if :latest tag is
                                specified, or IfNotPresent otherwise. Cannot be updated.
                                More info: https://kubernetes.'
                              type: string
                            lifecycle:
                              description: Lifecycle is not allowed for ephemeral
                                containers.
                              properties:
                                postStart:
                                  description: PostStart is called immediately after
                                    a container is created. If the handler fails,
                                    the container is terminated and restarted according
                                    to its restart policy.
                                  properties:
                                    exec:
                                      description: One and only one of the following
                                        should be specified. Exec specifies the action
                                        to take.
                                      properties:
                                        command:
                                          description: Command is the command line
                                            to execute inside the container, the working
                                            directory for the command  is root ('/')
                                            in the container's filesystem.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies the http request
                                        to perform.
                                      properties:
                                        host:
                                          description: Host name to connect to, defaults
                                            to the pod IP. You probably want to set
                                            "Host" in httpHeaders instead.
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the
                                            request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom
                                              header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: The header field name
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          description: Path to access on the HTTP
                                            server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Name or number of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: Scheme to use for connecting
                                            to the host. Defaults to HTTP.
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      description: 'TCPSocket specifies an action
                                        involving a TCP port. TCP hooks not yet supported
                                        TODO: implement a realistic TCP lifecycle
                                        hook'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect
                                            to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Number or name of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  description: PreStop is called immediately before
                                    a container is terminated due to an API request
                                    or management event such as liveness/startup probe
                                    failure, preemption, resource contention, etc.
                                  properties:
                                    exec:
                                      description: One and only one of the following
                                        should be specified. Exec specifies the action
                                        to take.
                                      properties:
                                        command:
                                          description: Command is the command line
                                            to execute inside the container, the working
                                            directory for the command  is root ('/')
                                            in the container's filesystem.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies the http request
                                        to perform.
                                      properties:
                                        host:
                                          description: Host name to connect to, defaults
                                            to the pod IP. You probably want to set
                                            "Host" in httpHeaders instead.
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the
                                            request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom
                                              header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: The header field name
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          description: Path to access on the HTTP
                                            server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Name or number of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: Scheme to use for connecting
                                            to the host. Defaults to HTTP.
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      description: 'TCPSocket specifies an action
                                        involving a TCP port. TCP hooks not yet supported
                                        TODO: implement a realistic TCP lifecycle
                                        hook'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect
                                            to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Number or name of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              description: Probes are not allowed for ephemeral containers.
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              description: Name of the ephemeral container specified
                                as a DNS_LABEL. This name must be unique among all
                                containers, init containers and ephemeral containers.
                              type: string
                            ports:
                              description: Ports are not allowed for ephemeral containers.
                              items:
                                description: ContainerPort represents a network port
                                  in a single container.
                                properties:
                                  containerPort:
                                    description: Number of port to expose on the pod's
                                      IP address. This must be a valid port number,
                                      0 < x < 65536.
                                    format: int32
                                    type: integer
                                  hostIP:
                                    description: What host IP to bind the external
                                      port to.
                                    type: string
                                  hostPort:
                                    description: Number of port to expose on the host.
                                      If specified, this must be a valid port number,
                                      0 < x < 65536. If HostNetwork is specified,
                                      this must match ContainerPort. Most containers
                                      do not need this.
                                    format: int32
                                    type: integer
                                  name:
                                    description: If specified, this must be an IANA_SVC_NAME
                                      and unique within the pod. Each named port in
                                      a pod must have a unique name. Name for the
                                      port that can be referred to by services.
                                    type: string
                                  protocol:
                                    default: TCP
                                    description: Protocol for port. Must be UDP, TCP,
                                      or SCTP. Defaults to "TCP".
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                            readinessProbe:
                              description: Probes are not allowed for ephemeral containers.
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            resources:
                              description: Resources are not allowed for ephemeral
                                containers. Ephemeral containers use spare resources
                                already allocated to the pod.
                              properties:
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Limits describes the maximum amount
                                    of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: Requests describes the minimum amount
                                    of compute resources required. If Requests is
                                    omitted for a container, it defaults to Limits
                                    if that is explicitly specified, otherwise to
                                    an implementation-defined value.
                                  type: object
                              type: object
                            securityContext:
                              description: 'Optional: SecurityContext defines the
                                security options the ephemeral container should be
                                run with. If set, the fields of SecurityContext override
                                the equivalent fields of PodSecurityContext.'
                              properties:
                                allowPrivilegeEscalation:
                                  description: AllowPrivilegeEscalation controls whether
                                    a process can gain more privileges than its parent
                                    process. This bool directly controls if the no_new_privs
                                    flag will be set on the container process.
                                  type: boolean
                                capabilities:
                                  description: The capabilities to add/drop when running
                                    containers. Defaults to the default set of capabilities
                                    granted by the container runtime.
                                  properties:
                                    add:
                                      description: Added capabilities
                                      items:
                                        description: Capability represent POSIX capabilities
                                          type
                                        type: string
                                      type: array
                                    drop:
                                      description: Removed capabilities
                                      items:
                                        description: Capability represent POSIX capabilities
                                          type
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  description: Run container in privileged mode. Processes
                                    in privileged containers are essentially equivalent
                                    to root on the host. Defaults to false.
                                  type: boolean
                                procMount:
                                  description: procMount denotes the type of proc
                                    mount to use for the containers. The default is
                                    DefaultProcMount which uses the container runtime
                                    defaults for readonly paths and masked paths.
                                  type: string
                                readOnlyRootFilesystem:
                                  description: Whether this container has a read-only
                                    root filesystem. Default is false.
                                  type: boolean
                                runAsGroup:
                                  description: The GID to run the entrypoint of the
                                    container process. Uses runtime default if unset.
                                    May also be set in PodSecurityContext.
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  description: Indicates that the container must run
                                    as a non-root user. If true, the Kubelet will
                                    validate the image at runtime to ensure that it
                                    does not run as UID 0 (root) and fail to start
                                    the container if it does.
                                  type: boolean
                                runAsUser:
                                  description: The UID to run the entrypoint of the
                                    container process. Defaults to user specified
                                    in image metadata if unspecified. May also be
                                    set in PodSecurityContext.
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  description: The SELinux context to be applied to
                                    the container. If unspecified, the container runtime
                                    will allocate a random SELinux context for each
                                    container.  May also be set in PodSecurityContext.
                                  properties:
                                    level:
                                      description: Level is SELinux level label that
                                        applies to the container.
                                      type: string
                                    role:
                                      description: Role is a SELinux role label that
                                        applies to the container.
                                      type: string
                                    type:
                                      description: Type is a SELinux type label that
                                        applies to the container.
                                      type: string
                                    user:
                                      description: User is a SELinux user label that
                                        applies to the container.
                                      type: string
                                  type: object
                                seccompProfile:
                                  description: The seccomp options to use by this
                                    container. If seccomp options are provided at
                                    both the pod & container level, the container
                                    options override the pod options.
                                  properties:
                                    localhostProfile:
                                      description: localhostProfile indicates a profile
                                        defined in a file on the node should be used.
                                        The profile must be preconfigured on the node
                                        to work.
                                      type: string
                                    type:
                                      description: "type indicates which kind of seccomp
                                        profile will be applied. Valid options are:
                                        \n Localhost - a profile defined in a file
                                        on the node should be used."
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  description: The Windows specific settings applied
                                    to all containers. If unspecified, the options
                                    from the PodSecurityContext will be used.
                                  properties:
                                    gmsaCredentialSpec:
                                      description: GMSACredentialSpec is where the
                                        GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                        inlines the contents of the GMSA credential
                                        spec named by the GMSACredentialSpecName field.
                                      type: string
                                    gmsaCredentialSpecName:
                                      description: GMSACredentialSpecName is the name
                                        of the GMSA credential spec to use.
                                      type: string
                                    hostProcess:
                                      description: HostProcess determines if a container
                                        should be run as a 'Host Process' container.
                                        This field is alpha-level and will only be
                                        honored by components that enable the WindowsHostProcessContainers
                                        feature flag.
                                      type: boolean
                                    runAsUserName:
                                      description: The UserName in Windows to run
                                        the entrypoint of the container process. Defaults
                                        to the user specified in image metadata if
                                        unspecified. May also be set in PodSecurityContext.
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              description: Probes are not allowed for ephemeral containers.
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              description: Whether this container should allocate
                                a buffer for stdin in the container runtime. If this
                                is not set, reads from stdin in the container will
                                always result in EOF. Default is false.
                              type: boolean
                            stdinOnce:
                              description: Whether the container runtime should close
                                the stdin channel after it has been opened by a single
                                attach. When stdin is true the stdin stream will remain
                                open across multiple attach sessions.
                              type: boolean
                            targetContainerName:
                              description: If set, the name of the container from
                                PodSpec that this ephemeral container targets. The
                                ephemeral container will be run in the namespaces
                                (IPC, PID, etc) of this container.
                              type: string
                            terminationMessagePath:
                              description: 'Optional: Path at which the file to which
                                the container''s termination message will be written
                                is mounted into the container''s filesystem.'
                              type: string
                            terminationMessagePolicy:
                              description: Indicate how the termination message should
                                be populated. File will use the contents of terminationMessagePath
                                to populate the container status message on both success
                                and failure.
                              type: string
                            tty:
                              description: Whether this container should allocate
                                a TTY for itself, also requires 'stdin' to be true.
                                Default is false.
                              type: boolean
                            volumeDevices:
                              description: volumeDevices is the list of block devices
                                to be used by the container.
                              items:
                                description: volumeDevice describes a mapping of a
                                  raw block device within a container.
                                properties:
                                  devicePath:
                                    description: devicePath is the path inside of
                                      the container that the device will be mapped
                                      to.
                                    type: string
                                  name:
                                    description: name must match the name of a persistentVolumeClaim
                                      in the pod
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              description: Pod volumes to mount into the container's
                                filesystem. Cannot be updated.
                              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.
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              description: Container's working directory. If not specified,
                                the container runtime's default will be used, which
                                might be configured in the container image. Cannot
                                be updated.
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      hostAliases:
                        description: HostAliases is an optional list of hosts and
                          IPs that will be injected into the pod's hosts file if specified.
                          This is only valid for non-hostNetwork pods.
                        items:
                          description: HostAlias holds the mapping between IP and
                            hostnames that will be injected as an entry in the pod's
                            hosts file.
                          properties:
                            hostnames:
                              description: Hostnames for the above IP address.
                              items:
                                type: string
                              type: array
                            ip:
                              description: IP address of the host file entry.
                              type: string
                          type: object
                        type: array
                      hostIPC:
                        description: 'Use the host''s ipc namespace. Optional: Default
                          to false.'
                        type: boolean
                      hostNetwork:
                        description: Host networking requested for this pod. Use the
                          host's network namespace. If this option is set, the ports
                          that will be used must be specified. Default to false.
                        type: boolean
                      hostPID:
                        description: 'Use the host''s pid namespace. Optional: Default
                          to false.'
                        type: boolean
                      hostname:
                        description: Specifies the hostname of the Pod If not specified,
                          the pod's hostname will be set to a system-defined value.
                        type: string
                      imagePullSecrets:
                        description: ImagePullSecrets is an optional list of references
                          to secrets in the same namespace to use for pulling any
                          of the images used by this PodSpec.
                        items:
                          description: LocalObjectReference contains enough information
                            to let you locate the referenced object inside the same
                            namespace.
                          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
                        type: array
                      initContainers:
                        description: List of initialization containers belonging to
                          the pod. Init containers are executed in order prior to
                          containers being started.
                        items:
                          description: A single application container that you want
                            to run within a pod.
                          properties:
                            args:
                              description: Arguments to the entrypoint. The docker
                                image's CMD is used if this is not provided. Variable
                                references $(VAR_NAME) are expanded using the container's
                                environment.
                              items:
                                type: string
                              type: array
                            command:
                              description: Entrypoint array. Not executed within a
                                shell. The docker image's ENTRYPOINT is used if this
                                is not provided. Variable references $(VAR_NAME) are
                                expanded using the container's environment.
                              items:
                                type: string
                              type: array
                            env:
                              description: List of environment variables to set in
                                the container. Cannot be updated.
                              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 previously defined environment
                                      variables in the container and any service environment
                                      variables.
                                    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[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
                                          spec.nodeName, spec.serviceAccountName,
                                          status.hostIP, status.podIP, status.podIPs.'
                                        properties:
                                          apiVersion:
                                            description: Version of the schema the
                                              FieldPath is written in terms of, defaults
                                              to "v1".
                                            type: string
                                          fieldPath:
                                            description: Path of the field to select
                                              in the specified API version.
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        description: 'Selects a resource of the container:
                                          only resources limits and requests (limits.cpu,
                                          limits.memory, limits.ephemeral-storage,
                                          requests.cpu, requests.memory and requests.ephemeral-storage)
                                          are currently supported.'
                                        properties:
                                          containerName:
                                            description: 'Container name: required
                                              for volumes, optional for env vars'
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: Specifies the output format
                                              of the exposed resources, defaults to
                                              "1"
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            description: 'Required: resource to select'
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        description: Selects a key of a secret in
                                          the pod's namespace
                                        properties:
                                          key:
                                            description: The key of the secret to
                                              select from.  Must be a valid secret
                                              key.
                                            type: string
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret
                                              or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              description: List of sources to populate environment
                                variables in the container. The keys defined within
                                a source must be a C_IDENTIFIER. All invalid keys
                                will be reported as an event when the container is
                                starting.
                              items:
                                description: EnvFromSource represents the source of
                                  a set of ConfigMaps
                                properties:
                                  configMapRef:
                                    description: The ConfigMap to select from
                                    properties:
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          TODO: Add other useful fields. apiVersion,
                                          kind, uid?'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap
                                          must be defined
                                        type: boolean
                                    type: object
                                  prefix:
                                    description: An optional identifier to prepend
                                      to each key in the ConfigMap. Must be a C_IDENTIFIER.
                                    type: string
                                  secretRef:
                                    description: The Secret to select from
                                    properties:
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                          TODO: Add other useful fields. apiVersion,
                                          kind, uid?'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret must
                                          be defined
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              description: 'Docker image name. More info: https://kubernetes.'
                              type: string
                            imagePullPolicy:
                              description: 'Image pull policy. One of Always, Never,
                                IfNotPresent. Defaults to Always if :latest tag is
                                specified, or IfNotPresent otherwise. Cannot be updated.
                                More info: https://kubernetes.'
                              type: string
                            lifecycle:
                              description: Actions that the management system should
                                take in response to container lifecycle events. Cannot
                                be updated.
                              properties:
                                postStart:
                                  description: PostStart is called immediately after
                                    a container is created. If the handler fails,
                                    the container is terminated and restarted according
                                    to its restart policy.
                                  properties:
                                    exec:
                                      description: One and only one of the following
                                        should be specified. Exec specifies the action
                                        to take.
                                      properties:
                                        command:
                                          description: Command is the command line
                                            to execute inside the container, the working
                                            directory for the command  is root ('/')
                                            in the container's filesystem.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies the http request
                                        to perform.
                                      properties:
                                        host:
                                          description: Host name to connect to, defaults
                                            to the pod IP. You probably want to set
                                            "Host" in httpHeaders instead.
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the
                                            request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom
                                              header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: The header field name
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          description: Path to access on the HTTP
                                            server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Name or number of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: Scheme to use for connecting
                                            to the host. Defaults to HTTP.
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      description: 'TCPSocket specifies an action
                                        involving a TCP port. TCP hooks not yet supported
                                        TODO: implement a realistic TCP lifecycle
                                        hook'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect
                                            to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Number or name of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  description: PreStop is called immediately before
                                    a container is terminated due to an API request
                                    or management event such as liveness/startup probe
                                    failure, preemption, resource contention, etc.
                                  properties:
                                    exec:
                                      description: One and only one of the following
                                        should be specified. Exec specifies the action
                                        to take.
                                      properties:
                                        command:
                                          description: Command is the command line
                                            to execute inside the container, the working
                                            directory for the command  is root ('/')
                                            in the container's filesystem.
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies the http request
                                        to perform.
                                      properties:
                                        host:
                                          description: Host name to connect to, defaults
                                            to the pod IP. You probably want to set
                                            "Host" in httpHeaders instead.
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the
                                            request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom
                                              header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: The header field name
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          description: Path to access on the HTTP
                                            server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Name or number of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: Scheme to use for connecting
                                            to the host. Defaults to HTTP.
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      description: 'TCPSocket specifies an action
                                        involving a TCP port. TCP hooks not yet supported
                                        TODO: implement a realistic TCP lifecycle
                                        hook'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect
                                            to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Number or name of the port
                                            to access on the container. Number must
                                            be in the range 1 to 65535. Name must
                                            be an IANA_SVC_NAME.
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              description: 'Periodic probe of container liveness.
                                Container will be restarted if the probe fails. Cannot
                                be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              description: Name of the container specified as a DNS_LABEL.
                                Each container in a pod must have a unique name (DNS_LABEL).
                                Cannot be updated.
                              type: string
                            ports:
                              description: List of ports to expose from the container.
                                Exposing a port here gives the system additional information
                                about the network connections a container uses, but
                                is primarily informational.
                              items:
                                description: ContainerPort represents a network port
                                  in a single container.
                                properties:
                                  containerPort:
                                    description: Number of port to expose on the pod's
                                      IP address. This must be a valid port number,
                                      0 < x < 65536.
                                    format: int32
                                    type: integer
                                  hostIP:
                                    description: What host IP to bind the external
                                      port to.
                                    type: string
                                  hostPort:
                                    description: Number of port to expose on the host.
                                      If specified, this must be a valid port number,
                                      0 < x < 65536. If HostNetwork is specified,
                                      this must match ContainerPort. Most containers
                                      do not need this.
                                    format: int32
                                    type: integer
                                  name:
                                    description: If specified, this must be an IANA_SVC_NAME
                                      and unique within the pod. Each named port in
                                      a pod must have a unique name. Name for the
                                      port that can be referred to by services.
                                    type: string
                                  protocol:
                                    default: TCP
                                    description: Protocol for port. Must be UDP, TCP,
                                      or SCTP. Defaults to "TCP".
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              description: 'Periodic probe of container service readiness.
                                Container will be removed from service endpoints if
                                the probe fails. Cannot be updated. More info: https://kubernetes.'
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            resources:
                              description: 'Compute Resources required by this container.
                                Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              properties:
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Limits describes the maximum amount
                                    of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: Requests describes the minimum amount
                                    of compute resources required. If Requests is
                                    omitted for a container, it defaults to Limits
                                    if that is explicitly specified, otherwise to
                                    an implementation-defined value.
                                  type: object
                              type: object
                            securityContext:
                              description: 'SecurityContext defines the security options
                                the container should be run with. If set, the fields
                                of SecurityContext override the equivalent fields
                                of PodSecurityContext. More info: https://kubernetes.'
                              properties:
                                allowPrivilegeEscalation:
                                  description: AllowPrivilegeEscalation controls whether
                                    a process can gain more privileges than its parent
                                    process. This bool directly controls if the no_new_privs
                                    flag will be set on the container process.
                                  type: boolean
                                capabilities:
                                  description: The capabilities to add/drop when running
                                    containers. Defaults to the default set of capabilities
                                    granted by the container runtime.
                                  properties:
                                    add:
                                      description: Added capabilities
                                      items:
                                        description: Capability represent POSIX capabilities
                                          type
                                        type: string
                                      type: array
                                    drop:
                                      description: Removed capabilities
                                      items:
                                        description: Capability represent POSIX capabilities
                                          type
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  description: Run container in privileged mode. Processes
                                    in privileged containers are essentially equivalent
                                    to root on the host. Defaults to false.
                                  type: boolean
                                procMount:
                                  description: procMount denotes the type of proc
                                    mount to use for the containers. The default is
                                    DefaultProcMount which uses the container runtime
                                    defaults for readonly paths and masked paths.
                                  type: string
                                readOnlyRootFilesystem:
                                  description: Whether this container has a read-only
                                    root filesystem. Default is false.
                                  type: boolean
                                runAsGroup:
                                  description: The GID to run the entrypoint of the
                                    container process. Uses runtime default if unset.
                                    May also be set in PodSecurityContext.
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  description: Indicates that the container must run
                                    as a non-root user. If true, the Kubelet will
                                    validate the image at runtime to ensure that it
                                    does not run as UID 0 (root) and fail to start
                                    the container if it does.
                                  type: boolean
                                runAsUser:
                                  description: The UID to run the entrypoint of the
                                    container process. Defaults to user specified
                                    in image metadata if unspecified. May also be
                                    set in PodSecurityContext.
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  description: The SELinux context to be applied to
                                    the container. If unspecified, the container runtime
                                    will allocate a random SELinux context for each
                                    container.  May also be set in PodSecurityContext.
                                  properties:
                                    level:
                                      description: Level is SELinux level label that
                                        applies to the container.
                                      type: string
                                    role:
                                      description: Role is a SELinux role label that
                                        applies to the container.
                                      type: string
                                    type:
                                      description: Type is a SELinux type label that
                                        applies to the container.
                                      type: string
                                    user:
                                      description: User is a SELinux user label that
                                        applies to the container.
                                      type: string
                                  type: object
                                seccompProfile:
                                  description: The seccomp options to use by this
                                    container. If seccomp options are provided at
                                    both the pod & container level, the container
                                    options override the pod options.
                                  properties:
                                    localhostProfile:
                                      description: localhostProfile indicates a profile
                                        defined in a file on the node should be used.
                                        The profile must be preconfigured on the node
                                        to work.
                                      type: string
                                    type:
                                      description: "type indicates which kind of seccomp
                                        profile will be applied. Valid options are:
                                        \n Localhost - a profile defined in a file
                                        on the node should be used."
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  description: The Windows specific settings applied
                                    to all containers. If unspecified, the options
                                    from the PodSecurityContext will be used.
                                  properties:
                                    gmsaCredentialSpec:
                                      description: GMSACredentialSpec is where the
                                        GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                        inlines the contents of the GMSA credential
                                        spec named by the GMSACredentialSpecName field.
                                      type: string
                                    gmsaCredentialSpecName:
                                      description: GMSACredentialSpecName is the name
                                        of the GMSA credential spec to use.
                                      type: string
                                    hostProcess:
                                      description: HostProcess determines if a container
                                        should be run as a 'Host Process' container.
                                        This field is alpha-level and will only be
                                        honored by components that enable the WindowsHostProcessContainers
                                        feature flag.
                                      type: boolean
                                    runAsUserName:
                                      description: The UserName in Windows to run
                                        the entrypoint of the container process. Defaults
                                        to the user specified in image metadata if
                                        unspecified. May also be set in PodSecurityContext.
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              description: StartupProbe indicates that the Pod has
                                successfully initialized. If specified, no other probes
                                are executed until this completes successfully.
                              properties:
                                exec:
                                  description: One and only one of the following should
                                    be specified. Exec specifies the action to take.
                                  properties:
                                    command:
                                      description: Command is the command line to
                                        execute inside the container, the working
                                        directory for the command  is root ('/') in
                                        the container's filesystem.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  description: Minimum consecutive failures for the
                                    probe to be considered failed after having succeeded.
                                    Defaults to 3. Minimum value is 1.
                                  format: int32
                                  type: integer
                                httpGet:
                                  description: HTTPGet specifies the http request
                                    to perform.
                                  properties:
                                    host:
                                      description: Host name to connect to, defaults
                                        to the pod IP. You probably want to set "Host"
                                        in httpHeaders instead.
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request.
                                        HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom
                                          header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: The header field name
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Name or number of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: Scheme to use for connecting to
                                        the host. Defaults to HTTP.
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container
                                    has started before liveness probes are initiated.
                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: How often (in seconds) to perform the
                                    probe. Default to 10 seconds. Minimum value is
                                    1.
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: Minimum consecutive successes for the
                                    probe to be considered successful after having
                                    failed. Defaults to 1. Must be 1 for liveness
                                    and startup. Minimum value is 1.
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: 'TCPSocket specifies an action involving
                                    a TCP port. TCP hooks not yet supported TODO:
                                    implement a realistic TCP lifecycle hook'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect
                                        to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Number or name of the port to access
                                        on the container. Number must be in the range
                                        1 to 65535. Name must be an IANA_SVC_NAME.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: Optional duration in seconds the pod
                                    needs to terminate gracefully upon probe failure.
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the
                                    probe times out. Defaults to 1 second. Minimum
                                    value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              description: Whether this container should allocate
                                a buffer for stdin in the container runtime. If this
                                is not set, reads from stdin in the container will
                                always result in EOF. Default is false.
                              type: boolean
                            stdinOnce:
                              description: Whether the container runtime should close
                                the stdin channel after it has been opened by a single
                                attach. When stdin is true the stdin stream will remain
                                open across multiple attach sessions.
                              type: boolean
                            terminationMessagePath:
                              description: 'Optional: Path at which the file to which
                                the container''s termination message will be written
                                is mounted into the container''s filesystem.'
                              type: string
                            terminationMessagePolicy:
                              description: Indicate how the termination message should
                                be populated. File will use the contents of terminationMessagePath
                                to populate the container status message on both success
                                and failure.
                              type: string
                            tty:
                              description: Whether this container should allocate
                                a TTY for itself, also requires 'stdin' to be true.
                                Default is false.
                              type: boolean
                            volumeDevices:
                              description: volumeDevices is the list of block devices
                                to be used by the container.
                              items:
                                description: volumeDevice describes a mapping of a
                                  raw block device within a container.
                                properties:
                                  devicePath:
                                    description: devicePath is the path inside of
                                      the container that the device will be mapped
                                      to.
                                    type: string
                                  name:
                                    description: name must match the name of a persistentVolumeClaim
                                      in the pod
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              description: Pod volumes to mount into the container's
                                filesystem. Cannot be updated.
                              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.
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              description: Container's working directory. If not specified,
                                the container runtime's default will be used, which
                                might be configured in the container image. Cannot
                                be updated.
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      nodeName:
                        description: NodeName is a request to schedule this pod onto
                          a specific node. If it is non-empty, the scheduler simply
                          schedules this pod onto that node, assuming that it fits
                          resource requirements.
                        type: string
                      nodeSelector:
                        additionalProperties:
                          type: string
                        description: 'NodeSelector is a selector which must be true
                          for the pod to fit on a node. Selector which must match
                          a node''s labels for the pod to be scheduled on that node.
                          More info: https://kubernetes.'
                        type: object
                        x-kubernetes-map-type: atomic
                      overhead:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: Overhead represents the resource overhead associated
                          with running a pod for a given RuntimeClass. This field
                          will be autopopulated at admission time by the RuntimeClass
                          admission controller.
                        type: object
                      preemptionPolicy:
                        description: PreemptionPolicy is the Policy for preempting
                          pods with lower priority. One of Never, PreemptLowerPriority.
                          Defaults to PreemptLowerPriority if unset.
                        type: string
                      priority:
                        description: The priority value. Various system components
                          use this field to find the priority of the pod. When Priority
                          Admission Controller is enabled, it prevents users from
                          setting this field.
                        format: int32
                        type: integer
                      priorityClassName:
                        description: If specified, indicates the pod's priority. "system-node-critical"
                          and "system-cluster-critical" are two special keywords which
                          indicate the highest priorities with the former being the
                          highest priority.
                        type: string
                      readinessGates:
                        description: If specified, all readiness gates will be evaluated
                          for pod readiness.
                        items:
                          description: PodReadinessGate contains the reference to
                            a pod condition
                          properties:
                            conditionType:
                              description: ConditionType refers to a condition in
                                the pod's condition list with matching type.
                              type: string
                          required:
                          - conditionType
                          type: object
                        type: array
                      restartPolicy:
                        description: 'Restart policy for all containers within the
                          pod. One of Always, OnFailure, Never. Default to Always.
                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy'
                        type: string
                      runtimeClassName:
                        description: RuntimeClassName refers to a RuntimeClass object
                          in the node.k8s.io group, which should be used to run this
                          pod.  If no RuntimeClass resource matches the named class,
                          the pod will not be run.
                        type: string
                      schedulerName:
                        description: If specified, the pod will be dispatched by specified
                          scheduler. If not specified, the pod will be dispatched
                          by default scheduler.
                        type: string
                      securityContext:
                        description: 'SecurityContext holds pod-level security attributes
                          and common container settings. Optional: Defaults to empty.  See
                          type description for default values of each field.'
                        properties:
                          fsGroup:
                            description: "A special supplemental group that applies
                              to all containers in a pod. Some volume types allow
                              the Kubelet to change the ownership of that volume to
                              be owned by the pod: \n 1. The owning GID will be the
                              FSGroup 2."
                            format: int64
                            type: integer
                          fsGroupChangePolicy:
                            description: fsGroupChangePolicy defines behavior of changing
                              ownership and permission of the volume before being
                              exposed inside Pod. This field will only apply to volume
                              types which support fsGroup based ownership(and permissions).
                            type: string
                          runAsGroup:
                            description: The GID to run the entrypoint of the container
                              process. Uses runtime default if unset. May also be
                              set in SecurityContext.
                            format: int64
                            type: integer
                          runAsNonRoot:
                            description: Indicates that the container must run as
                              a non-root user. If true, the Kubelet will validate
                              the image at runtime to ensure that it does not run
                              as UID 0 (root) and fail to start the container if it
                              does.
                            type: boolean
                          runAsUser:
                            description: The UID to run the entrypoint of the container
                              process. Defaults to user specified in image metadata
                              if unspecified. May also be set in SecurityContext.
                            format: int64
                            type: integer
                          seLinuxOptions:
                            description: The SELinux context to be applied to all
                              containers. If unspecified, the container runtime will
                              allocate a random SELinux context for each container.  May
                              also be set in SecurityContext.
                            properties:
                              level:
                                description: Level is SELinux level label that applies
                                  to the container.
                                type: string
                              role:
                                description: Role is a SELinux role label that applies
                                  to the container.
                                type: string
                              type:
                                description: Type is a SELinux type label that applies
                                  to the container.
                                type: string
                              user:
                                description: User is a SELinux user label that applies
                                  to the container.
                                type: string
                            type: object
                          seccompProfile:
                            description: The seccomp options to use by the containers
                              in this pod.
                            properties:
                              localhostProfile:
                                description: localhostProfile indicates a profile
                                  defined in a file on the node should be used. The
                                  profile must be preconfigured on the node to work.
                                type: string
                              type:
                                description: "type indicates which kind of seccomp
                                  profile will be applied. Valid options are: \n Localhost
                                  - a profile defined in a file on the node should
                                  be used."
                                type: string
                            required:
                            - type
                            type: object
                          supplementalGroups:
                            description: A list of groups applied to the first process
                              run in each container, in addition to the container's
                              primary GID.  If unspecified, no groups will be added
                              to any container.
                            items:
                              format: int64
                              type: integer
                            type: array
                          sysctls:
                            description: Sysctls hold a list of namespaced sysctls
                              used for the pod. Pods with unsupported sysctls (by
                              the container runtime) might fail to launch.
                            items:
                              description: Sysctl defines a kernel parameter to be
                                set
                              properties:
                                name:
                                  description: Name of a property to set
                                  type: string
                                value:
                                  description: Value of a property to set
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          windowsOptions:
                            description: The Windows specific settings applied to
                              all containers. If unspecified, the options within a
                              container's SecurityContext will be used.
                            properties:
                              gmsaCredentialSpec:
                                description: GMSACredentialSpec is where the GMSA
                                  admission webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                  inlines the contents of the GMSA credential spec
                                  named by the GMSACredentialSpecName field.
                                type: string
                              gmsaCredentialSpecName:
                                description: GMSACredentialSpecName is the name of
                                  the GMSA credential spec to use.
                                type: string
                              hostProcess:
                                description: HostProcess determines if a container
                                  should be run as a 'Host Process' container. This
                                  field is alpha-level and will only be honored by
                                  components that enable the WindowsHostProcessContainers
                                  feature flag.
                                type: boolean
                              runAsUserName:
                                description: The UserName in Windows to run the entrypoint
                                  of the container process. Defaults to the user specified
                                  in image metadata if unspecified. May also be set
                                  in PodSecurityContext.
                                type: string
                            type: object
                        type: object
                      serviceAccount:
                        description: 'DeprecatedServiceAccount is a depreciated alias
                          for ServiceAccountName. Deprecated: Use serviceAccountName
                          instead.'
                        type: string
                      serviceAccountName:
                        description: 'ServiceAccountName is the name of the ServiceAccount
                          to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/'
                        type: string
                      setHostnameAsFQDN:
                        description: If true the pod's hostname will be configured
                          as the pod's FQDN, rather than the leaf name (the default).
                        type: boolean
                      shareProcessNamespace:
                        description: Share a single process namespace between all
                          of the containers in a pod.
                        type: boolean
                      subdomain:
                        description: If specified, the fully qualified Pod hostname
                          will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster
                          domain>". If not specified, the pod will not have a domainname
                          at all.
                        type: string
                      terminationGracePeriodSeconds:
                        description: Optional duration in seconds the pod needs to
                          terminate gracefully. May be decreased in delete request.
                          Value must be non-negative integer.
                        format: int64
                        type: integer
                      tolerations:
                        description: If specified, the pod's tolerations.
                        items:
                          description: The pod this Toleration is attached to tolerates
                            any taint that matches the triple <key,value,effect> using
                            the matching operator <operator>.
                          properties:
                            effect:
                              description: Effect indicates the taint effect to match.
                                Empty means match all taint effects. When specified,
                                allowed values are NoSchedule, PreferNoSchedule and
                                NoExecute.
                              type: string
                            key:
                              description: Key is the taint key that the toleration
                                applies to. Empty means match all taint keys. If the
                                key is empty, operator must be Exists; this combination
                                means to match all values and all keys.
                              type: string
                            operator:
                              description: Operator represents a key's relationship
                                to the value. Valid operators are Exists and Equal.
                                Defaults to Equal. Exists is equivalent to wildcard
                                for value, so that a pod can tolerate all taints of
                                a particular category.
                              type: string
                            tolerationSeconds:
                              description: TolerationSeconds represents the period
                                of time the toleration (which must be of effect NoExecute,
                                otherwise this field is ignored) tolerates the taint.
                              format: int64
                              type: integer
                            value:
                              description: Value is the taint value the toleration
                                matches to. If the operator is Exists, the value should
                                be empty, otherwise just a regular string.
                              type: string
                          type: object
                        type: array
                      topologySpreadConstraints:
                        description: TopologySpreadConstraints describes how a group
                          of pods ought to spread across topology domains. Scheduler
                          will schedule pods in a way which abides by the constraints.
                          All topologySpreadConstraints are ANDed.
                        items:
                          description: TopologySpreadConstraint specifies how to spread
                            matching pods among the given topology.
                          properties:
                            labelSelector:
                              description: LabelSelector is used to find matching
                                pods. Pods that match this label selector are counted
                                to determine the number of pods in their corresponding
                                topology domain.
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label
                                    selector requirements. The requirements are ANDed.
                                  items:
                                    description: A label selector requirement is a
                                      selector that contains values, a key, and an
                                      operator that relates the key and values.
                                    properties:
                                      key:
                                        description: key is the label key that the
                                          selector applies to.
                                        type: string
                                      operator:
                                        description: operator represents a key's relationship
                                          to a set of values. Valid operators are
                                          In, NotIn, Exists and DoesNotExist.
                                        type: string
                                      values:
                                        description: values is an array of string
                                          values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the
                                          operator is Exists or DoesNotExist, the
                                          values array must be empty.
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: matchLabels is a map of {key,value}
                                    pairs.
                                  type: object
                              type: object
                            maxSkew:
                              description: MaxSkew describes the degree to which pods
                                may be unevenly distributed.
                              format: int32
                              type: integer
                            topologyKey:
                              description: TopologyKey is the key of node labels.
                                Nodes that have a label with this key and identical
                                values are considered to be in the same topology.
                              type: string
                            whenUnsatisfiable:
                              description: WhenUnsatisfiable indicates how to deal
                                with a pod if it doesn't satisfy the spread constraint.
                                - DoNotSchedule (default) tells the scheduler not
                                to schedule it.
                              type: string
                          required:
                          - maxSkew
                          - topologyKey
                          - whenUnsatisfiable
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - topologyKey
                        - whenUnsatisfiable
                        x-kubernetes-list-type: map
                      volumes:
                        description: 'List of volumes that can be mounted by containers
                          belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes'
                        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.'
                                  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".'
                                  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.'
                                  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 used to set permissions
                                    on created files by default. Must be an octal
                                    value between 0000 and 0777 or a decimal value
                                    between 0 and 511.'
                                  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.
                                  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 used to
                                          set permissions on this file. Must be an
                                          octal value between 0000 and 0777 or a decimal
                                          value between 0 and 511.'
                                        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
                                ephemeral storage that is handled by certain external
                                CSI drivers (Beta 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.
                                  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 Optional: mode bits
                                    used to set permissions on created files by default.'
                                  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 used to
                                          set permissions on this file, must be an
                                          octal value between 0000 and 0777 or a decimal
                                          value between 0 and 511.'
                                        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:
                                            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
                                    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.'
                                  type: string
                                sizeLimit:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Total amount of local storage required
                                    for this EmptyDir volume. The size limit is also
                                    applicable for memory medium.
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              type: object
                            ephemeral:
                              description: Ephemeral represents a volume that is handled
                                by a cluster storage driver. The volume's lifecycle
                                is tied to the pod that defines it - it will be created
                                before the pod starts, and deleted when the pod is
                                removed.
                              properties:
                                volumeClaimTemplate:
                                  description: Will be used to create a stand-alone
                                    PVC to provision the volume. The pod in which
                                    this EphemeralVolumeSource is embedded will be
                                    the owner of the PVC, i.e. the PVC will be deleted
                                    together with the pod.
                                  properties:
                                    metadata:
                                      description: May contain labels and annotations
                                        that will be copied into the PVC when creating
                                        it. No other fields are allowed and will be
                                        rejected during validation.
                                      type: object
                                    spec:
                                      description: The specification for the PersistentVolumeClaim.
                                        The entire content is copied unchanged into
                                        the PVC that gets created from this template.
                                        The same fields as in a PersistentVolumeClaim
                                        are also valid here.
                                      properties:
                                        accessModes:
                                          description: 'AccessModes contains the desired
                                            access modes the volume should have. More
                                            info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                          items:
                                            type: string
                                          type: array
                                        dataSource:
                                          description: 'This field can be used to
                                            specify either: * An existing VolumeSnapshot
                                            object (snapshot.storage.k8s.'
                                          properties:
                                            apiGroup:
                                              description: APIGroup is the group for
                                                the resource being referenced. If
                                                APIGroup is not specified, the specified
                                                Kind must be in the core API group.
                                                For any other third-party types, APIGroup
                                                is required.
                                              type: string
                                            kind:
                                              description: Kind is the type of resource
                                                being referenced
                                              type: string
                                            name:
                                              description: Name is the name of resource
                                                being referenced
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        dataSourceRef:
                                          description: Specifies the object from which
                                            to populate the volume with data, if a
                                            non-empty volume is desired. This may
                                            be any local object from a non-empty API
                                            group (non core object) or a PersistentVolumeClaim
                                            object.
                                          properties:
                                            apiGroup:
                                              description: APIGroup is the group for
                                                the resource being referenced. If
                                                APIGroup is not specified, the specified
                                                Kind must be in the core API group.
                                                For any other third-party types, APIGroup
                                                is required.
                                              type: string
                                            kind:
                                              description: Kind is the type of resource
                                                being referenced
                                              type: string
                                            name:
                                              description: Name is the name of resource
                                                being referenced
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        resources:
                                          description: 'Resources represents the minimum
                                            resources the volume should have. More
                                            info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                          properties:
                                            limits:
                                              additionalProperties:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              description: 'Limits describes the maximum
                                                amount of compute resources allowed.
                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                              type: object
                                            requests:
                                              additionalProperties:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              description: Requests describes the
                                                minimum amount of compute resources
                                                required. If Requests is omitted for
                                                a container, it defaults to Limits
                                                if that is explicitly specified, otherwise
                                                to an implementation-defined value.
                                              type: object
                                          type: object
                                        selector:
                                          description: A label query over volumes
                                            to consider for binding.
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list
                                                of label selector requirements. The
                                                requirements are ANDed.
                                              items:
                                                description: A label selector requirement
                                                  is a selector that contains values,
                                                  a key, and an operator that relates
                                                  the key and values.
                                                properties:
                                                  key:
                                                    description: key is the label
                                                      key that the selector applies
                                                      to.
                                                    type: string
                                                  operator:
                                                    description: operator represents
                                                      a key's relationship to a set
                                                      of values. Valid operators are
                                                      In, NotIn, Exists and DoesNotExist.
                                                    type: string
                                                  values:
                                                    description: values is an array
                                                      of string values. If the operator
                                                      is In or NotIn, the values array
                                                      must be non-empty. If the operator
                                                      is Exists or DoesNotExist, the
                                                      values array must be empty.
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: matchLabels is a map of
                                                {key,value} pairs.
                                              type: object
                                          type: object
                                        storageClassName:
                                          description: 'Name of the StorageClass required
                                            by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                          type: string
                                        volumeMode:
                                          description: volumeMode defines what type
                                            of volume is required by the claim. Value
                                            of Filesystem is implied when not included
                                            in claim spec.
                                          type: string
                                        volumeName:
                                          description: VolumeName is the binding reference
                                            to the PersistentVolume backing this claim.
                                          type: string
                                      type: object
                                  required:
                                  - spec
                                  type: object
                              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.
                                  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.'
                                  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.'
                                  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".'
                                  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.'
                              properties:
                                directory:
                                  description: Target directory name. Must not contain
                                    or start with '..'.  If '.' is supplied, the volume
                                    directory will be the git repository.
                                  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.
                              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.'
                                  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 used to set permissions on
                                    created files by default. Must be an octal value
                                    between 0000 and 0777 or a decimal value between
                                    0 and 511.
                                  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.
                                            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
                                                    used to set permissions on this
                                                    file. Must be an octal value between
                                                    0000 and 0777 or a decimal value
                                                    between 0 and 511.'
                                                  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
                                                    used to set permissions on this
                                                    file, must be an octal value between
                                                    0000 and 0777 or a decimal value
                                                    between 0 and 511.'
                                                  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:
                                                      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
                                              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.
                                            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
                                                    used to set permissions on this
                                                    file. Must be an octal value between
                                                    0000 and 0777 or a decimal value
                                                    between 0 and 511.'
                                                  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.
                                            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.
                                            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
                              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.'
                                  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 used to set permissions
                                    on created files by default. Must be an octal
                                    value between 0000 and 0777 or a decimal value
                                    between 0 and 511.'
                                  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.
                                  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 used to
                                          set permissions on this file. Must be an
                                          octal value between 0000 and 0777 or a decimal
                                          value between 0 and 511.'
                                        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.
                                  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
                    required:
                    - containers
                    type: object
                required:
                - spec
                type: object
              replicas:
                default: 1
                description: Replicas is the number of instances. Available values
                  are positive odd numbers.
                format: int32
                type: integer
              replicationSourceSecretName:
                description: ReplicationSourceSecretName is a `Secret` name which
                  contains replication source info. If this field is given, the `MySQLCluster`
                  works as an intermediate primary.
                nullable: true
                type: string
              restore:
                description: Restore is the specification to perform Point-in-Time-Recovery
                  from existing cluster. If this field is not null, MOCO restores
                  the data as specified and create a new cluster with the data.  This
                  field is not editable.
                properties:
                  jobConfig:
                    description: Specifies parameters for restore Pod.
                    properties:
                      bucketConfig:
                        description: Specifies how to access an object storage bucket.
                        properties:
                          bucketName:
                            description: The name of the bucket
                            minLength: 1
                            type: string
                          endpointURL:
                            description: The API endpoint URL.  Set this for non-S3
                              object storages.
                            pattern: ^https?://.*
                            type: string
                          region:
                            description: The region of the bucket. This can also be
                              set through `AWS_REGION` environment variable.
                            type: string
                          usePathStyle:
                            description: Allows you to enable the client to use path-style
                              addressing, i.e., https?://ENDPOINT/BUCKET/KEY. By default,
                              a virtual-host addressing is used (https?://BUCKET.ENDPOINT/KEY).
                            type: boolean
                        required:
                        - bucketName
                        type: object
                      env:
                        description: "List of environment variables to set in the
                          container. \n You can configure S3 bucket access parameters
                          through environment variables. See https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/config#EnvConfig"
                        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 previously defined environment variables
                                in the container and any service environment variables.
                              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[''<KEY>'']`,
                                    `metadata.annotations[''<KEY>'']`, spec.nodeName,
                                    spec.serviceAccountName, status.hostIP, status.podIP,
                                    status.podIPs.'
                                  properties:
                                    apiVersion:
                                      description: Version of the schema the FieldPath
                                        is written in terms of, defaults to "v1".
                                      type: string
                                    fieldPath:
                                      description: Path of the field to select in
                                        the specified API version.
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  description: 'Selects a resource of the container:
                                    only resources limits and requests (limits.cpu,
                                    limits.memory, limits.ephemeral-storage, requests.cpu,
                                    requests.memory and requests.ephemeral-storage)
                                    are currently supported.'
                                  properties:
                                    containerName:
                                      description: 'Container name: required for volumes,
                                        optional for env vars'
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Specifies the output format of
                                        the exposed resources, defaults to "1"
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      description: 'Required: resource to select'
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  description: Selects a key of a secret in the pod's
                                    namespace
                                  properties:
                                    key:
                                      description: The key of the secret to select
                                        from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      description: 'Name of the referent. More info:
                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        TODO: Add other useful fields. apiVersion,
                                        kind, uid?'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its
                                        key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        description: List of sources to populate environment variables
                          in the container. The keys defined within a source must
                          be a C_IDENTIFIER. All invalid keys will be reported as
                          an event when the container is starting.
                        items:
                          description: EnvFromSource represents the source of a set
                            of ConfigMaps
                          properties:
                            configMapRef:
                              description: The ConfigMap to select from
                              properties:
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap must
                                    be defined
                                  type: boolean
                              type: object
                            prefix:
                              description: An optional identifier to prepend to each
                                key in the ConfigMap. Must be a C_IDENTIFIER.
                              type: string
                            secretRef:
                              description: The Secret to select from
                              properties:
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the Secret must be
                                    defined
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      maxMemory:
                        anyOf:
                        - type: integer
                        - type: string
                        description: MaxMemory is the amount of maximum memory for
                          the Pod.
                        nullable: true
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      memory:
                        anyOf:
                        - type: integer
                        - type: string
                        default: 4Gi
                        description: Memory is the amount of memory requested for
                          the Pod.
                        nullable: true
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      serviceAccountName:
                        description: ServiceAccountName specifies the ServiceAccount
                          to run the Pod.
                        minLength: 1
                        type: string
                      threads:
                        default: 4
                        description: Threads is the number of threads used for backup
                          or restoration.
                        minimum: 1
                        type: integer
                      workVolume:
                        description: WorkVolume is the volume source for the working
                          directory. Since the backup or restore task can use a lot
                          of bytes in the working directory, You should always give
                          a volume with enough capacity.
                        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.'
                                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".'
                                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.'
                                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 used to set permissions
                                  on created files by default. Must be an octal value
                                  between 0000 and 0777 or a decimal value between
                                  0 and 511.'
                                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.
                                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 used to set
                                        permissions on this file. Must be an octal
                                        value between 0000 and 0777 or a decimal value
                                        between 0 and 511.'
                                      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
                              ephemeral storage that is handled by certain external
                              CSI drivers (Beta 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.
                                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 Optional: mode bits
                                  used to set permissions on created files by default.'
                                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 used to set
                                        permissions on this file, must be an octal
                                        value between 0000 and 0777 or a decimal value
                                        between 0 and 511.'
                                      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:
                                          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
                                  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.'
                                type: string
                              sizeLimit:
                                anyOf:
                                - type: integer
                                - type: string
                                description: Total amount of local storage required
                                  for this EmptyDir volume. The size limit is also
                                  applicable for memory medium.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          ephemeral:
                            description: Ephemeral represents a volume that is handled
                              by a cluster storage driver. The volume's lifecycle
                              is tied to the pod that defines it - it will be created
                              before the pod starts, and deleted when the pod is removed.
                            properties:
                              volumeClaimTemplate:
                                description: Will be used to create a stand-alone
                                  PVC to provision the volume. The pod in which this
                                  EphemeralVolumeSource is embedded will be the owner
                                  of the PVC, i.e. the PVC will be deleted together
                                  with the pod.
                                properties:
                                  metadata:
                                    description: May contain labels and annotations
                                      that will be copied into the PVC when creating
                                      it. No other fields are allowed and will be
                                      rejected during validation.
                                    type: object
                                  spec:
                                    description: The specification for the PersistentVolumeClaim.
                                      The entire content is copied unchanged into
                                      the PVC that gets created from this template.
                                      The same fields as in a PersistentVolumeClaim
                                      are also valid here.
                                    properties:
                                      accessModes:
                                        description: 'AccessModes contains the desired
                                          access modes the volume should have. More
                                          info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                        items:
                                          type: string
                                        type: array
                                      dataSource:
                                        description: 'This field can be used to specify
                                          either: * An existing VolumeSnapshot object
                                          (snapshot.storage.k8s.'
                                        properties:
                                          apiGroup:
                                            description: APIGroup is the group for
                                              the resource being referenced. If APIGroup
                                              is not specified, the specified Kind
                                              must be in the core API group. For any
                                              other third-party types, APIGroup is
                                              required.
                                            type: string
                                          kind:
                                            description: Kind is the type of resource
                                              being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource
                                              being referenced
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                      dataSourceRef:
                                        description: Specifies the object from which
                                          to populate the volume with data, if a non-empty
                                          volume is desired. This may be any local
                                          object from a non-empty API group (non core
                                          object) or a PersistentVolumeClaim object.
                                        properties:
                                          apiGroup:
                                            description: APIGroup is the group for
                                              the resource being referenced. If APIGroup
                                              is not specified, the specified Kind
                                              must be in the core API group. For any
                                              other third-party types, APIGroup is
                                              required.
                                            type: string
                                          kind:
                                            description: Kind is the type of resource
                                              being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource
                                              being referenced
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                      resources:
                                        description: 'Resources represents the minimum
                                          resources the volume should have. More info:
                                          https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                        properties:
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Limits describes the maximum
                                              amount of compute resources allowed.
                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: Requests describes the minimum
                                              amount of compute resources required.
                                              If Requests is omitted for a container,
                                              it defaults to Limits if that is explicitly
                                              specified, otherwise to an implementation-defined
                                              value.
                                            type: object
                                        type: object
                                      selector:
                                        description: A label query over volumes to
                                          consider for binding.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs.
                                            type: object
                                        type: object
                                      storageClassName:
                                        description: 'Name of the StorageClass required
                                          by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                        type: string
                                      volumeMode:
                                        description: volumeMode defines what type
                                          of volume is required by the claim. Value
                                          of Filesystem is implied when not included
                                          in claim spec.
                                        type: string
                                      volumeName:
                                        description: VolumeName is the binding reference
                                          to the PersistentVolume backing this claim.
                                        type: string
                                    type: object
                                required:
                                - spec
                                type: object
                            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.
                                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.'
                                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.'
                                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".'
                                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.'
                            properties:
                              directory:
                                description: Target directory name. Must not contain
                                  or start with '..'.  If '.' is supplied, the volume
                                  directory will be the git repository.
                                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.
                            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.'
                                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
                          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 used to set permissions on
                                  created files by default. Must be an octal value
                                  between 0000 and 0777 or a decimal value between
                                  0 and 511.
                                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.
                                          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
                                                  used to set permissions on this
                                                  file. Must be an octal value between
                                                  0000 and 0777 or a decimal value
                                                  between 0 and 511.'
                                                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
                                                  used to set permissions on this
                                                  file, must be an octal value between
                                                  0000 and 0777 or a decimal value
                                                  between 0 and 511.'
                                                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:
                                                    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
                                            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.
                                          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
                                                  used to set permissions on this
                                                  file. Must be an octal value between
                                                  0000 and 0777 or a decimal value
                                                  between 0 and 511.'
                                                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.
                                          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.
                                          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
                            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.'
                                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 used to set permissions
                                  on created files by default. Must be an octal value
                                  between 0000 and 0777 or a decimal value between
                                  0 and 511.'
                                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.
                                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 used to set
                                        permissions on this file. Must be an octal
                                        value between 0000 and 0777 or a decimal value
                                        between 0 and 511.'
                                      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.
                                type: string
                            type: object
                          vsphereVolume:
                            description: VsphereVolume represents a vSphere volume
                              attached and mounted on kubelets host machine
                            properties:
                              fsType:
                                description: Filesystem type to mount. Must be a filesystem
                                  type supported by the host operating system. Ex.
                                  "ext4", "xfs", "ntfs". Implicitly inferred to be
                                  "ext4" if unspecified.
                                type: string
                              storagePolicyID:
                                description: Storage Policy Based Management (SPBM)
                                  profile ID associated with the StoragePolicyName.
                                type: string
                              storagePolicyName:
                                description: Storage Policy Based Management (SPBM)
                                  profile name.
                                type: string
                              volumePath:
                                description: Path that identifies vSphere volume vmdk
                                type: string
                            required:
                            - volumePath
                            type: object
                        type: object
                    required:
                    - bucketConfig
                    - serviceAccountName
                    - workVolume
                    type: object
                  restorePoint:
                    description: RestorePoint is the target date and time to restore
                      data. The format is RFC3339.  e.g. "2006-01-02T15:04:05Z"
                    format: date-time
                    type: string
                  sourceName:
                    description: SourceName is the name of the source `MySQLCluster`.
                    minLength: 1
                    type: string
                  sourceNamespace:
                    description: SourceNamespace is the namespace of the source `MySQLCluster`.
                    minLength: 1
                    type: string
                required:
                - jobConfig
                - restorePoint
                - sourceName
                - sourceNamespace
                type: object
              serverIDBase:
                description: ServerIDBase, if set, will become the base number of
                  server-id of each MySQL instance of this cluster.  For example,
                  if this is 100, the server-ids will be 100, 101, 102, and so on.
                format: int32
                type: integer
              serviceTemplate:
                description: ServiceTemplate is a `Service` template for both primary
                  and replicas.
                properties:
                  metadata:
                    description: Standard object's metadata.  Only `annotations` and
                      `labels` are valid.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations is a map of string keys and values.
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: Labels is a map of string keys and values.
                        type: object
                      name:
                        description: Name is the name of the object.
                        type: string
                    type: object
                  spec:
                    description: Spec is the ServiceSpec
                    properties:
                      allocateLoadBalancerNodePorts:
                        description: allocateLoadBalancerNodePorts defines if NodePorts
                          will be automatically allocated for services with type LoadBalancer.  Default
                          is "true".
                        type: boolean
                      clusterIP:
                        description: clusterIP is the IP address of the service and
                          is usually assigned randomly.
                        type: string
                      clusterIPs:
                        description: ClusterIPs is a list of IP addresses assigned
                          to this service, and are usually assigned randomly.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      externalIPs:
                        description: externalIPs is a list of IP addresses for which
                          nodes in the cluster will also accept traffic for this service.  These
                          IPs are not managed by Kubernetes.
                        items:
                          type: string
                        type: array
                      externalName:
                        description: externalName is the external reference that discovery
                          mechanisms will return as an alias for this service (e.g.
                          a DNS CNAME record). No proxying will be involved.  Must
                          be a lowercase RFC-1123 hostname (https://tools.
                        type: string
                      externalTrafficPolicy:
                        description: externalTrafficPolicy denotes if this Service
                          desires to route external traffic to node-local or cluster-wide
                          endpoints.
                        type: string
                      healthCheckNodePort:
                        description: healthCheckNodePort specifies the healthcheck
                          nodePort for the service. This only applies when type is
                          set to LoadBalancer and externalTrafficPolicy is set to
                          Local.
                        format: int32
                        type: integer
                      internalTrafficPolicy:
                        description: InternalTrafficPolicy specifies if the cluster
                          internal traffic should be routed to all endpoints or node-local
                          endpoints only. "Cluster" routes internal traffic to a Service
                          to all endpoints.
                        type: string
                      ipFamilies:
                        description: IPFamilies is a list of IP families (e.g. IPv4,
                          IPv6) assigned to this service, and is gated by the "IPv6DualStack"
                          feature gate.
                        items:
                          description: IPFamily represents the IP Family (IPv4 or
                            IPv6). This type is used to express the family of an IP
                            expressed by a type (e.g. service.spec.ipFamilies).
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      ipFamilyPolicy:
                        description: IPFamilyPolicy represents the dual-stack-ness
                          requested or required by this Service, and is gated by the
                          "IPv6DualStack" feature gate.  If there is no value provided,
                          then this field will be set to SingleStack.
                        type: string
                      loadBalancerClass:
                        description: loadBalancerClass is the class of the load balancer
                          implementation this Service belongs to. If specified, the
                          value of this field must be a label-style identifier, with
                          an optional prefix, e.g.
                        type: string
                      loadBalancerIP:
                        description: 'Only applies to Service Type: LoadBalancer LoadBalancer
                          will get created with the IP specified in this field.'
                        type: string
                      loadBalancerSourceRanges:
                        description: If specified and supported by the platform, this
                          will restrict traffic through the cloud-provider load-balancer
                          will be restricted to the specified client IPs.
                        items:
                          type: string
                        type: array
                      ports:
                        description: 'The list of ports that are exposed by this service.
                          More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies'
                        items:
                          description: ServicePort contains information on service's
                            port.
                          properties:
                            appProtocol:
                              description: The application protocol for this port.
                                This field follows standard Kubernetes label syntax.
                                Un-prefixed names are reserved for IANA standard service
                                names (as per RFC-6335 and http://www.iana.
                              type: string
                            name:
                              description: The name of this port within the service.
                                This must be a DNS_LABEL. All ports within a ServiceSpec
                                must have unique names.
                              type: string
                            nodePort:
                              description: The port on each node on which this service
                                is exposed when type is NodePort or LoadBalancer.  Usually
                                assigned by the system.
                              format: int32
                              type: integer
                            port:
                              description: The port that will be exposed by this service.
                              format: int32
                              type: integer
                            protocol:
                              default: TCP
                              description: The IP protocol for this port. Supports
                                "TCP", "UDP", and "SCTP". Default is TCP.
                              type: string
                            targetPort:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Number or name of the port to access on
                                the pods targeted by the service. Number must be in
                                the range 1 to 65535. Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - port
                        - protocol
                        x-kubernetes-list-type: map
                      publishNotReadyAddresses:
                        description: publishNotReadyAddresses indicates that any agent
                          which deals with endpoints for this Service should disregard
                          any indications of ready/not-ready.
                        type: boolean
                      selector:
                        additionalProperties:
                          type: string
                        description: Route service traffic to pods with label keys
                          and values matching this selector. If empty or not present,
                          the service is assumed to have an external process managing
                          its endpoints, which Kubernetes will not modify.
                        type: object
                        x-kubernetes-map-type: atomic
                      sessionAffinity:
                        description: 'Supports "ClientIP" and "None". Used to maintain
                          session affinity. Enable client IP based session affinity.
                          Must be ClientIP or None. Defaults to None. More info: https://kubernetes.'
                        type: string
                      sessionAffinityConfig:
                        description: sessionAffinityConfig contains the configurations
                          of session affinity.
                        properties:
                          clientIP:
                            description: clientIP contains the configurations of Client
                              IP based session affinity.
                            properties:
                              timeoutSeconds:
                                description: timeoutSeconds specifies the seconds
                                  of ClientIP type session sticky time. The value
                                  must be >0 && <=86400(for 1 day) if ServiceAffinity
                                  == "ClientIP". Default value is 10800(for 3 hours).
                                format: int32
                                type: integer
                            type: object
                        type: object
                      type:
                        description: type determines how the Service is exposed. Defaults
                          to ClusterIP. Valid options are ExternalName, ClusterIP,
                          NodePort, and LoadBalancer.
                        type: string
                    type: object
                type: object
              startupDelaySeconds:
                default: 3600
                description: StartupWaitSeconds is the maximum duration to wait for
                  `mysqld` container to start working. The default is 3600 seconds.
                format: int32
                minimum: 0
                type: integer
              volumeClaimTemplates:
                description: VolumeClaimTemplates is a list of `PersistentVolumeClaim`
                  templates for MySQL server container. A claim named "mysql-data"
                  must be included in the list.
                items:
                  description: PersistentVolumeClaim is a user's request for and claim
                    to a persistent volume. This is slightly modified from corev1.PersistentVolumeClaim.
                  properties:
                    metadata:
                      description: Standard object's metadata.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Annotations is a map of string keys and values.
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Labels is a map of string keys and values.
                          type: object
                        name:
                          description: Name is the name of the object.
                          type: string
                      type: object
                    spec:
                      description: Spec defines the desired characteristics of a volume
                        requested by a pod author.
                      properties:
                        accessModes:
                          description: 'AccessModes contains the desired access modes
                            the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                        dataSource:
                          description: 'This field can be used to specify either:
                            * An existing VolumeSnapshot object (snapshot.storage.k8s.'
                          properties:
                            apiGroup:
                              description: APIGroup is the group for the resource
                                being referenced. If APIGroup is not specified, the
                                specified Kind must be in the core API group. For
                                any other third-party types, APIGroup is required.
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                        dataSourceRef:
                          description: Specifies the object from which to populate
                            the volume with data, if a non-empty volume is desired.
                            This may be any local object from a non-empty API group
                            (non core object) or a PersistentVolumeClaim object.
                          properties:
                            apiGroup:
                              description: APIGroup is the group for the resource
                                being referenced. If APIGroup is not specified, the
                                specified Kind must be in the core API group. For
                                any other third-party types, APIGroup is required.
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                        resources:
                          description: 'Resources represents the minimum resources
                            the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                          properties:
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of
                                compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: Requests describes the minimum amount of
                                compute resources required. If Requests is omitted
                                for a container, it defaults to Limits if that is
                                explicitly specified, otherwise to an implementation-defined
                                value.
                              type: object
                          type: object
                        selector:
                          description: A label query over volumes to consider for
                            binding.
                          properties:
                            matchExpressions:
                              description: matchExpressions is a list of label selector
                                requirements. The requirements are ANDed.
                              items:
                                description: A label selector requirement is a selector
                                  that contains values, a key, and an operator that
                                  relates the key and values.
                                properties:
                                  key:
                                    description: key is the label key that the selector
                                      applies to.
                                    type: string
                                  operator:
                                    description: operator represents a key's relationship
                                      to a set of values. Valid operators are In,
                                      NotIn, Exists and DoesNotExist.
                                    type: string
                                  values:
                                    description: values is an array of string values.
                                      If the operator is In or NotIn, the values array
                                      must be non-empty. If the operator is Exists
                                      or DoesNotExist, the values array must be empty.
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              description: matchLabels is a map of {key,value} pairs.
                              type: object
                          type: object
                        storageClassName:
                          description: 'Name of the StorageClass required by the claim.
                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                          type: string
                        volumeMode:
                          description: volumeMode defines what type of volume is required
                            by the claim. Value of Filesystem is implied when not
                            included in claim spec.
                          type: string
                        volumeName:
                          description: VolumeName is the binding reference to the
                            PersistentVolume backing this claim.
                          type: string
                      type: object
                  required:
                  - metadata
                  - spec
                  type: object
                minItems: 1
                type: array
            required:
            - podTemplate
            - volumeClaimTemplates
            type: object
          status:
            description: MySQLClusterStatus defines the observed state of MySQLCluster
            properties:
              backup:
                description: Backup is the status of the last successful backup.
                properties:
                  binlogFilename:
                    description: BinlogFilename is the binlog filename that the backup
                      source instance was writing to at the backup.
                    type: string
                  binlogSize:
                    description: BinlogSize is the size in bytes of a tarball of binlog
                      files stored in an object storage bucket.
                    format: int64
                    type: integer
                  dumpSize:
                    description: DumpSize is the size in bytes of a full dump of database
                      stored in an object storage bucket.
                    format: int64
                    type: integer
                  elapsed:
                    description: Elapsed is the time spent on the backup.
                    type: string
                  gtidSet:
                    description: GTIDSet is the GTID set of the full dump of database.
                    type: string
                  sourceIndex:
                    description: SourceIndex is the ordinal of the backup source instance.
                    type: integer
                  sourceUUID:
                    description: SourceUUID is the `server_uuid` of the backup source
                      instance.
                    type: string
                  time:
                    description: The time of the backup.  This is used to generate
                      object keys of backup files in a bucket.
                    format: date-time
                    nullable: true
                    type: string
                  warnings:
                    description: Warnings are list of warnings from the last backup,
                      if any.
                    items:
                      type: string
                    nullable: true
                    type: array
                  workDirUsage:
                    description: WorkDirUsage is the max usage in bytes of the woking
                      directory.
                    format: int64
                    type: integer
                required:
                - binlogFilename
                - binlogSize
                - dumpSize
                - elapsed
                - gtidSet
                - sourceIndex
                - sourceUUID
                - time
                - warnings
                - workDirUsage
                type: object
              cloned:
                description: Cloned indicates if the initial cloning from an external
                  source has been completed.
                type: boolean
              conditions:
                description: Conditions is an array of conditions.
                items:
                  description: MySQLClusterCondition defines the condition of MySQLCluster.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transits from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human-readable message indicating
                        details about last transition.
                      type: string
                    reason:
                      description: Reason is a one-word CamelCase reason for the condition's
                        last transition.
                      type: string
                    status:
                      description: Status is the status of the condition.
                      type: string
                    type:
                      description: Type is the type of the condition.
                      enum:
                      - Initialized
                      - Available
                      - Healthy
                      type: string
                  required:
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
              currentPrimaryIndex:
                description: CurrentPrimaryIndex is the index of the current primary
                  Pod in StatefulSet. Initially, this is zero.
                type: integer
              errantReplicaList:
                description: ErrantReplicaList is the list of indices of errant replicas.
                items:
                  type: integer
                type: array
              errantReplicas:
                description: ErrantReplicas is the number of instances that have errant
                  transactions.
                type: integer
              reconcileInfo:
                description: ReconcileInfo represents version information for reconciler.
                properties:
                  generation:
                    description: Generation is the `metadata.generation` value of
                      the last reconciliation. See also https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#status-subresource
                    format: int64
                    type: integer
                  reconcileVersion:
                    description: ReconcileVersion is the version of the operator reconciler.
                    type: integer
                type: object
              restoredTime:
                description: RestoredTime is the time when the cluster data is restored.
                format: date-time
                type: string
              syncedReplicas:
                description: SyncedReplicas is the number of synced instances including
                  the primary.
                type: integer
            required:
            - currentPrimaryIndex
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
