apiVersion: v1
kind: Namespace
metadata:
  name: auth
---
apiVersion: v1
kind: Namespace
metadata:
  name: cert-manager
---
apiVersion: v1
kind: Namespace
metadata:
  labels:
    istio-injection: disabled
    istio-operator-managed: Reconcile
  name: istio-system
---
apiVersion: v1
kind: Namespace
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing
---
apiVersion: v1
kind: Namespace
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    istio-injection: enabled
  name: knative-serving
---
apiVersion: v1
kind: Namespace
metadata:
  labels:
    control-plane: kubeflow
    istio-injection: enabled
  name: kubeflow
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    registry.knative.dev/eventTypes: |
      [
        { "type": "dev.knative.apiserver.resource.add" },
        { "type": "dev.knative.apiserver.resource.delete" },
        { "type": "dev.knative.apiserver.resource.update" },
        { "type": "dev.knative.apiserver.ref.add" },
        { "type": "dev.knative.apiserver.ref.delete" },
        { "type": "dev.knative.apiserver.ref.update" }
      ]
  creationTimestamp: null
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/source: "true"
    eventing.knative.dev/source: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: apiserversources.sources.knative.dev
spec:
  group: sources.knative.dev
  names:
    categories:
    - all
    - knative
    - sources
    kind: ApiServerSource
    plural: apiserversources
    singular: apiserversource
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.sinkUri
      name: Sink
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: ApiServerSource is an event source that brings Kubernetes API
          server events into Knative.
        properties:
          spec:
            properties:
              ceOverrides:
                description: CloudEventOverrides defines overrides to control the
                  output format and modifications of the event sent to the sink.
                properties:
                  extensions:
                    description: Extensions specify what attribute are added or overridden
                      on the outbound event. Each `Extensions` key-value pair are
                      set on the event as an attribute extension independently.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              mode:
                description: EventMode controls the format of the event. `Reference`
                  sends a dataref event type for the resource under watch. `Resource`
                  send the full resource lifecycle event. Defaults to `Reference`
                type: string
              namespaceSelector:
                description: NamespaceSelector is a label selector to capture the
                  namespaces that should be watched by the source.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      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. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                      type: object
                    type: array
                  matchLabels:
                    description: matchLabels is a map of {key,value} pairs. A single
                      {key,value} in the matchLabels map is equivalent to an element
                      of matchExpressions, whose key field is "key", the operator
                      is "In", and the values array contains only "value". The requirements
                      are ANDed.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              owner:
                description: ResourceOwner is an additional filter to only track resources
                  that are owned by a specific resource type. If ResourceOwner matches
                  Resources[n] then Resources[n] is allowed to pass the ResourceOwner
                  filter.
                properties:
                  apiVersion:
                    description: APIVersion - the API version of the resource to watch.
                    type: string
                  kind:
                    description: 'Kind of the resource to watch. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                type: object
              resources:
                description: Resource are the resources this source will track and
                  send related lifecycle events from the Kubernetes ApiServer, with
                  an optional label selector to help filter.
                items:
                  properties:
                    apiVersion:
                      description: APIVersion - the API version of the resource to
                        watch.
                      type: string
                    kind:
                      description: 'Kind of the resource to watch. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    selector:
                      description: 'LabelSelector filters this source to objects to
                        those resources pass the label selector. More info: http://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
                      properties:
                        matchExpressions:
                          description: matchExpressions is a list of label selector
                            requirements. The requirements are ANDed.
                          items:
                            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. This
                                  array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            type: object
                          type: array
                        matchLabels:
                          description: matchLabels is a map of {key,value} pairs.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                      type: object
                  type: object
                type: array
              serviceAccountName:
                description: ServiceAccountName is the name of the ServiceAccount
                  to use to run this source. Defaults to default if not set.
                type: string
              sink:
                description: Sink is a reference to an object that will resolve to
                  a uri to use as the sink.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
            required:
            - resources
            type: object
          status:
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              ceAttributes:
                description: CloudEventAttributes are the specific attributes that
                  the Source uses as part of its CloudEvents.
                items:
                  properties:
                    source:
                      description: Source is the CloudEvents source attribute.
                      type: string
                    type:
                      description: Type refers to the CloudEvent type attribute.
                      type: string
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              namespaces:
                description: Namespaces show the namespaces currently watched by the
                  ApiServerSource
                items:
                  type: string
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              sinkUri:
                description: SinkURI is the current active sink URI that has been
                  configured for the Source.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: authcodes.dex.coreos.com
spec:
  group: dex.coreos.com
  names:
    kind: AuthCode
    listKind: AuthCodeList
    plural: authcodes
    singular: authcode
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        type: object
        x-kubernetes-preserve-unknown-fields: true
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    istio: security
    release: istio
  name: authorizationpolicies.security.istio.io
spec:
  group: security.istio.io
  names:
    categories:
    - istio-io
    - security-istio-io
    kind: AuthorizationPolicy
    listKind: AuthorizationPolicyList
    plural: authorizationpolicies
    singular: authorizationpolicy
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration for access control on workloads. See more
              details at: https://istio.io/docs/reference/config/security/authorization-policy.html'
            oneOf:
            - not:
                anyOf:
                - required:
                  - provider
            - required:
              - provider
            properties:
              action:
                description: Optional.
                enum:
                - ALLOW
                - DENY
                - AUDIT
                - CUSTOM
                type: string
              provider:
                description: Specifies detailed configuration of the CUSTOM action.
                properties:
                  name:
                    description: Specifies the name of the extension provider.
                    type: string
                type: object
              rules:
                description: Optional.
                items:
                  properties:
                    from:
                      description: Optional.
                      items:
                        properties:
                          source:
                            description: Source specifies the source of a request.
                            properties:
                              ipBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              namespaces:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notIpBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notNamespaces:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notPrincipals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notRemoteIpBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notRequestPrincipals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              principals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              remoteIpBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              requestPrincipals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                            type: object
                        type: object
                      type: array
                    to:
                      description: Optional.
                      items:
                        properties:
                          operation:
                            description: Operation specifies the operation of a request.
                            properties:
                              hosts:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              methods:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notHosts:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notMethods:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notPaths:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notPorts:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              paths:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              ports:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                            type: object
                        type: object
                      type: array
                    when:
                      description: Optional.
                      items:
                        properties:
                          key:
                            description: The name of an Istio attribute.
                            type: string
                          notValues:
                            description: Optional.
                            items:
                              type: string
                            type: array
                          values:
                            description: Optional.
                            items:
                              type: string
                            type: array
                        type: object
                      type: array
                  type: object
                type: array
              selector:
                description: Optional.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration for access control on workloads. See more
              details at: https://istio.io/docs/reference/config/security/authorization-policy.html'
            oneOf:
            - not:
                anyOf:
                - required:
                  - provider
            - required:
              - provider
            properties:
              action:
                description: Optional.
                enum:
                - ALLOW
                - DENY
                - AUDIT
                - CUSTOM
                type: string
              provider:
                description: Specifies detailed configuration of the CUSTOM action.
                properties:
                  name:
                    description: Specifies the name of the extension provider.
                    type: string
                type: object
              rules:
                description: Optional.
                items:
                  properties:
                    from:
                      description: Optional.
                      items:
                        properties:
                          source:
                            description: Source specifies the source of a request.
                            properties:
                              ipBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              namespaces:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notIpBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notNamespaces:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notPrincipals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notRemoteIpBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notRequestPrincipals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              principals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              remoteIpBlocks:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              requestPrincipals:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                            type: object
                        type: object
                      type: array
                    to:
                      description: Optional.
                      items:
                        properties:
                          operation:
                            description: Operation specifies the operation of a request.
                            properties:
                              hosts:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              methods:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notHosts:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notMethods:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notPaths:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              notPorts:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              paths:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                              ports:
                                description: Optional.
                                items:
                                  type: string
                                type: array
                            type: object
                        type: object
                      type: array
                    when:
                      description: Optional.
                      items:
                        properties:
                          key:
                            description: The name of an Istio attribute.
                            type: string
                          notValues:
                            description: Optional.
                            items:
                              type: string
                            type: array
                          values:
                            description: Optional.
                            items:
                              type: string
                            type: array
                        type: object
                      type: array
                  type: object
                type: array
              selector:
                description: Optional.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: brokers.eventing.knative.dev
spec:
  group: eventing.knative.dev
  names:
    categories:
    - all
    - knative
    - eventing
    kind: Broker
    plural: brokers
    singular: broker
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.address.url
      name: URL
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    - jsonPath: .metadata.annotations.eventing\.knative\.dev/broker\.class
      name: Class
      priority: 1
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: Broker collects a pool of events that are consumable using Triggers.
          Brokers provide a well-known endpoint for event delivery that senders can
          use with minimal knowledge of the event routing strategy. Subscribers use
          Triggers to request delivery of events from a Broker's pool to a specific
          URL or Addressable endpoint.
        properties:
          spec:
            description: Spec defines the desired state of the Broker.
            properties:
              config:
                description: Config is a KReference to the configuration that specifies
                  configuration options for this Broker. For example, this could be
                  a pointer to a ConfigMap.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                      This is optional field, it gets defaulted to the object holding
                      it if left out.'
                    type: string
                type: object
              delivery:
                description: Delivery contains the delivery spec for each trigger
                  to this Broker. Each trigger delivery spec, if any, overrides this
                  global delivery spec.
                properties:
                  backoffDelay:
                    description: 'BackoffDelay is the delay before retrying. More
                      information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                      - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                      backoff delay is backoffDelay*<numberOfRetries>. For exponential
                      policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                    type: string
                  backoffPolicy:
                    description: BackoffPolicy is the retry backoff policy (linear,
                      exponential).
                    type: string
                  deadLetterSink:
                    description: DeadLetterSink is the sink receiving event that could
                      not be sent to a destination.
                    properties:
                      ref:
                        description: Ref points to an Addressable.
                        properties:
                          apiVersion:
                            description: API version of the referent.
                            type: string
                          kind:
                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                            type: string
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          namespace:
                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                              This is optional field, it gets defaulted to the object
                              holding it if left out.'
                            type: string
                        type: object
                      uri:
                        description: URI can be an absolute URL(non-empty scheme and
                          non-empty host) pointing to the target or a relative URI.
                          Relative URIs will be resolved using the base URI retrieved
                          from Ref.
                        type: string
                    type: object
                  retry:
                    description: Retry is the minimum number of retries the sender
                      should attempt when sending an event before moving it to the
                      dead letter sink.
                    format: int32
                    type: integer
                type: object
                x-kubernetes-preserve-unknown-fields: true
            type: object
          status:
            description: Status represents the current state of the Broker. This data
              may be out of date.
            properties:
              address:
                description: Broker is Addressable. It exposes the endpoint as an
                  URI to get events delivered into the Broker mesh.
                properties:
                  url:
                    type: string
                type: object
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              deadLetterSinkUri:
                description: DeadLetterSinkURI is the resolved URI of the dead letter
                  sink that will be used as a fallback when not specified by Triggers.
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: certificaterequests.cert-manager.io
spec:
  group: cert-manager.io
  names:
    categories:
    - cert-manager
    kind: CertificateRequest
    listKind: CertificateRequestList
    plural: certificaterequests
    shortNames:
    - cr
    - crs
    singular: certificaterequest
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=="Approved")].status
      name: Approved
      type: string
    - jsonPath: .status.conditions[?(@.type=="Denied")].status
      name: Denied
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .spec.issuerRef.name
      name: Issuer
      type: string
    - jsonPath: .spec.username
      name: Requestor
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: Status
      priority: 1
      type: string
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: "A CertificateRequest is used to request a signed certificate
          from one of the configured issuers. \n All fields within the CertificateRequest's
          `spec` are immutable after creation. A CertificateRequest will either succeed
          or fail, as denoted by its `status.state` field. \n A CertificateRequest
          is a one-shot resource, meaning it represents a single point in time request
          for a certificate and cannot be re-used."
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Desired state of the CertificateRequest resource.
            properties:
              duration:
                description: The requested 'duration' (i.e. lifetime) of the Certificate.
                  This option may be ignored/overridden by some issuer types.
                type: string
              extra:
                additionalProperties:
                  items:
                    type: string
                  type: array
                description: Extra contains extra attributes of the user that created
                  the CertificateRequest. Populated by the cert-manager webhook on
                  creation and immutable.
                type: object
              groups:
                description: Groups contains group membership of the user that created
                  the CertificateRequest. Populated by the cert-manager webhook on
                  creation and immutable.
                items:
                  type: string
                type: array
                x-kubernetes-list-type: atomic
              isCA:
                description: IsCA will request to mark the certificate as valid for
                  certificate signing when submitting to the issuer. This will automatically
                  add the `cert sign` usage to the list of `usages`.
                type: boolean
              issuerRef:
                description: IssuerRef is a reference to the issuer for this CertificateRequest.  If
                  the `kind` field is not set, or set to `Issuer`, an Issuer resource
                  with the given name in the same namespace as the CertificateRequest
                  will be used.  If the `kind` field is set to `ClusterIssuer`, a
                  ClusterIssuer with the provided name will be used. The `name` field
                  in this stanza is required at all times. The group field refers
                  to the API group of the issuer which defaults to `cert-manager.io`
                  if empty.
                properties:
                  group:
                    description: Group of the resource being referred to.
                    type: string
                  kind:
                    description: Kind of the resource being referred to.
                    type: string
                  name:
                    description: Name of the resource being referred to.
                    type: string
                required:
                - name
                type: object
              request:
                description: The PEM-encoded x509 certificate signing request to be
                  submitted to the CA for signing.
                format: byte
                type: string
              uid:
                description: UID contains the uid of the user that created the CertificateRequest.
                  Populated by the cert-manager webhook on creation and immutable.
                type: string
              usages:
                description: Usages is the set of x509 usages that are requested for
                  the certificate. If usages are set they SHOULD be encoded inside
                  the CSR spec Defaults to `digital signature` and `key encipherment`
                  if not specified.
                items:
                  description: "KeyUsage specifies valid usage contexts for keys.
                    See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12
                    \n Valid KeyUsage values are as follows: \"signing\", \"digital
                    signature\", \"content commitment\", \"key encipherment\", \"key
                    agreement\", \"data encipherment\", \"cert sign\", \"crl sign\",
                    \"encipher only\", \"decipher only\", \"any\", \"server auth\",
                    \"client auth\", \"code signing\", \"email protection\", \"s/mime\",
                    \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\", \"timestamping\",
                    \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\""
                  enum:
                  - signing
                  - digital signature
                  - content commitment
                  - key encipherment
                  - key agreement
                  - data encipherment
                  - cert sign
                  - crl sign
                  - encipher only
                  - decipher only
                  - any
                  - server auth
                  - client auth
                  - code signing
                  - email protection
                  - s/mime
                  - ipsec end system
                  - ipsec tunnel
                  - ipsec user
                  - timestamping
                  - ocsp signing
                  - microsoft sgc
                  - netscape sgc
                  type: string
                type: array
              username:
                description: Username contains the name of the user that created the
                  CertificateRequest. Populated by the cert-manager webhook on creation
                  and immutable.
                type: string
            required:
            - issuerRef
            - request
            type: object
          status:
            description: Status of the CertificateRequest. This is set and managed
              automatically.
            properties:
              ca:
                description: The PEM encoded x509 certificate of the signer, also
                  known as the CA (Certificate Authority). This is set on a best-effort
                  basis by different issuers. If not set, the CA is assumed to be
                  unknown/not available.
                format: byte
                type: string
              certificate:
                description: The PEM encoded x509 certificate resulting from the certificate
                  signing request. If not set, the CertificateRequest has either not
                  been completed or has failed. More information on failure can be
                  found by checking the `conditions` field.
                format: byte
                type: string
              conditions:
                description: List of status conditions to indicate the status of a
                  CertificateRequest. Known condition types are `Ready` and `InvalidRequest`.
                items:
                  description: CertificateRequestCondition contains condition information
                    for a CertificateRequest.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the timestamp corresponding
                        to the last status change of this condition.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable description of the
                        details of the last transition, complementing reason.
                      type: string
                    reason:
                      description: Reason is a brief machine readable explanation
                        for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of (`True`, `False`,
                        `Unknown`).
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: Type of the condition, known values are (`Ready`,
                        `InvalidRequest`, `Approved`, `Denied`).
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              failureTime:
                description: FailureTime stores the time that this CertificateRequest
                  failed. This is used to influence garbage collection and back-off.
                format: date-time
                type: string
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: certificates.cert-manager.io
spec:
  group: cert-manager.io
  names:
    categories:
    - cert-manager
    kind: Certificate
    listKind: CertificateList
    plural: certificates
    shortNames:
    - cert
    - certs
    singular: certificate
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .spec.secretName
      name: Secret
      type: string
    - jsonPath: .spec.issuerRef.name
      name: Issuer
      priority: 1
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: Status
      priority: 1
      type: string
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: "A Certificate resource should be created to ensure an up to
          date and signed x509 certificate is stored in the Kubernetes Secret resource
          named in `spec.secretName`. \n The stored certificate will be renewed before
          it expires (as configured by `spec.renewBefore`)."
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Desired state of the Certificate resource.
            properties:
              additionalOutputFormats:
                description: AdditionalOutputFormats defines extra output formats
                  of the private key and signed certificate chain to be written to
                  this Certificate's target Secret. This is an Alpha Feature and is
                  only enabled with the `--feature-gates=AdditionalCertificateOutputFormats=true`
                  option on both the controller and webhook components.
                items:
                  description: CertificateAdditionalOutputFormat defines an additional
                    output format of a Certificate resource. These contain supplementary
                    data formats of the signed certificate chain and paired private
                    key.
                  properties:
                    type:
                      description: Type is the name of the format type that should
                        be written to the Certificate's target Secret.
                      enum:
                      - DER
                      - CombinedPEM
                      type: string
                  required:
                  - type
                  type: object
                type: array
              commonName:
                description: 'CommonName is a common name to be used on the Certificate.
                  The CommonName should have a length of 64 characters or fewer to
                  avoid generating invalid CSRs. This value is ignored by TLS clients
                  when any subject alt name is set. This is x509 behaviour: https://tools.ietf.org/html/rfc6125#section-6.4.4'
                type: string
              dnsNames:
                description: DNSNames is a list of DNS subjectAltNames to be set on
                  the Certificate.
                items:
                  type: string
                type: array
              duration:
                description: The requested 'duration' (i.e. lifetime) of the Certificate.
                  This option may be ignored/overridden by some issuer types. If unset
                  this defaults to 90 days. Certificate will be renewed either 2/3
                  through its duration or `renewBefore` period before its expiry,
                  whichever is later. Minimum accepted duration is 1 hour. Value must
                  be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
                type: string
              emailAddresses:
                description: EmailAddresses is a list of email subjectAltNames to
                  be set on the Certificate.
                items:
                  type: string
                type: array
              encodeUsagesInRequest:
                description: EncodeUsagesInRequest controls whether key usages should
                  be present in the CertificateRequest
                type: boolean
              ipAddresses:
                description: IPAddresses is a list of IP address subjectAltNames to
                  be set on the Certificate.
                items:
                  type: string
                type: array
              isCA:
                description: IsCA will mark this Certificate as valid for certificate
                  signing. This will automatically add the `cert sign` usage to the
                  list of `usages`.
                type: boolean
              issuerRef:
                description: IssuerRef is a reference to the issuer for this certificate.
                  If the `kind` field is not set, or set to `Issuer`, an Issuer resource
                  with the given name in the same namespace as the Certificate will
                  be used. If the `kind` field is set to `ClusterIssuer`, a ClusterIssuer
                  with the provided name will be used. The `name` field in this stanza
                  is required at all times.
                properties:
                  group:
                    description: Group of the resource being referred to.
                    type: string
                  kind:
                    description: Kind of the resource being referred to.
                    type: string
                  name:
                    description: Name of the resource being referred to.
                    type: string
                required:
                - name
                type: object
              keystores:
                description: Keystores configures additional keystore output formats
                  stored in the `secretName` Secret resource.
                properties:
                  jks:
                    description: JKS configures options for storing a JKS keystore
                      in the `spec.secretName` Secret resource.
                    properties:
                      create:
                        description: Create enables JKS keystore creation for the
                          Certificate. If true, a file named `keystore.jks` will be
                          created in the target Secret resource, encrypted using the
                          password stored in `passwordSecretRef`. The keystore file
                          will be updated immediately. If the issuer provided a CA
                          certificate, a file named `truststore.jks` will also be
                          created in the target Secret resource, encrypted using the
                          password stored in `passwordSecretRef` containing the issuing
                          Certificate Authority
                        type: boolean
                      passwordSecretRef:
                        description: PasswordSecretRef is a reference to a key in
                          a Secret resource containing the password used to encrypt
                          the JKS keystore.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                    required:
                    - create
                    - passwordSecretRef
                    type: object
                  pkcs12:
                    description: PKCS12 configures options for storing a PKCS12 keystore
                      in the `spec.secretName` Secret resource.
                    properties:
                      create:
                        description: Create enables PKCS12 keystore creation for the
                          Certificate. If true, a file named `keystore.p12` will be
                          created in the target Secret resource, encrypted using the
                          password stored in `passwordSecretRef`. The keystore file
                          will be updated immediately. If the issuer provided a CA
                          certificate, a file named `truststore.p12` will also be
                          created in the target Secret resource, encrypted using the
                          password stored in `passwordSecretRef` containing the issuing
                          Certificate Authority
                        type: boolean
                      passwordSecretRef:
                        description: PasswordSecretRef is a reference to a key in
                          a Secret resource containing the password used to encrypt
                          the PKCS12 keystore.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                    required:
                    - create
                    - passwordSecretRef
                    type: object
                type: object
              literalSubject:
                description: LiteralSubject is an LDAP formatted string that represents
                  the [X.509 Subject field](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6).
                  Use this *instead* of the Subject field if you need to ensure the
                  correct ordering of the RDN sequence, such as when issuing certs
                  for LDAP authentication. See https://github.com/cert-manager/cert-manager/issues/3203,
                  https://github.com/cert-manager/cert-manager/issues/4424. This field
                  is alpha level and is only supported by cert-manager installations
                  where LiteralCertificateSubject feature gate is enabled on both
                  cert-manager controller and webhook.
                type: string
              privateKey:
                description: Options to control private keys used for the Certificate.
                properties:
                  algorithm:
                    description: Algorithm is the private key algorithm of the corresponding
                      private key for this certificate. If provided, allowed values
                      are either `RSA`,`Ed25519` or `ECDSA` If `algorithm` is specified
                      and `size` is not provided, key size of 256 will be used for
                      `ECDSA` key algorithm and key size of 2048 will be used for
                      `RSA` key algorithm. key size is ignored when using the `Ed25519`
                      key algorithm.
                    enum:
                    - RSA
                    - ECDSA
                    - Ed25519
                    type: string
                  encoding:
                    description: The private key cryptography standards (PKCS) encoding
                      for this certificate's private key to be encoded in. If provided,
                      allowed values are `PKCS1` and `PKCS8` standing for PKCS#1 and
                      PKCS#8, respectively. Defaults to `PKCS1` if not specified.
                    enum:
                    - PKCS1
                    - PKCS8
                    type: string
                  rotationPolicy:
                    description: RotationPolicy controls how private keys should be
                      regenerated when a re-issuance is being processed. If set to
                      Never, a private key will only be generated if one does not
                      already exist in the target `spec.secretName`. If one does exists
                      but it does not have the correct algorithm or size, a warning
                      will be raised to await user intervention. If set to Always,
                      a private key matching the specified requirements will be generated
                      whenever a re-issuance occurs. Default is 'Never' for backward
                      compatibility.
                    enum:
                    - Never
                    - Always
                    type: string
                  size:
                    description: Size is the key bit size of the corresponding private
                      key for this certificate. If `algorithm` is set to `RSA`, valid
                      values are `2048`, `4096` or `8192`, and will default to `2048`
                      if not specified. If `algorithm` is set to `ECDSA`, valid values
                      are `256`, `384` or `521`, and will default to `256` if not
                      specified. If `algorithm` is set to `Ed25519`, Size is ignored.
                      No other values are allowed.
                    type: integer
                type: object
              renewBefore:
                description: How long before the currently issued certificate's expiry
                  cert-manager should renew the certificate. The default is 2/3 of
                  the issued certificate's duration. Minimum accepted value is 5 minutes.
                  Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration
                type: string
              revisionHistoryLimit:
                description: revisionHistoryLimit is the maximum number of CertificateRequest
                  revisions that are maintained in the Certificate's history. Each
                  revision represents a single `CertificateRequest` created by this
                  Certificate, either when it was created, renewed, or Spec was changed.
                  Revisions will be removed by oldest first if the number of revisions
                  exceeds this number. If set, revisionHistoryLimit must be a value
                  of `1` or greater. If unset (`nil`), revisions will not be garbage
                  collected. Default value is `nil`.
                format: int32
                type: integer
              secretName:
                description: SecretName is the name of the secret resource that will
                  be automatically created and managed by this Certificate resource.
                  It will be populated with a private key and certificate, signed
                  by the denoted issuer.
                type: string
              secretTemplate:
                description: SecretTemplate defines annotations and labels to be copied
                  to the Certificate's Secret. Labels and annotations on the Secret
                  will be changed as they appear on the SecretTemplate when added
                  or removed. SecretTemplate annotations are added in conjunction
                  with, and cannot overwrite, the base set of annotations cert-manager
                  sets on the Certificate's Secret.
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    description: Annotations is a key value map to be copied to the
                      target Kubernetes Secret.
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    description: Labels is a key value map to be copied to the target
                      Kubernetes Secret.
                    type: object
                type: object
              subject:
                description: Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).
                properties:
                  countries:
                    description: Countries to be used on the Certificate.
                    items:
                      type: string
                    type: array
                  localities:
                    description: Cities to be used on the Certificate.
                    items:
                      type: string
                    type: array
                  organizationalUnits:
                    description: Organizational Units to be used on the Certificate.
                    items:
                      type: string
                    type: array
                  organizations:
                    description: Organizations to be used on the Certificate.
                    items:
                      type: string
                    type: array
                  postalCodes:
                    description: Postal codes to be used on the Certificate.
                    items:
                      type: string
                    type: array
                  provinces:
                    description: State/Provinces to be used on the Certificate.
                    items:
                      type: string
                    type: array
                  serialNumber:
                    description: Serial number to be used on the Certificate.
                    type: string
                  streetAddresses:
                    description: Street addresses to be used on the Certificate.
                    items:
                      type: string
                    type: array
                type: object
              uris:
                description: URIs is a list of URI subjectAltNames to be set on the
                  Certificate.
                items:
                  type: string
                type: array
              usages:
                description: Usages is the set of x509 usages that are requested for
                  the certificate. Defaults to `digital signature` and `key encipherment`
                  if not specified.
                items:
                  description: "KeyUsage specifies valid usage contexts for keys.
                    See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12
                    \n Valid KeyUsage values are as follows: \"signing\", \"digital
                    signature\", \"content commitment\", \"key encipherment\", \"key
                    agreement\", \"data encipherment\", \"cert sign\", \"crl sign\",
                    \"encipher only\", \"decipher only\", \"any\", \"server auth\",
                    \"client auth\", \"code signing\", \"email protection\", \"s/mime\",
                    \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\", \"timestamping\",
                    \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\""
                  enum:
                  - signing
                  - digital signature
                  - content commitment
                  - key encipherment
                  - key agreement
                  - data encipherment
                  - cert sign
                  - crl sign
                  - encipher only
                  - decipher only
                  - any
                  - server auth
                  - client auth
                  - code signing
                  - email protection
                  - s/mime
                  - ipsec end system
                  - ipsec tunnel
                  - ipsec user
                  - timestamping
                  - ocsp signing
                  - microsoft sgc
                  - netscape sgc
                  type: string
                type: array
            required:
            - issuerRef
            - secretName
            type: object
          status:
            description: Status of the Certificate. This is set and managed automatically.
            properties:
              conditions:
                description: List of status conditions to indicate the status of certificates.
                  Known condition types are `Ready` and `Issuing`.
                items:
                  description: CertificateCondition contains condition information
                    for an Certificate.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the timestamp corresponding
                        to the last status change of this condition.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable description of the
                        details of the last transition, complementing reason.
                      type: string
                    observedGeneration:
                      description: If set, this represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the Certificate.
                      format: int64
                      type: integer
                    reason:
                      description: Reason is a brief machine readable explanation
                        for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of (`True`, `False`,
                        `Unknown`).
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: Type of the condition, known values are (`Ready`,
                        `Issuing`).
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              failedIssuanceAttempts:
                description: The number of continuous failed issuance attempts up
                  till now. This field gets removed (if set) on a successful issuance
                  and gets set to 1 if unset and an issuance has failed. If an issuance
                  has failed, the delay till the next issuance will be calculated
                  using formula time.Hour * 2 ^ (failedIssuanceAttempts - 1).
                type: integer
              lastFailureTime:
                description: LastFailureTime is set only if the lastest issuance for
                  this Certificate failed and contains the time of the failure. If
                  an issuance has failed, the delay till the next issuance will be
                  calculated using formula time.Hour * 2 ^ (failedIssuanceAttempts
                  - 1). If the latest issuance has succeeded this field will be unset.
                format: date-time
                type: string
              nextPrivateKeySecretName:
                description: The name of the Secret resource containing the private
                  key to be used for the next certificate iteration. The keymanager
                  controller will automatically set this field if the `Issuing` condition
                  is set to `True`. It will automatically unset this field when the
                  Issuing condition is not set or False.
                type: string
              notAfter:
                description: The expiration time of the certificate stored in the
                  secret named by this resource in `spec.secretName`.
                format: date-time
                type: string
              notBefore:
                description: The time after which the certificate stored in the secret
                  named by this resource in spec.secretName is valid.
                format: date-time
                type: string
              renewalTime:
                description: RenewalTime is the time at which the certificate will
                  be next renewed. If not set, no upcoming renewal is scheduled.
                format: date-time
                type: string
              revision:
                description: "The current 'revision' of the certificate as issued.
                  \n When a CertificateRequest resource is created, it will have the
                  `cert-manager.io/certificate-revision` set to one greater than the
                  current value of this field. \n Upon issuance, this field will be
                  set to the value of the annotation on the CertificateRequest resource
                  used to issue the certificate. \n Persisting the value on the CertificateRequest
                  resource allows the certificates controller to know whether a request
                  is part of an old issuance or if it is part of the ongoing revision's
                  issuance by checking if the revision value in the annotation is
                  greater than this field."
                type: integer
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: networking
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: certificates.networking.internal.knative.dev
spec:
  group: networking.internal.knative.dev
  names:
    categories:
    - knative-internal
    - networking
    kind: Certificate
    plural: certificates
    shortNames:
    - kcert
    singular: certificate
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Certificate is responsible for provisioning a SSL certificate
          for the given hosts. It is a Knative abstraction for various SSL certificate
          provisioning solutions (such as cert-manager or self-signed SSL certificate).
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'Spec is the desired state of the Certificate. More info:
              https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              dnsNames:
                description: DNSNames is a list of DNS names the Certificate could
                  support. The wildcard format of DNSNames (e.g. *.default.example.com)
                  is supported.
                items:
                  type: string
                type: array
              domain:
                description: Domain is the top level domain of the values for DNSNames.
                type: string
              secretName:
                description: SecretName is the name of the secret resource to store
                  the SSL certificate in.
                type: string
            required:
            - dnsNames
            - secretName
            type: object
          status:
            description: 'Status is the current state of the Certificate. More info:
              https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              http01Challenges:
                description: HTTP01Challenges is a list of HTTP01 challenges that
                  need to be fulfilled in order to get the TLS certificate..
                items:
                  description: HTTP01Challenge defines the status of a HTTP01 challenge
                    that a certificate needs to fulfill.
                  properties:
                    serviceName:
                      description: ServiceName is the name of the service to serve
                        HTTP01 challenge requests.
                      type: string
                    serviceNamespace:
                      description: ServiceNamespace is the namespace of the service
                        to serve HTTP01 challenge requests.
                      type: string
                    servicePort:
                      anyOf:
                      - type: integer
                      - type: string
                      description: ServicePort is the port of the service to serve
                        HTTP01 challenge requests.
                      x-kubernetes-int-or-string: true
                    url:
                      description: URL is the URL that the HTTP01 challenge is expected
                        to serve on.
                      type: string
                  type: object
                type: array
              notAfter:
                description: The expiration time of the TLS certificate stored in
                  the secret named by this resource in spec.secretName.
                format: date-time
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: challenges.acme.cert-manager.io
spec:
  group: acme.cert-manager.io
  names:
    categories:
    - cert-manager
    - cert-manager-acme
    kind: Challenge
    listKind: ChallengeList
    plural: challenges
    singular: challenge
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.state
      name: State
      type: string
    - jsonPath: .spec.dnsName
      name: Domain
      type: string
    - jsonPath: .status.reason
      name: Reason
      priority: 1
      type: string
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Challenge is a type to represent a Challenge request with an
          ACME server
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              authorizationURL:
                description: The URL to the ACME Authorization resource that this
                  challenge is a part of.
                type: string
              dnsName:
                description: dnsName is the identifier that this challenge is for,
                  e.g. example.com. If the requested DNSName is a 'wildcard', this
                  field MUST be set to the non-wildcard domain, e.g. for `*.example.com`,
                  it must be `example.com`.
                type: string
              issuerRef:
                description: References a properly configured ACME-type Issuer which
                  should be used to create this Challenge. If the Issuer does not
                  exist, processing will be retried. If the Issuer is not an 'ACME'
                  Issuer, an error will be returned and the Challenge will be marked
                  as failed.
                properties:
                  group:
                    description: Group of the resource being referred to.
                    type: string
                  kind:
                    description: Kind of the resource being referred to.
                    type: string
                  name:
                    description: Name of the resource being referred to.
                    type: string
                required:
                - name
                type: object
              key:
                description: 'The ACME challenge key for this challenge For HTTP01
                  challenges, this is the value that must be responded with to complete
                  the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key
                  from acme server for challenge>`. For DNS01 challenges, this is
                  the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key
                  from acme server for challenge>` text that must be set as the TXT
                  record content.'
                type: string
              solver:
                description: Contains the domain solving configuration that should
                  be used to solve this challenge resource.
                properties:
                  dns01:
                    description: Configures cert-manager to attempt to complete authorizations
                      by performing the DNS01 challenge flow.
                    properties:
                      acmeDNS:
                        description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns)
                          API to manage DNS01 challenge records.
                        properties:
                          accountSecretRef:
                            description: A reference to a specific 'key' within a
                              Secret resource. In some instances, `key` is a required
                              field.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          host:
                            type: string
                        required:
                        - accountSecretRef
                        - host
                        type: object
                      akamai:
                        description: Use the Akamai DNS zone management API to manage
                          DNS01 challenge records.
                        properties:
                          accessTokenSecretRef:
                            description: A reference to a specific 'key' within a
                              Secret resource. In some instances, `key` is a required
                              field.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          clientSecretSecretRef:
                            description: A reference to a specific 'key' within a
                              Secret resource. In some instances, `key` is a required
                              field.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          clientTokenSecretRef:
                            description: A reference to a specific 'key' within a
                              Secret resource. In some instances, `key` is a required
                              field.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          serviceConsumerDomain:
                            type: string
                        required:
                        - accessTokenSecretRef
                        - clientSecretSecretRef
                        - clientTokenSecretRef
                        - serviceConsumerDomain
                        type: object
                      azureDNS:
                        description: Use the Microsoft Azure DNS API to manage DNS01
                          challenge records.
                        properties:
                          clientID:
                            description: if both this and ClientSecret are left unset
                              MSI will be used
                            type: string
                          clientSecretSecretRef:
                            description: if both this and ClientID are left unset
                              MSI will be used
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          environment:
                            description: name of the Azure environment (default AzurePublicCloud)
                            enum:
                            - AzurePublicCloud
                            - AzureChinaCloud
                            - AzureGermanCloud
                            - AzureUSGovernmentCloud
                            type: string
                          hostedZoneName:
                            description: name of the DNS zone that should be used
                            type: string
                          managedIdentity:
                            description: managed identity configuration, can not be
                              used at the same time as clientID, clientSecretSecretRef
                              or tenantID
                            properties:
                              clientID:
                                description: client ID of the managed identity, can
                                  not be used at the same time as resourceID
                                type: string
                              resourceID:
                                description: resource ID of the managed identity,
                                  can not be used at the same time as clientID
                                type: string
                            type: object
                          resourceGroupName:
                            description: resource group the DNS zone is located in
                            type: string
                          subscriptionID:
                            description: ID of the Azure subscription
                            type: string
                          tenantID:
                            description: when specifying ClientID and ClientSecret
                              then this field is also needed
                            type: string
                        required:
                        - resourceGroupName
                        - subscriptionID
                        type: object
                      cloudDNS:
                        description: Use the Google Cloud DNS API to manage DNS01
                          challenge records.
                        properties:
                          hostedZoneName:
                            description: HostedZoneName is an optional field that
                              tells cert-manager in which Cloud DNS zone the challenge
                              record has to be created. If left empty cert-manager
                              will automatically choose a zone.
                            type: string
                          project:
                            type: string
                          serviceAccountSecretRef:
                            description: A reference to a specific 'key' within a
                              Secret resource. In some instances, `key` is a required
                              field.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - project
                        type: object
                      cloudflare:
                        description: Use the Cloudflare API to manage DNS01 challenge
                          records.
                        properties:
                          apiKeySecretRef:
                            description: 'API key to use to authenticate with Cloudflare.
                              Note: using an API token to authenticate is now the
                              recommended method as it allows greater control of permissions.'
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          apiTokenSecretRef:
                            description: API token used to authenticate with Cloudflare.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          email:
                            description: Email of the account, only required when
                              using API key based authentication.
                            type: string
                        type: object
                      cnameStrategy:
                        description: CNAMEStrategy configures how the DNS01 provider
                          should handle CNAME records when found in DNS zones.
                        enum:
                        - None
                        - Follow
                        type: string
                      digitalocean:
                        description: Use the DigitalOcean DNS API to manage DNS01
                          challenge records.
                        properties:
                          tokenSecretRef:
                            description: A reference to a specific 'key' within a
                              Secret resource. In some instances, `key` is a required
                              field.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - tokenSecretRef
                        type: object
                      rfc2136:
                        description: Use RFC2136 ("Dynamic Updates in the Domain Name
                          System") (https://datatracker.ietf.org/doc/rfc2136/) to
                          manage DNS01 challenge records.
                        properties:
                          nameserver:
                            description: The IP address or hostname of an authoritative
                              DNS server supporting RFC2136 in the form host:port.
                              If the host is an IPv6 address it must be enclosed in
                              square brackets (e.g [2001:db8::1]) ; port is optional.
                              This field is required.
                            type: string
                          tsigAlgorithm:
                            description: 'The TSIG Algorithm configured in the DNS
                              supporting RFC2136. Used only when ``tsigSecretSecretRef``
                              and ``tsigKeyName`` are defined. Supported values are
                              (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``,
                              ``HMACSHA256`` or ``HMACSHA512``.'
                            type: string
                          tsigKeyName:
                            description: The TSIG Key name configured in the DNS.
                              If ``tsigSecretSecretRef`` is defined, this field is
                              required.
                            type: string
                          tsigSecretSecretRef:
                            description: The name of the secret containing the TSIG
                              value. If ``tsigKeyName`` is defined, this field is
                              required.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - nameserver
                        type: object
                      route53:
                        description: Use the AWS Route53 API to manage DNS01 challenge
                          records.
                        properties:
                          accessKeyID:
                            description: 'The AccessKeyID is used for authentication.
                              Cannot be set when SecretAccessKeyID is set. If neither
                              the Access Key nor Key ID are set, we fall-back to using
                              env vars, shared credentials file or AWS Instance metadata,
                              see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                            type: string
                          accessKeyIDSecretRef:
                            description: 'The SecretAccessKey is used for authentication.
                              If set, pull the AWS access key ID from a key within
                              a Kubernetes Secret. Cannot be set when AccessKeyID
                              is set. If neither the Access Key nor Key ID are set,
                              we fall-back to using env vars, shared credentials file
                              or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          hostedZoneID:
                            description: If set, the provider will manage only this
                              zone in Route53 and will not do an lookup using the
                              route53:ListHostedZonesByName api call.
                            type: string
                          region:
                            description: Always set the region when using AccessKeyID
                              and SecretAccessKey
                            type: string
                          role:
                            description: Role is a Role ARN which the Route53 provider
                              will assume using either the explicit credentials AccessKeyID/SecretAccessKey
                              or the inferred credentials from environment variables,
                              shared credentials file or AWS Instance metadata
                            type: string
                          secretAccessKeySecretRef:
                            description: 'The SecretAccessKey is used for authentication.
                              If neither the Access Key nor Key ID are set, we fall-back
                              to using env vars, shared credentials file or AWS Instance
                              metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - region
                        type: object
                      webhook:
                        description: Configure an external webhook based DNS01 challenge
                          solver to manage DNS01 challenge records.
                        properties:
                          config:
                            description: Additional configuration that should be passed
                              to the webhook apiserver when challenges are processed.
                              This can contain arbitrary JSON data. Secret values
                              should not be specified in this stanza. If secret values
                              are needed (e.g. credentials for a DNS service), you
                              should use a SecretKeySelector to reference a Secret
                              resource. For details on the schema of this field, consult
                              the webhook provider implementation's documentation.
                            x-kubernetes-preserve-unknown-fields: true
                          groupName:
                            description: The API group name that should be used when
                              POSTing ChallengePayload resources to the webhook apiserver.
                              This should be the same as the GroupName specified in
                              the webhook provider implementation.
                            type: string
                          solverName:
                            description: The name of the solver to use, as defined
                              in the webhook provider implementation. This will typically
                              be the name of the provider, e.g. 'cloudflare'.
                            type: string
                        required:
                        - groupName
                        - solverName
                        type: object
                    type: object
                  http01:
                    description: Configures cert-manager to attempt to complete authorizations
                      by performing the HTTP01 challenge flow. It is not possible
                      to obtain certificates for wildcard domain names (e.g. `*.example.com`)
                      using the HTTP01 challenge mechanism.
                    properties:
                      gatewayHTTPRoute:
                        description: The Gateway API is a sig-network community API
                          that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/).
                          The Gateway solver will create HTTPRoutes with the specified
                          labels in the same namespace as the challenge. This solver
                          is experimental, and fields / behaviour may change in the
                          future.
                        properties:
                          labels:
                            additionalProperties:
                              type: string
                            description: Custom labels that will be applied to HTTPRoutes
                              created by cert-manager while solving HTTP-01 challenges.
                            type: object
                          parentRefs:
                            description: 'When solving an HTTP-01 challenge, cert-manager
                              creates an HTTPRoute. cert-manager needs to know which
                              parentRefs should be used when creating the HTTPRoute.
                              Usually, the parentRef references a Gateway. See: https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways'
                            items:
                              description: "ParentReference identifies an API object
                                (usually a Gateway) that can be considered a parent
                                of this resource (usually a route). The only kind
                                of parent resource with \"Core\" support is Gateway.
                                This API may be extended in the future to support
                                additional kinds of parent resources, such as HTTPRoute.
                                \n The API object must be valid in the cluster; the
                                Group and Kind must be registered in the cluster for
                                this reference to be valid."
                              properties:
                                group:
                                  default: gateway.networking.k8s.io
                                  description: "Group is the group of the referent.
                                    When unspecified, \"gateway.networking.k8s.io\"
                                    is inferred. To set the core API group (such as
                                    for a \"Service\" kind referent), Group must be
                                    explicitly set to \"\" (empty string). \n Support:
                                    Core"
                                  maxLength: 253
                                  pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                  type: string
                                kind:
                                  default: Gateway
                                  description: "Kind is kind of the referent. \n Support:
                                    Core (Gateway) \n Support: Implementation-specific
                                    (Other Resources)"
                                  maxLength: 63
                                  minLength: 1
                                  pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                  type: string
                                name:
                                  description: "Name is the name of the referent.
                                    \n Support: Core"
                                  maxLength: 253
                                  minLength: 1
                                  type: string
                                namespace:
                                  description: "Namespace is the namespace of the
                                    referent. When unspecified, this refers to the
                                    local namespace of the Route. \n Note that there
                                    are specific rules for ParentRefs which cross
                                    namespace boundaries. Cross-namespace references
                                    are only valid if they are explicitly allowed
                                    by something in the namespace they are referring
                                    to. For example: Gateway has the AllowedRoutes
                                    field, and ReferenceGrant provides a generic way
                                    to enable any other kind of cross-namespace reference.
                                    \n Support: Core"
                                  maxLength: 63
                                  minLength: 1
                                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                  type: string
                                port:
                                  description: "Port is the network port this Route
                                    targets. It can be interpreted differently based
                                    on the type of parent resource. \n When the parent
                                    resource is a Gateway, this targets all listeners
                                    listening on the specified port that also support
                                    this kind of Route(and select this Route). It's
                                    not recommended to set `Port` unless the networking
                                    behaviors specified in a Route must apply to a
                                    specific port as opposed to a listener(s) whose
                                    port(s) may be changed. When both Port and SectionName
                                    are specified, the name and port of the selected
                                    listener must match both specified values. \n
                                    Implementations MAY choose to support other parent
                                    resources. Implementations supporting other types
                                    of parent resources MUST clearly document how/if
                                    Port is interpreted. \n For the purpose of status,
                                    an attachment is considered successful as long
                                    as the parent resource accepts it partially. For
                                    example, Gateway listeners can restrict which
                                    Routes can attach to them by Route kind, namespace,
                                    or hostname. If 1 of 2 Gateway listeners accept
                                    attachment from the referencing Route, the Route
                                    MUST be considered successfully attached. If no
                                    Gateway listeners accept attachment from this
                                    Route, the Route MUST be considered detached from
                                    the Gateway. \n Support: Extended \n <gateway:experimental>"
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                sectionName:
                                  description: "SectionName is the name of a section
                                    within the target resource. In the following resources,
                                    SectionName is interpreted as the following: \n
                                    * Gateway: Listener Name. When both Port (experimental)
                                    and SectionName are specified, the name and port
                                    of the selected listener must match both specified
                                    values. \n Implementations MAY choose to support
                                    attaching Routes to other resources. If that is
                                    the case, they MUST clearly document how SectionName
                                    is interpreted. \n When unspecified (empty string),
                                    this will reference the entire resource. For the
                                    purpose of status, an attachment is considered
                                    successful if at least one section in the parent
                                    resource accepts it. For example, Gateway listeners
                                    can restrict which Routes can attach to them by
                                    Route kind, namespace, or hostname. If 1 of 2
                                    Gateway listeners accept attachment from the referencing
                                    Route, the Route MUST be considered successfully
                                    attached. If no Gateway listeners accept attachment
                                    from this Route, the Route MUST be considered
                                    detached from the Gateway. \n Support: Core"
                                  maxLength: 253
                                  minLength: 1
                                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                          serviceType:
                            description: Optional service type for Kubernetes solver
                              service. Supported values are NodePort or ClusterIP.
                              If unset, defaults to NodePort.
                            type: string
                        type: object
                      ingress:
                        description: The ingress based HTTP01 challenge solver will
                          solve challenges by creating or modifying Ingress resources
                          in order to route requests for '/.well-known/acme-challenge/XYZ'
                          to 'challenge solver' pods that are provisioned by cert-manager
                          for each Challenge to be completed.
                        properties:
                          class:
                            description: This field configures the annotation `kubernetes.io/ingress.class`
                              when creating Ingress resources to solve ACME challenges
                              that use this challenge solver. Only one of `class`,
                              `name` or `ingressClassName` may be specified.
                            type: string
                          ingressClassName:
                            description: This field configures the field `ingressClassName`
                              on the created Ingress resources used to solve ACME
                              challenges that use this challenge solver. This is the
                              recommended way of configuring the ingress class. Only
                              one of `class`, `name` or `ingressClassName` may be
                              specified.
                            type: string
                          ingressTemplate:
                            description: Optional ingress template used to configure
                              the ACME challenge solver ingress used for HTTP01 challenges.
                            properties:
                              metadata:
                                description: ObjectMeta overrides for the ingress
                                  used to solve HTTP01 challenges. Only the 'labels'
                                  and 'annotations' fields may be set. If labels or
                                  annotations overlap with in-built values, the values
                                  here will override the in-built values.
                                properties:
                                  annotations:
                                    additionalProperties:
                                      type: string
                                    description: Annotations that should be added
                                      to the created ACME HTTP01 solver ingress.
                                    type: object
                                  labels:
                                    additionalProperties:
                                      type: string
                                    description: Labels that should be added to the
                                      created ACME HTTP01 solver ingress.
                                    type: object
                                type: object
                            type: object
                          name:
                            description: The name of the ingress resource that should
                              have ACME challenge solving routes inserted into it
                              in order to solve HTTP01 challenges. This is typically
                              used in conjunction with ingress controllers like ingress-gce,
                              which maintains a 1:1 mapping between external IPs and
                              ingress resources. Only one of `class`, `name` or `ingressClassName`
                              may be specified.
                            type: string
                          podTemplate:
                            description: Optional pod template used to configure the
                              ACME challenge solver pods used for HTTP01 challenges.
                            properties:
                              metadata:
                                description: ObjectMeta overrides for the pod used
                                  to solve HTTP01 challenges. Only the 'labels' and
                                  'annotations' fields may be set. If labels or annotations
                                  overlap with in-built values, the values here will
                                  override the in-built values.
                                properties:
                                  annotations:
                                    additionalProperties:
                                      type: string
                                    description: Annotations that should be added
                                      to the create ACME HTTP01 solver pods.
                                    type: object
                                  labels:
                                    additionalProperties:
                                      type: string
                                    description: Labels that should be added to the
                                      created ACME HTTP01 solver pods.
                                    type: object
                                type: object
                              spec:
                                description: PodSpec defines overrides for the HTTP01
                                  challenge solver pod. Check ACMEChallengeSolverHTTP01IngressPodSpec
                                  to find out currently supported fields. All other
                                  fields will be ignored.
                                properties:
                                  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.
                                              The node that is most preferred is the
                                              one with the greatest sum of weights,
                                              i.e. for each node that meets all of
                                              the scheduling requirements (resource
                                              request, requiredDuringScheduling affinity
                                              expressions, etc.), compute a sum by
                                              iterating through the elements of this
                                              field and adding "weight" to the sum
                                              if the node matches the corresponding
                                              matchExpressions; the node(s) with the
                                              highest sum are the most preferred.
                                            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. If the operator
                                                              is Gt or Lt, the values
                                                              array must have a single
                                                              element, which will
                                                              be interpreted as an
                                                              integer. This array
                                                              is replaced during a
                                                              strategic merge patch.
                                                            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. If the operator
                                                              is Gt or Lt, the values
                                                              array must have a single
                                                              element, which will
                                                              be interpreted as an
                                                              integer. This array
                                                              is replaced during a
                                                              strategic merge patch.
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                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. If the affinity
                                              requirements specified by this field
                                              cease to be met at some point during
                                              pod execution (e.g. due to an update),
                                              the system may or may not try to eventually
                                              evict the pod from its 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. If the operator
                                                              is Gt or Lt, the values
                                                              array must have a single
                                                              element, which will
                                                              be interpreted as an
                                                              integer. This array
                                                              is replaced during a
                                                              strategic merge patch.
                                                            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. If the operator
                                                              is Gt or Lt, the values
                                                              array must have a single
                                                              element, which will
                                                              be interpreted as an
                                                              integer. This array
                                                              is replaced during a
                                                              strategic merge patch.
                                                            items:
                                                              type: string
                                                            type: array
                                                        required:
                                                        - key
                                                        - operator
                                                        type: object
                                                      type: array
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                type: array
                                            required:
                                            - nodeSelectorTerms
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        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.
                                              The node that is most preferred is the
                                              one with the greatest sum of weights,
                                              i.e. for each node that meets all of
                                              the scheduling requirements (resource
                                              request, requiredDuringScheduling affinity
                                              expressions, etc.), compute a sum by
                                              iterating through the elements of this
                                              field and adding "weight" to the sum
                                              if the node has pods which matches the
                                              corresponding podAffinityTerm; the node(s)
                                              with the highest sum are the most preferred.
                                            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. This
                                                                  array is replaced
                                                                  during a strategic
                                                                  merge patch.
                                                                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. A single {key,value}
                                                            in the matchLabels map
                                                            is equivalent to an element
                                                            of matchExpressions, whose
                                                            key field is "key", the
                                                            operator is "In", and
                                                            the values array contains
                                                            only "value". The requirements
                                                            are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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. null
                                                        selector and null or empty
                                                        namespaces list means "this
                                                        pod's namespace". An empty
                                                        selector ({}) matches all
                                                        namespaces.
                                                      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. This
                                                                  array is replaced
                                                                  during a strategic
                                                                  merge patch.
                                                                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. A single {key,value}
                                                            in the matchLabels map
                                                            is equivalent to an element
                                                            of matchExpressions, whose
                                                            key field is "key", the
                                                            operator is "In", and
                                                            the values array contains
                                                            only "value". The requirements
                                                            are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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.
                                                        null or empty namespaces list
                                                        and null namespaceSelector
                                                        means "this pod's namespace".
                                                      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
                                                        with key topologyKey matches
                                                        that of any node on which
                                                        any of the selected pods is
                                                        running. Empty topologyKey
                                                        is not allowed.
                                                      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. If the affinity
                                              requirements specified by this field
                                              cease to be met at some point during
                                              pod execution (e.g. due to a pod label
                                              update), the system may or may not try
                                              to eventually evict the pod from its
                                              node. When there are multiple elements,
                                              the lists of nodes corresponding to
                                              each podAffinityTerm are intersected,
                                              i.e. all terms must be satisfied.
                                            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 running on a node whose value of
                                                the label with key <topologyKey> matches
                                                that of any node on which a pod of
                                                the set of pods is running
                                              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. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            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.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                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. null selector and null
                                                    or empty namespaces list means
                                                    "this pod's namespace". An empty
                                                    selector ({}) matches all namespaces.
                                                  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. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            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.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                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. null or empty
                                                    namespaces list and null namespaceSelector
                                                    means "this pod's namespace".
                                                  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
                                                    with key topologyKey matches that
                                                    of any node on which any of the
                                                    selected pods is running. Empty
                                                    topologyKey is not allowed.
                                                  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.
                                              The node that is most preferred is the
                                              one with the greatest sum of weights,
                                              i.e. for each node that meets all of
                                              the scheduling requirements (resource
                                              request, requiredDuringScheduling anti-affinity
                                              expressions, etc.), compute a sum by
                                              iterating through the elements of this
                                              field and adding "weight" to the sum
                                              if the node has pods which matches the
                                              corresponding podAffinityTerm; the node(s)
                                              with the highest sum are the most preferred.
                                            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. This
                                                                  array is replaced
                                                                  during a strategic
                                                                  merge patch.
                                                                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. A single {key,value}
                                                            in the matchLabels map
                                                            is equivalent to an element
                                                            of matchExpressions, whose
                                                            key field is "key", the
                                                            operator is "In", and
                                                            the values array contains
                                                            only "value". The requirements
                                                            are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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. null
                                                        selector and null or empty
                                                        namespaces list means "this
                                                        pod's namespace". An empty
                                                        selector ({}) matches all
                                                        namespaces.
                                                      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. This
                                                                  array is replaced
                                                                  during a strategic
                                                                  merge patch.
                                                                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. A single {key,value}
                                                            in the matchLabels map
                                                            is equivalent to an element
                                                            of matchExpressions, whose
                                                            key field is "key", the
                                                            operator is "In", and
                                                            the values array contains
                                                            only "value". The requirements
                                                            are ANDed.
                                                          type: object
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    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.
                                                        null or empty namespaces list
                                                        and null namespaceSelector
                                                        means "this pod's namespace".
                                                      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
                                                        with key topologyKey matches
                                                        that of any node on which
                                                        any of the selected pods is
                                                        running. Empty topologyKey
                                                        is not allowed.
                                                      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. If the anti-affinity
                                              requirements specified by this field
                                              cease to be met at some point during
                                              pod execution (e.g. due to a pod label
                                              update), the system may or may not try
                                              to eventually evict the pod from its
                                              node. When there are multiple elements,
                                              the lists of nodes corresponding to
                                              each podAffinityTerm are intersected,
                                              i.e. all terms must be satisfied.
                                            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 running on a node whose value of
                                                the label with key <topologyKey> matches
                                                that of any node on which a pod of
                                                the set of pods is running
                                              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. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            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.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                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. null selector and null
                                                    or empty namespaces list means
                                                    "this pod's namespace". An empty
                                                    selector ({}) matches all namespaces.
                                                  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. This array is
                                                              replaced during a strategic
                                                              merge patch.
                                                            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.
                                                        A single {key,value} in the
                                                        matchLabels map is equivalent
                                                        to an element of matchExpressions,
                                                        whose key field is "key",
                                                        the operator is "In", and
                                                        the values array contains
                                                        only "value". The requirements
                                                        are ANDed.
                                                      type: object
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                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. null or empty
                                                    namespaces list and null namespaceSelector
                                                    means "this pod's namespace".
                                                  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
                                                    with key topologyKey matches that
                                                    of any node on which any of the
                                                    selected pods is running. Empty
                                                    topologyKey is not allowed.
                                                  type: string
                                              required:
                                              - topologyKey
                                              type: object
                                            type: array
                                        type: object
                                    type: object
                                  imagePullSecrets:
                                    description: If specified, the pod's imagePullSecrets
                                    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
                                      x-kubernetes-map-type: atomic
                                    type: array
                                  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.io/docs/concepts/configuration/assign-pod-node/'
                                    type: object
                                  priorityClassName:
                                    description: If specified, the pod's priorityClassName.
                                    type: string
                                  serviceAccountName:
                                    description: If specified, the pod's service account
                                    type: string
                                  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.
                                            By default, it is not set, which means
                                            tolerate the taint forever (do not evict).
                                            Zero and negative values will be treated
                                            as 0 (evict immediately) by the system.
                                          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
                                type: object
                            type: object
                          serviceType:
                            description: Optional service type for Kubernetes solver
                              service. Supported values are NodePort or ClusterIP.
                              If unset, defaults to NodePort.
                            type: string
                        type: object
                    type: object
                  selector:
                    description: Selector selects a set of DNSNames on the Certificate
                      resource that should be solved using this challenge solver.
                      If not specified, the solver will be treated as the 'default'
                      solver with the lowest priority, i.e. if any other solver has
                      a more specific match, it will be used instead.
                    properties:
                      dnsNames:
                        description: List of DNSNames that this solver will be used
                          to solve. If specified and a match is found, a dnsNames
                          selector will take precedence over a dnsZones selector.
                          If multiple solvers match with the same dnsNames value,
                          the solver with the most matching labels in matchLabels
                          will be selected. If neither has more matches, the solver
                          defined earlier in the list will be selected.
                        items:
                          type: string
                        type: array
                      dnsZones:
                        description: List of DNSZones that this solver will be used
                          to solve. The most specific DNS zone match specified here
                          will take precedence over other DNS zone matches, so a solver
                          specifying sys.example.com will be selected over one specifying
                          example.com for the domain www.sys.example.com. If multiple
                          solvers match with the same dnsZones value, the solver with
                          the most matching labels in matchLabels will be selected.
                          If neither has more matches, the solver defined earlier
                          in the list will be selected.
                        items:
                          type: string
                        type: array
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: A label selector that is used to refine the set
                          of certificate's that this challenge solver will apply to.
                        type: object
                    type: object
                type: object
              token:
                description: The ACME challenge token for this challenge. This is
                  the raw value returned from the ACME server.
                type: string
              type:
                description: The type of ACME challenge this resource represents.
                  One of "HTTP-01" or "DNS-01".
                enum:
                - HTTP-01
                - DNS-01
                type: string
              url:
                description: The URL of the ACME Challenge resource for this challenge.
                  This can be used to lookup details about the status of this challenge.
                type: string
              wildcard:
                description: wildcard will be true if this challenge is for a wildcard
                  identifier, for example '*.example.com'.
                type: boolean
            required:
            - authorizationURL
            - dnsName
            - issuerRef
            - key
            - solver
            - token
            - type
            - url
            type: object
          status:
            properties:
              presented:
                description: presented will be set to true if the challenge values
                  for this challenge are currently 'presented'. This *does not* imply
                  the self check is passing. Only that the values have been 'submitted'
                  for the appropriate challenge mechanism (i.e. the DNS01 TXT record
                  has been presented, or the HTTP01 configuration has been configured).
                type: boolean
              processing:
                description: Used to denote whether this challenge should be processed
                  or not. This field will only be set to true by the 'scheduling'
                  component. It will only be set to false by the 'challenges' controller,
                  after the challenge has reached a final state or timed out. If this
                  field is set to false, the challenge controller will not take any
                  more action.
                type: boolean
              reason:
                description: Contains human readable information on why the Challenge
                  is in the current state.
                type: string
              state:
                description: Contains the current 'state' of the challenge. If not
                  set, the state of the challenge is unknown.
                enum:
                - valid
                - ready
                - pending
                - processing
                - invalid
                - expired
                - errored
                type: string
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
    messaging.knative.dev/subscribable: "true"
  name: channels.messaging.knative.dev
spec:
  group: messaging.knative.dev
  names:
    categories:
    - all
    - knative
    - messaging
    - channel
    kind: Channel
    plural: channels
    shortNames:
    - ch
    singular: channel
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.address.url
      name: URL
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: Channel represents a generic Channel. It is normally used when
          we want a Channel, but do not need a specific Channel implementation.
        properties:
          spec:
            description: Spec defines the desired state of the Channel.
            properties:
              channelTemplate:
                description: ChannelTemplate specifies which Channel CRD to use to
                  create the CRD Channel backing this Channel. This is immutable after
                  creation. Normally this is set by the Channel defaulter, not directly
                  by the user.
                properties:
                  apiVersion:
                    description: 'APIVersion defines the versioned schema of this
                      representation of an object. Servers should convert recognized
                      schemas to the latest internal value, and may reject unrecognized
                      values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                    type: string
                  kind:
                    description: 'Kind is a string value representing the REST resource
                      this object represents. Servers may infer this from the endpoint
                      the client submits requests to. Cannot be updated. In CamelCase.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  spec:
                    description: Spec defines the Spec to use for each channel created.
                      Passed in verbatim to the Channel CRD as Spec section.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              delivery:
                description: DeliverySpec contains the default delivery spec for each
                  subscription to this Channelable. Each subscription delivery spec,
                  if any, overrides this global delivery spec.
                properties:
                  backoffDelay:
                    description: 'BackoffDelay is the delay before retrying. More
                      information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                      - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                      backoff delay is backoffDelay*<numberOfRetries>. For exponential
                      policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                    type: string
                  backoffPolicy:
                    description: BackoffPolicy is the retry backoff policy (linear,
                      exponential).
                    type: string
                  deadLetterSink:
                    description: DeadLetterSink is the sink receiving event that could
                      not be sent to a destination.
                    properties:
                      ref:
                        description: Ref points to an Addressable.
                        properties:
                          apiVersion:
                            description: API version of the referent.
                            type: string
                          kind:
                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                            type: string
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          namespace:
                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                              This is optional field, it gets defaulted to the object
                              holding it if left out.'
                            type: string
                        type: object
                      uri:
                        description: URI can be an absolute URL(non-empty scheme and
                          non-empty host) pointing to the target or a relative URI.
                          Relative URIs will be resolved using the base URI retrieved
                          from Ref.
                        type: string
                    type: object
                  retry:
                    description: Retry is the minimum number of retries the sender
                      should attempt when sending an event before moving it to the
                      dead letter sink.
                    format: int32
                    type: integer
                type: object
                x-kubernetes-preserve-unknown-fields: true
              subscribers:
                description: This is the list of subscriptions for this subscribable.
                items:
                  properties:
                    delivery:
                      description: DeliverySpec contains options controlling the event
                        delivery
                      properties:
                        backoffDelay:
                          description: 'BackoffDelay is the delay before retrying.
                            More information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                            - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                            backoff delay is backoffDelay*<numberOfRetries>. For exponential
                            policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                          type: string
                        backoffPolicy:
                          description: BackoffPolicy is the retry backoff policy (linear,
                            exponential).
                          type: string
                        deadLetterSink:
                          description: DeadLetterSink is the sink receiving event
                            that could not be sent to a destination.
                          properties:
                            ref:
                              description: Ref points to an Addressable.
                              properties:
                                apiVersion:
                                  description: API version of the referent.
                                  type: string
                                kind:
                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                namespace:
                                  description: 'Namespace of the referent. More info:
                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                                    This is optional field, it gets defaulted to the
                                    object holding it if left out.'
                                  type: string
                              type: object
                            uri:
                              description: URI can be an absolute URL(non-empty scheme
                                and non-empty host) pointing to the target or a relative
                                URI. Relative URIs will be resolved using the base
                                URI retrieved from Ref.
                              type: string
                          type: object
                        retry:
                          description: Retry is the minimum number of retries the
                            sender should attempt when sending an event before moving
                            it to the dead letter sink.
                          format: int32
                          type: integer
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    generation:
                      description: Generation of the origin of the subscriber with
                        uid:UID.
                      format: int64
                      type: integer
                    replyUri:
                      description: ReplyURI is the endpoint for the reply
                      type: string
                    subscriberUri:
                      description: SubscriberURI is the endpoint for the subscriber
                      type: string
                    uid:
                      description: UID is used to understand the origin of the subscriber.
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: Status represents the current state of the Channel. This
              data may be out of date.
            properties:
              address:
                properties:
                  url:
                    type: string
                type: object
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              channel:
                description: Channel is an KReference to the Channel CRD backing this
                  Channel.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                      This is optional field, it gets defaulted to the object holding
                      it if left out.'
                    type: string
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              deadLetterChannel:
                description: DeadLetterChannel is a KReference and is set by the channel
                  when it supports native error handling via a channel Failed messages
                  are delivered here.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                      This is optional field, it gets defaulted to the object holding
                      it if left out.'
                    type: string
                type: object
              deadLetterSinkUri:
                description: DeadLetterSinkURI is the resolved URI of the dead letter
                  sink that will be used as a fallback when not specified by Triggers.
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              subscribers:
                description: This is the list of subscription's statuses for this
                  channel.
                items:
                  properties:
                    message:
                      description: A human readable message indicating details of
                        Ready status.
                      type: string
                    observedGeneration:
                      description: Generation of the origin of the subscriber with
                        uid:UID.
                      format: int64
                      type: integer
                    ready:
                      description: Status of the subscriber.
                      type: string
                    uid:
                      description: UID is used to understand the origin of the subscriber.
                      type: string
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: networking
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: clusterdomainclaims.networking.internal.knative.dev
spec:
  group: networking.internal.knative.dev
  names:
    categories:
    - knative-internal
    - networking
    kind: ClusterDomainClaim
    plural: clusterdomainclaims
    shortNames:
    - cdc
    singular: clusterdomainclaim
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ClusterDomainClaim is a cluster-wide reservation for a particular
          domain name.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'Spec is the desired state of the ClusterDomainClaim. More
              info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              namespace:
                description: Namespace is the namespace which is allowed to create
                  a DomainMapping using this ClusterDomainClaim's name.
                type: string
            required:
            - namespace
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: clusterissuers.cert-manager.io
spec:
  group: cert-manager.io
  names:
    categories:
    - cert-manager
    kind: ClusterIssuer
    listKind: ClusterIssuerList
    plural: clusterissuers
    singular: clusterissuer
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: Status
      priority: 1
      type: string
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: A ClusterIssuer represents a certificate issuing authority which
          can be referenced as part of `issuerRef` fields. It is similar to an Issuer,
          however it is cluster-scoped and therefore can be referenced by resources
          that exist in *any* namespace, not just the same namespace as the referent.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Desired state of the ClusterIssuer resource.
            properties:
              acme:
                description: ACME configures this issuer to communicate with a RFC8555
                  (ACME) server to obtain signed x509 certificates.
                properties:
                  caBundle:
                    description: Base64-encoded bundle of PEM CAs which can be used
                      to validate the certificate chain presented by the ACME server.
                      Mutually exclusive with SkipTLSVerify; prefer using CABundle
                      to prevent various kinds of security vulnerabilities. If CABundle
                      and SkipTLSVerify are unset, the system certificate bundle inside
                      the container is used to validate the TLS connection.
                    format: byte
                    type: string
                  disableAccountKeyGeneration:
                    description: Enables or disables generating a new ACME account
                      key. If true, the Issuer resource will *not* request a new account
                      but will expect the account key to be supplied via an existing
                      secret. If false, the cert-manager system will generate a new
                      ACME account key for the Issuer. Defaults to false.
                    type: boolean
                  email:
                    description: Email is the email address to be associated with
                      the ACME account. This field is optional, but it is strongly
                      recommended to be set. It will be used to contact you in case
                      of issues with your account or certificates, including expiry
                      notification emails. This field may be updated after the account
                      is initially registered.
                    type: string
                  enableDurationFeature:
                    description: Enables requesting a Not After date on certificates
                      that matches the duration of the certificate. This is not supported
                      by all ACME servers like Let's Encrypt. If set to true when
                      the ACME server does not support it it will create an error
                      on the Order. Defaults to false.
                    type: boolean
                  externalAccountBinding:
                    description: ExternalAccountBinding is a reference to a CA external
                      account of the ACME server. If set, upon registration cert-manager
                      will attempt to associate the given external account credentials
                      with the registered ACME account.
                    properties:
                      keyAlgorithm:
                        description: 'Deprecated: keyAlgorithm field exists for historical
                          compatibility reasons and should not be used. The algorithm
                          is now hardcoded to HS256 in golang/x/crypto/acme.'
                        enum:
                        - HS256
                        - HS384
                        - HS512
                        type: string
                      keyID:
                        description: keyID is the ID of the CA key that the External
                          Account is bound to.
                        type: string
                      keySecretRef:
                        description: keySecretRef is a Secret Key Selector referencing
                          a data item in a Kubernetes Secret which holds the symmetric
                          MAC key of the External Account Binding. The `key` is the
                          index string that is paired with the key data in the Secret
                          and should not be confused with the key data itself, or
                          indeed with the External Account Binding keyID above. The
                          secret key stored in the Secret **must** be un-padded, base64
                          URL encoded data.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                    required:
                    - keyID
                    - keySecretRef
                    type: object
                  preferredChain:
                    description: 'PreferredChain is the chain to use if the ACME server
                      outputs multiple. PreferredChain is no guarantee that this one
                      gets delivered by the ACME endpoint. For example, for Let''s
                      Encrypt''s DST crosssign you would use: "DST Root CA X3" or
                      "ISRG Root X1" for the newer Let''s Encrypt root CA. This value
                      picks the first certificate bundle in the ACME alternative chains
                      that has a certificate with this value as its issuer''s CN'
                    maxLength: 64
                    type: string
                  privateKeySecretRef:
                    description: PrivateKey is the name of a Kubernetes Secret resource
                      that will be used to store the automatically generated ACME
                      account private key. Optionally, a `key` may be specified to
                      select a specific entry within the named Secret resource. If
                      `key` is not specified, a default of `tls.key` will be used.
                    properties:
                      key:
                        description: The key of the entry in the Secret resource's
                          `data` field to be used. Some instances of this field may
                          be defaulted, in others it may be required.
                        type: string
                      name:
                        description: 'Name of the resource being referred to. More
                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                    required:
                    - name
                    type: object
                  server:
                    description: 'Server is the URL used to access the ACME server''s
                      ''directory'' endpoint. For example, for Let''s Encrypt''s staging
                      endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory".
                      Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
                    type: string
                  skipTLSVerify:
                    description: 'INSECURE: Enables or disables validation of the
                      ACME server TLS certificate. If true, requests to the ACME server
                      will not have the TLS certificate chain validated. Mutually
                      exclusive with CABundle; prefer using CABundle to prevent various
                      kinds of security vulnerabilities. Only enable this option in
                      development environments. If CABundle and SkipTLSVerify are
                      unset, the system certificate bundle inside the container is
                      used to validate the TLS connection. Defaults to false.'
                    type: boolean
                  solvers:
                    description: 'Solvers is a list of challenge solvers that will
                      be used to solve ACME challenges for the matching domains. Solver
                      configurations must be provided in order to obtain certificates
                      from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
                    items:
                      description: An ACMEChallengeSolver describes how to solve ACME
                        challenges for the issuer it is part of. A selector may be
                        provided to use different solving strategies for different
                        DNS names. Only one of HTTP01 or DNS01 must be provided.
                      properties:
                        dns01:
                          description: Configures cert-manager to attempt to complete
                            authorizations by performing the DNS01 challenge flow.
                          properties:
                            acmeDNS:
                              description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns)
                                API to manage DNS01 challenge records.
                              properties:
                                accountSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                host:
                                  type: string
                              required:
                              - accountSecretRef
                              - host
                              type: object
                            akamai:
                              description: Use the Akamai DNS zone management API
                                to manage DNS01 challenge records.
                              properties:
                                accessTokenSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                clientSecretSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                clientTokenSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                serviceConsumerDomain:
                                  type: string
                              required:
                              - accessTokenSecretRef
                              - clientSecretSecretRef
                              - clientTokenSecretRef
                              - serviceConsumerDomain
                              type: object
                            azureDNS:
                              description: Use the Microsoft Azure DNS API to manage
                                DNS01 challenge records.
                              properties:
                                clientID:
                                  description: if both this and ClientSecret are left
                                    unset MSI will be used
                                  type: string
                                clientSecretSecretRef:
                                  description: if both this and ClientID are left
                                    unset MSI will be used
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                environment:
                                  description: name of the Azure environment (default
                                    AzurePublicCloud)
                                  enum:
                                  - AzurePublicCloud
                                  - AzureChinaCloud
                                  - AzureGermanCloud
                                  - AzureUSGovernmentCloud
                                  type: string
                                hostedZoneName:
                                  description: name of the DNS zone that should be
                                    used
                                  type: string
                                managedIdentity:
                                  description: managed identity configuration, can
                                    not be used at the same time as clientID, clientSecretSecretRef
                                    or tenantID
                                  properties:
                                    clientID:
                                      description: client ID of the managed identity,
                                        can not be used at the same time as resourceID
                                      type: string
                                    resourceID:
                                      description: resource ID of the managed identity,
                                        can not be used at the same time as clientID
                                      type: string
                                  type: object
                                resourceGroupName:
                                  description: resource group the DNS zone is located
                                    in
                                  type: string
                                subscriptionID:
                                  description: ID of the Azure subscription
                                  type: string
                                tenantID:
                                  description: when specifying ClientID and ClientSecret
                                    then this field is also needed
                                  type: string
                              required:
                              - resourceGroupName
                              - subscriptionID
                              type: object
                            cloudDNS:
                              description: Use the Google Cloud DNS API to manage
                                DNS01 challenge records.
                              properties:
                                hostedZoneName:
                                  description: HostedZoneName is an optional field
                                    that tells cert-manager in which Cloud DNS zone
                                    the challenge record has to be created. If left
                                    empty cert-manager will automatically choose a
                                    zone.
                                  type: string
                                project:
                                  type: string
                                serviceAccountSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - project
                              type: object
                            cloudflare:
                              description: Use the Cloudflare API to manage DNS01
                                challenge records.
                              properties:
                                apiKeySecretRef:
                                  description: 'API key to use to authenticate with
                                    Cloudflare. Note: using an API token to authenticate
                                    is now the recommended method as it allows greater
                                    control of permissions.'
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                apiTokenSecretRef:
                                  description: API token used to authenticate with
                                    Cloudflare.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                email:
                                  description: Email of the account, only required
                                    when using API key based authentication.
                                  type: string
                              type: object
                            cnameStrategy:
                              description: CNAMEStrategy configures how the DNS01
                                provider should handle CNAME records when found in
                                DNS zones.
                              enum:
                              - None
                              - Follow
                              type: string
                            digitalocean:
                              description: Use the DigitalOcean DNS API to manage
                                DNS01 challenge records.
                              properties:
                                tokenSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - tokenSecretRef
                              type: object
                            rfc2136:
                              description: Use RFC2136 ("Dynamic Updates in the Domain
                                Name System") (https://datatracker.ietf.org/doc/rfc2136/)
                                to manage DNS01 challenge records.
                              properties:
                                nameserver:
                                  description: The IP address or hostname of an authoritative
                                    DNS server supporting RFC2136 in the form host:port.
                                    If the host is an IPv6 address it must be enclosed
                                    in square brackets (e.g [2001:db8::1]) ; port
                                    is optional. This field is required.
                                  type: string
                                tsigAlgorithm:
                                  description: 'The TSIG Algorithm configured in the
                                    DNS supporting RFC2136. Used only when ``tsigSecretSecretRef``
                                    and ``tsigKeyName`` are defined. Supported values
                                    are (case-insensitive): ``HMACMD5`` (default),
                                    ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
                                  type: string
                                tsigKeyName:
                                  description: The TSIG Key name configured in the
                                    DNS. If ``tsigSecretSecretRef`` is defined, this
                                    field is required.
                                  type: string
                                tsigSecretSecretRef:
                                  description: The name of the secret containing the
                                    TSIG value. If ``tsigKeyName`` is defined, this
                                    field is required.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - nameserver
                              type: object
                            route53:
                              description: Use the AWS Route53 API to manage DNS01
                                challenge records.
                              properties:
                                accessKeyID:
                                  description: 'The AccessKeyID is used for authentication.
                                    Cannot be set when SecretAccessKeyID is set. If
                                    neither the Access Key nor Key ID are set, we
                                    fall-back to using env vars, shared credentials
                                    file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                                  type: string
                                accessKeyIDSecretRef:
                                  description: 'The SecretAccessKey is used for authentication.
                                    If set, pull the AWS access key ID from a key
                                    within a Kubernetes Secret. Cannot be set when
                                    AccessKeyID is set. If neither the Access Key
                                    nor Key ID are set, we fall-back to using env
                                    vars, shared credentials file or AWS Instance
                                    metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                hostedZoneID:
                                  description: If set, the provider will manage only
                                    this zone in Route53 and will not do an lookup
                                    using the route53:ListHostedZonesByName api call.
                                  type: string
                                region:
                                  description: Always set the region when using AccessKeyID
                                    and SecretAccessKey
                                  type: string
                                role:
                                  description: Role is a Role ARN which the Route53
                                    provider will assume using either the explicit
                                    credentials AccessKeyID/SecretAccessKey or the
                                    inferred credentials from environment variables,
                                    shared credentials file or AWS Instance metadata
                                  type: string
                                secretAccessKeySecretRef:
                                  description: 'The SecretAccessKey is used for authentication.
                                    If neither the Access Key nor Key ID are set,
                                    we fall-back to using env vars, shared credentials
                                    file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - region
                              type: object
                            webhook:
                              description: Configure an external webhook based DNS01
                                challenge solver to manage DNS01 challenge records.
                              properties:
                                config:
                                  description: Additional configuration that should
                                    be passed to the webhook apiserver when challenges
                                    are processed. This can contain arbitrary JSON
                                    data. Secret values should not be specified in
                                    this stanza. If secret values are needed (e.g.
                                    credentials for a DNS service), you should use
                                    a SecretKeySelector to reference a Secret resource.
                                    For details on the schema of this field, consult
                                    the webhook provider implementation's documentation.
                                  x-kubernetes-preserve-unknown-fields: true
                                groupName:
                                  description: The API group name that should be used
                                    when POSTing ChallengePayload resources to the
                                    webhook apiserver. This should be the same as
                                    the GroupName specified in the webhook provider
                                    implementation.
                                  type: string
                                solverName:
                                  description: The name of the solver to use, as defined
                                    in the webhook provider implementation. This will
                                    typically be the name of the provider, e.g. 'cloudflare'.
                                  type: string
                              required:
                              - groupName
                              - solverName
                              type: object
                          type: object
                        http01:
                          description: Configures cert-manager to attempt to complete
                            authorizations by performing the HTTP01 challenge flow.
                            It is not possible to obtain certificates for wildcard
                            domain names (e.g. `*.example.com`) using the HTTP01 challenge
                            mechanism.
                          properties:
                            gatewayHTTPRoute:
                              description: The Gateway API is a sig-network community
                                API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/).
                                The Gateway solver will create HTTPRoutes with the
                                specified labels in the same namespace as the challenge.
                                This solver is experimental, and fields / behaviour
                                may change in the future.
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: Custom labels that will be applied
                                    to HTTPRoutes created by cert-manager while solving
                                    HTTP-01 challenges.
                                  type: object
                                parentRefs:
                                  description: 'When solving an HTTP-01 challenge,
                                    cert-manager creates an HTTPRoute. cert-manager
                                    needs to know which parentRefs should be used
                                    when creating the HTTPRoute. Usually, the parentRef
                                    references a Gateway. See: https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways'
                                  items:
                                    description: "ParentReference identifies an API
                                      object (usually a Gateway) that can be considered
                                      a parent of this resource (usually a route).
                                      The only kind of parent resource with \"Core\"
                                      support is Gateway. This API may be extended
                                      in the future to support additional kinds of
                                      parent resources, such as HTTPRoute. \n The
                                      API object must be valid in the cluster; the
                                      Group and Kind must be registered in the cluster
                                      for this reference to be valid."
                                    properties:
                                      group:
                                        default: gateway.networking.k8s.io
                                        description: "Group is the group of the referent.
                                          When unspecified, \"gateway.networking.k8s.io\"
                                          is inferred. To set the core API group (such
                                          as for a \"Service\" kind referent), Group
                                          must be explicitly set to \"\" (empty string).
                                          \n Support: Core"
                                        maxLength: 253
                                        pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                        type: string
                                      kind:
                                        default: Gateway
                                        description: "Kind is kind of the referent.
                                          \n Support: Core (Gateway) \n Support: Implementation-specific
                                          (Other Resources)"
                                        maxLength: 63
                                        minLength: 1
                                        pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                        type: string
                                      name:
                                        description: "Name is the name of the referent.
                                          \n Support: Core"
                                        maxLength: 253
                                        minLength: 1
                                        type: string
                                      namespace:
                                        description: "Namespace is the namespace of
                                          the referent. When unspecified, this refers
                                          to the local namespace of the Route. \n
                                          Note that there are specific rules for ParentRefs
                                          which cross namespace boundaries. Cross-namespace
                                          references are only valid if they are explicitly
                                          allowed by something in the namespace they
                                          are referring to. For example: Gateway has
                                          the AllowedRoutes field, and ReferenceGrant
                                          provides a generic way to enable any other
                                          kind of cross-namespace reference. \n Support:
                                          Core"
                                        maxLength: 63
                                        minLength: 1
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      port:
                                        description: "Port is the network port this
                                          Route targets. It can be interpreted differently
                                          based on the type of parent resource. \n
                                          When the parent resource is a Gateway, this
                                          targets all listeners listening on the specified
                                          port that also support this kind of Route(and
                                          select this Route). It's not recommended
                                          to set `Port` unless the networking behaviors
                                          specified in a Route must apply to a specific
                                          port as opposed to a listener(s) whose port(s)
                                          may be changed. When both Port and SectionName
                                          are specified, the name and port of the
                                          selected listener must match both specified
                                          values. \n Implementations MAY choose to
                                          support other parent resources. Implementations
                                          supporting other types of parent resources
                                          MUST clearly document how/if Port is interpreted.
                                          \n For the purpose of status, an attachment
                                          is considered successful as long as the
                                          parent resource accepts it partially. For
                                          example, Gateway listeners can restrict
                                          which Routes can attach to them by Route
                                          kind, namespace, or hostname. If 1 of 2
                                          Gateway listeners accept attachment from
                                          the referencing Route, the Route MUST be
                                          considered successfully attached. If no
                                          Gateway listeners accept attachment from
                                          this Route, the Route MUST be considered
                                          detached from the Gateway. \n Support: Extended
                                          \n <gateway:experimental>"
                                        format: int32
                                        maximum: 65535
                                        minimum: 1
                                        type: integer
                                      sectionName:
                                        description: "SectionName is the name of a
                                          section within the target resource. In the
                                          following resources, SectionName is interpreted
                                          as the following: \n * Gateway: Listener
                                          Name. When both Port (experimental) and
                                          SectionName are specified, the name and
                                          port of the selected listener must match
                                          both specified values. \n Implementations
                                          MAY choose to support attaching Routes to
                                          other resources. If that is the case, they
                                          MUST clearly document how SectionName is
                                          interpreted. \n When unspecified (empty
                                          string), this will reference the entire
                                          resource. For the purpose of status, an
                                          attachment is considered successful if at
                                          least one section in the parent resource
                                          accepts it. For example, Gateway listeners
                                          can restrict which Routes can attach to
                                          them by Route kind, namespace, or hostname.
                                          If 1 of 2 Gateway listeners accept attachment
                                          from the referencing Route, the Route MUST
                                          be considered successfully attached. If
                                          no Gateway listeners accept attachment from
                                          this Route, the Route MUST be considered
                                          detached from the Gateway. \n Support: Core"
                                        maxLength: 253
                                        minLength: 1
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                serviceType:
                                  description: Optional service type for Kubernetes
                                    solver service. Supported values are NodePort
                                    or ClusterIP. If unset, defaults to NodePort.
                                  type: string
                              type: object
                            ingress:
                              description: The ingress based HTTP01 challenge solver
                                will solve challenges by creating or modifying Ingress
                                resources in order to route requests for '/.well-known/acme-challenge/XYZ'
                                to 'challenge solver' pods that are provisioned by
                                cert-manager for each Challenge to be completed.
                              properties:
                                class:
                                  description: This field configures the annotation
                                    `kubernetes.io/ingress.class` when creating Ingress
                                    resources to solve ACME challenges that use this
                                    challenge solver. Only one of `class`, `name`
                                    or `ingressClassName` may be specified.
                                  type: string
                                ingressClassName:
                                  description: This field configures the field `ingressClassName`
                                    on the created Ingress resources used to solve
                                    ACME challenges that use this challenge solver.
                                    This is the recommended way of configuring the
                                    ingress class. Only one of `class`, `name` or
                                    `ingressClassName` may be specified.
                                  type: string
                                ingressTemplate:
                                  description: Optional ingress template used to configure
                                    the ACME challenge solver ingress used for HTTP01
                                    challenges.
                                  properties:
                                    metadata:
                                      description: ObjectMeta overrides for the ingress
                                        used to solve HTTP01 challenges. Only the
                                        'labels' and 'annotations' fields may be set.
                                        If labels or annotations overlap with in-built
                                        values, the values here will override the
                                        in-built values.
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          description: Annotations that should be
                                            added to the created ACME HTTP01 solver
                                            ingress.
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          description: Labels that should be added
                                            to the created ACME HTTP01 solver ingress.
                                          type: object
                                      type: object
                                  type: object
                                name:
                                  description: The name of the ingress resource that
                                    should have ACME challenge solving routes inserted
                                    into it in order to solve HTTP01 challenges. This
                                    is typically used in conjunction with ingress
                                    controllers like ingress-gce, which maintains
                                    a 1:1 mapping between external IPs and ingress
                                    resources. Only one of `class`, `name` or `ingressClassName`
                                    may be specified.
                                  type: string
                                podTemplate:
                                  description: Optional pod template used to configure
                                    the ACME challenge solver pods used for HTTP01
                                    challenges.
                                  properties:
                                    metadata:
                                      description: ObjectMeta overrides for the pod
                                        used to solve HTTP01 challenges. Only the
                                        'labels' and 'annotations' fields may be set.
                                        If labels or annotations overlap with in-built
                                        values, the values here will override the
                                        in-built values.
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          description: Annotations that should be
                                            added to the create ACME HTTP01 solver
                                            pods.
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          description: Labels that should be added
                                            to the created ACME HTTP01 solver pods.
                                          type: object
                                      type: object
                                    spec:
                                      description: PodSpec defines overrides for the
                                        HTTP01 challenge solver pod. Check ACMEChallengeSolverHTTP01IngressPodSpec
                                        to find out currently supported fields. All
                                        other fields will be ignored.
                                      properties:
                                        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.
                                                    The node that is most preferred
                                                    is the one with the greatest sum
                                                    of weights, i.e. for each node
                                                    that meets all of the scheduling
                                                    requirements (resource request,
                                                    requiredDuringScheduling affinity
                                                    expressions, etc.), compute a
                                                    sum by iterating through the elements
                                                    of this field and adding "weight"
                                                    to the sum if the node matches
                                                    the corresponding matchExpressions;
                                                    the node(s) with the highest sum
                                                    are the most preferred.
                                                  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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              required:
                                                              - key
                                                              - operator
                                                              type: object
                                                            type: array
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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. If the affinity requirements
                                                    specified by this field cease
                                                    to be met at some point during
                                                    pod execution (e.g. due to an
                                                    update), the system may or may
                                                    not try to eventually evict the
                                                    pod from its 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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              required:
                                                              - key
                                                              - operator
                                                              type: object
                                                            type: array
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      type: array
                                                  required:
                                                  - nodeSelectorTerms
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              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.
                                                    The node that is most preferred
                                                    is the one with the greatest sum
                                                    of weights, i.e. for each node
                                                    that meets all of the scheduling
                                                    requirements (resource request,
                                                    requiredDuringScheduling affinity
                                                    expressions, etc.), compute a
                                                    sum by iterating through the elements
                                                    of this field and adding "weight"
                                                    to the sum if the node has pods
                                                    which matches the corresponding
                                                    podAffinityTerm; the node(s) with
                                                    the highest sum are the most preferred.
                                                  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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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. null selector
                                                              and null or empty namespaces
                                                              list means "this pod's
                                                              namespace". An empty
                                                              selector ({}) matches
                                                              all namespaces.
                                                            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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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.
                                                              null or empty namespaces
                                                              list and null namespaceSelector
                                                              means "this pod's namespace".
                                                            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 with key topologyKey
                                                              matches that of any
                                                              node on which any of
                                                              the selected pods is
                                                              running. Empty topologyKey
                                                              is not allowed.
                                                            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. If the affinity requirements
                                                    specified by this field cease
                                                    to be met at some point during
                                                    pod execution (e.g. due to a pod
                                                    label update), the system may
                                                    or may not try to eventually evict
                                                    the pod from its node. When there
                                                    are multiple elements, the lists
                                                    of nodes corresponding to each
                                                    podAffinityTerm are intersected,
                                                    i.e. all terms must be satisfied.
                                                  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 running
                                                      on a node whose value of the
                                                      label with key <topologyKey>
                                                      matches that of any node on
                                                      which a pod of the set of pods
                                                      is running
                                                    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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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. null selector and
                                                          null or empty namespaces
                                                          list means "this pod's namespace".
                                                          An empty selector ({}) matches
                                                          all namespaces.
                                                        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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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.
                                                          null or empty namespaces
                                                          list and null namespaceSelector
                                                          means "this pod's namespace".
                                                        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 with key topologyKey
                                                          matches that of any node
                                                          on which any of the selected
                                                          pods is running. Empty topologyKey
                                                          is not allowed.
                                                        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. The node that is
                                                    most preferred is the one with
                                                    the greatest sum of weights, i.e.
                                                    for each node that meets all of
                                                    the scheduling requirements (resource
                                                    request, requiredDuringScheduling
                                                    anti-affinity expressions, etc.),
                                                    compute a sum by iterating through
                                                    the elements of this field and
                                                    adding "weight" to the sum if
                                                    the node has pods which matches
                                                    the corresponding podAffinityTerm;
                                                    the node(s) with the highest sum
                                                    are the most preferred.
                                                  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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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. null selector
                                                              and null or empty namespaces
                                                              list means "this pod's
                                                              namespace". An empty
                                                              selector ({}) matches
                                                              all namespaces.
                                                            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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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.
                                                              null or empty namespaces
                                                              list and null namespaceSelector
                                                              means "this pod's namespace".
                                                            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 with key topologyKey
                                                              matches that of any
                                                              node on which any of
                                                              the selected pods is
                                                              running. Empty topologyKey
                                                              is not allowed.
                                                            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. If the anti-affinity
                                                    requirements specified by this
                                                    field cease to be met at some
                                                    point during pod execution (e.g.
                                                    due to a pod label update), the
                                                    system may or may not try to eventually
                                                    evict the pod from its node. When
                                                    there are multiple elements, the
                                                    lists of nodes corresponding to
                                                    each podAffinityTerm are intersected,
                                                    i.e. all terms must be satisfied.
                                                  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 running
                                                      on a node whose value of the
                                                      label with key <topologyKey>
                                                      matches that of any node on
                                                      which a pod of the set of pods
                                                      is running
                                                    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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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. null selector and
                                                          null or empty namespaces
                                                          list means "this pod's namespace".
                                                          An empty selector ({}) matches
                                                          all namespaces.
                                                        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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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.
                                                          null or empty namespaces
                                                          list and null namespaceSelector
                                                          means "this pod's namespace".
                                                        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 with key topologyKey
                                                          matches that of any node
                                                          on which any of the selected
                                                          pods is running. Empty topologyKey
                                                          is not allowed.
                                                        type: string
                                                    required:
                                                    - topologyKey
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        imagePullSecrets:
                                          description: If specified, the pod's imagePullSecrets
                                          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
                                            x-kubernetes-map-type: atomic
                                          type: array
                                        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.io/docs/concepts/configuration/assign-pod-node/'
                                          type: object
                                        priorityClassName:
                                          description: If specified, the pod's priorityClassName.
                                          type: string
                                        serviceAccountName:
                                          description: If specified, the pod's service
                                            account
                                          type: string
                                        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. By default,
                                                  it is not set, which means tolerate
                                                  the taint forever (do not evict).
                                                  Zero and negative values will be
                                                  treated as 0 (evict immediately)
                                                  by the system.
                                                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
                                      type: object
                                  type: object
                                serviceType:
                                  description: Optional service type for Kubernetes
                                    solver service. Supported values are NodePort
                                    or ClusterIP. If unset, defaults to NodePort.
                                  type: string
                              type: object
                          type: object
                        selector:
                          description: Selector selects a set of DNSNames on the Certificate
                            resource that should be solved using this challenge solver.
                            If not specified, the solver will be treated as the 'default'
                            solver with the lowest priority, i.e. if any other solver
                            has a more specific match, it will be used instead.
                          properties:
                            dnsNames:
                              description: List of DNSNames that this solver will
                                be used to solve. If specified and a match is found,
                                a dnsNames selector will take precedence over a dnsZones
                                selector. If multiple solvers match with the same
                                dnsNames value, the solver with the most matching
                                labels in matchLabels will be selected. If neither
                                has more matches, the solver defined earlier in the
                                list will be selected.
                              items:
                                type: string
                              type: array
                            dnsZones:
                              description: List of DNSZones that this solver will
                                be used to solve. The most specific DNS zone match
                                specified here will take precedence over other DNS
                                zone matches, so a solver specifying sys.example.com
                                will be selected over one specifying example.com for
                                the domain www.sys.example.com. If multiple solvers
                                match with the same dnsZones value, the solver with
                                the most matching labels in matchLabels will be selected.
                                If neither has more matches, the solver defined earlier
                                in the list will be selected.
                              items:
                                type: string
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              description: A label selector that is used to refine
                                the set of certificate's that this challenge solver
                                will apply to.
                              type: object
                          type: object
                      type: object
                    type: array
                required:
                - privateKeySecretRef
                - server
                type: object
              ca:
                description: CA configures this issuer to sign certificates using
                  a signing CA keypair stored in a Secret resource. This is used to
                  build internal PKIs that are managed by cert-manager.
                properties:
                  crlDistributionPoints:
                    description: The CRL distribution points is an X.509 v3 certificate
                      extension which identifies the location of the CRL from which
                      the revocation of this certificate can be checked. If not set,
                      certificates will be issued without distribution points set.
                    items:
                      type: string
                    type: array
                  ocspServers:
                    description: The OCSP server list is an X.509 v3 extension that
                      defines a list of URLs of OCSP responders. The OCSP responders
                      can be queried for the revocation status of an issued certificate.
                      If not set, the certificate will be issued with no OCSP servers
                      set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
                    items:
                      type: string
                    type: array
                  secretName:
                    description: SecretName is the name of the secret used to sign
                      Certificates issued by this Issuer.
                    type: string
                required:
                - secretName
                type: object
              selfSigned:
                description: SelfSigned configures this issuer to 'self sign' certificates
                  using the private key used to create the CertificateRequest object.
                properties:
                  crlDistributionPoints:
                    description: The CRL distribution points is an X.509 v3 certificate
                      extension which identifies the location of the CRL from which
                      the revocation of this certificate can be checked. If not set
                      certificate will be issued without CDP. Values are strings.
                    items:
                      type: string
                    type: array
                type: object
              vault:
                description: Vault configures this issuer to sign certificates using
                  a HashiCorp Vault PKI backend.
                properties:
                  auth:
                    description: Auth configures how cert-manager authenticates with
                      the Vault server.
                    properties:
                      appRole:
                        description: AppRole authenticates with Vault using the App
                          Role auth mechanism, with the role and secret stored in
                          a Kubernetes Secret resource.
                        properties:
                          path:
                            description: 'Path where the App Role authentication backend
                              is mounted in Vault, e.g: "approle"'
                            type: string
                          roleId:
                            description: RoleID configured in the App Role authentication
                              backend when setting up the authentication backend in
                              Vault.
                            type: string
                          secretRef:
                            description: Reference to a key in a Secret that contains
                              the App Role secret used to authenticate with Vault.
                              The `key` field must be specified and denotes which
                              entry within the Secret resource is used as the app
                              role secret.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - path
                        - roleId
                        - secretRef
                        type: object
                      kubernetes:
                        description: Kubernetes authenticates with Vault by passing
                          the ServiceAccount token stored in the named Secret resource
                          to the Vault server.
                        properties:
                          mountPath:
                            description: The Vault mountPath here is the mount path
                              to use when authenticating with Vault. For example,
                              setting a value to `/v1/auth/foo`, will use the path
                              `/v1/auth/foo/login` to authenticate with Vault. If
                              unspecified, the default value "/v1/auth/kubernetes"
                              will be used.
                            type: string
                          role:
                            description: A required field containing the Vault Role
                              to assume. A Role binds a Kubernetes ServiceAccount
                              with a set of Vault policies.
                            type: string
                          secretRef:
                            description: The required Secret field containing a Kubernetes
                              ServiceAccount JWT used for authenticating with Vault.
                              Use of 'ambient credentials' is not supported.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          serviceAccountRef:
                            description: A reference to a service account that will
                              be used to request a bound token (also known as "projected
                              token"). Compared to using "secretRef", using this field
                              means that you don't rely on statically bound tokens.
                              To use this field, you must configure an RBAC rule to
                              let cert-manager request a token.
                            properties:
                              name:
                                description: Name of the ServiceAccount used to request
                                  a token.
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - role
                        type: object
                      tokenSecretRef:
                        description: TokenSecretRef authenticates with Vault by presenting
                          a token.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                    type: object
                  caBundle:
                    description: Base64-encoded bundle of PEM CAs which will be used
                      to validate the certificate chain presented by Vault. Only used
                      if using HTTPS to connect to Vault and ignored for HTTP connections.
                      Mutually exclusive with CABundleSecretRef. If neither CABundle
                      nor CABundleSecretRef are defined, the certificate bundle in
                      the cert-manager controller container is used to validate the
                      TLS connection.
                    format: byte
                    type: string
                  caBundleSecretRef:
                    description: Reference to a Secret containing a bundle of PEM-encoded
                      CAs to use when verifying the certificate chain presented by
                      Vault when using HTTPS. Mutually exclusive with CABundle. If
                      neither CABundle nor CABundleSecretRef are defined, the certificate
                      bundle in the cert-manager controller container is used to validate
                      the TLS connection. If no key for the Secret is specified, cert-manager
                      will default to 'ca.crt'.
                    properties:
                      key:
                        description: The key of the entry in the Secret resource's
                          `data` field to be used. Some instances of this field may
                          be defaulted, in others it may be required.
                        type: string
                      name:
                        description: 'Name of the resource being referred to. More
                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                    required:
                    - name
                    type: object
                  namespace:
                    description: 'Name of the vault namespace. Namespaces is a set
                      of features within Vault Enterprise that allows Vault environments
                      to support Secure Multi-tenancy. e.g: "ns1" More about namespaces
                      can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
                    type: string
                  path:
                    description: 'Path is the mount path of the Vault PKI backend''s
                      `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
                    type: string
                  server:
                    description: 'Server is the connection address for the Vault server,
                      e.g: "https://vault.example.com:8200".'
                    type: string
                required:
                - auth
                - path
                - server
                type: object
              venafi:
                description: Venafi configures this issuer to sign certificates using
                  a Venafi TPP or Venafi Cloud policy zone.
                properties:
                  cloud:
                    description: Cloud specifies the Venafi cloud configuration settings.
                      Only one of TPP or Cloud may be specified.
                    properties:
                      apiTokenSecretRef:
                        description: APITokenSecretRef is a secret key selector for
                          the Venafi Cloud API token.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                      url:
                        description: URL is the base URL for Venafi Cloud. Defaults
                          to "https://api.venafi.cloud/v1".
                        type: string
                    required:
                    - apiTokenSecretRef
                    type: object
                  tpp:
                    description: TPP specifies Trust Protection Platform configuration
                      settings. Only one of TPP or Cloud may be specified.
                    properties:
                      caBundle:
                        description: Base64-encoded bundle of PEM CAs which will be
                          used to validate the certificate chain presented by the
                          TPP server. Only used if using HTTPS; ignored for HTTP.
                          If undefined, the certificate bundle in the cert-manager
                          controller container is used to validate the chain.
                        format: byte
                        type: string
                      credentialsRef:
                        description: CredentialsRef is a reference to a Secret containing
                          the username and password for the TPP server. The secret
                          must contain two keys, 'username' and 'password'.
                        properties:
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                      url:
                        description: 'URL is the base URL for the vedsdk endpoint
                          of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
                        type: string
                    required:
                    - credentialsRef
                    - url
                    type: object
                  zone:
                    description: Zone is the Venafi Policy Zone to use for this issuer.
                      All requests made to the Venafi platform will be restricted
                      by the named zone policy. This field is required.
                    type: string
                required:
                - zone
                type: object
            type: object
          status:
            description: Status of the ClusterIssuer. This is set and managed automatically.
            properties:
              acme:
                description: ACME specific status options. This field should only
                  be set if the Issuer is configured to use an ACME server to issue
                  certificates.
                properties:
                  lastPrivateKeyHash:
                    description: LastPrivateKeyHash is a hash of the private key associated
                      with the latest registered ACME account, in order to track changes
                      made to registered account associated with the Issuer
                    type: string
                  lastRegisteredEmail:
                    description: LastRegisteredEmail is the email associated with
                      the latest registered ACME account, in order to track changes
                      made to registered account associated with the  Issuer
                    type: string
                  uri:
                    description: URI is the unique account identifier, which can also
                      be used to retrieve account details from the CA
                    type: string
                type: object
              conditions:
                description: List of status conditions to indicate the status of a
                  CertificateRequest. Known condition types are `Ready`.
                items:
                  description: IssuerCondition contains condition information for
                    an Issuer.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the timestamp corresponding
                        to the last status change of this condition.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable description of the
                        details of the last transition, complementing reason.
                      type: string
                    observedGeneration:
                      description: If set, this represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the Issuer.
                      format: int64
                      type: integer
                    reason:
                      description: Reason is a brief machine readable explanation
                        for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of (`True`, `False`,
                        `Unknown`).
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: Type of the condition, known values are (`Ready`).
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.0
  creationTimestamp: null
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: clusterservingruntimes.serving.kserve.io
spec:
  group: serving.kserve.io
  names:
    kind: ClusterServingRuntime
    listKind: ClusterServingRuntimeList
    plural: clusterservingruntimes
    singular: clusterservingruntime
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.disabled
      name: Disabled
      type: boolean
    - jsonPath: .spec.supportedModelFormats[*].name
      name: ModelType
      type: string
    - jsonPath: .spec.containers[*].name
      name: Containers
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              affinity:
                properties:
                  nodeAffinity:
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            preference:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchFields:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            weight:
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        properties:
                          nodeSelectorTerms:
                            items:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchFields:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                        - nodeSelectorTerms
                        type: object
                    type: object
                  podAffinity:
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            podAffinityTerm:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaceSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaces:
                              items:
                                type: string
                              type: array
                            topologyKey:
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                  podAntiAffinity:
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            podAffinityTerm:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaceSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaces:
                              items:
                                type: string
                              type: array
                            topologyKey:
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              builtInAdapter:
                properties:
                  env:
                    items:
                      properties:
                        name:
                          type: string
                        value:
                          type: string
                        valueFrom:
                          properties:
                            configMapKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                            fieldRef:
                              properties:
                                apiVersion:
                                  type: string
                                fieldPath:
                                  type: string
                              required:
                              - fieldPath
                              type: object
                            resourceFieldRef:
                              properties:
                                containerName:
                                  type: string
                                divisor:
                                  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
                                resource:
                                  type: string
                              required:
                              - resource
                              type: object
                            secretKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  memBufferBytes:
                    type: integer
                  modelLoadingTimeoutMillis:
                    type: integer
                  runtimeManagementPort:
                    type: integer
                  serverType:
                    type: string
                type: object
              containers:
                items:
                  properties:
                    args:
                      items:
                        type: string
                      type: array
                    command:
                      items:
                        type: string
                      type: array
                    env:
                      items:
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                          valueFrom:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                    envFrom:
                      items:
                        properties:
                          configMapRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                          prefix:
                            type: string
                          secretRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                        type: object
                      type: array
                    image:
                      type: string
                    imagePullPolicy:
                      type: string
                    lifecycle:
                      properties:
                        postStart:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                        preStop:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                      type: object
                    livenessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    name:
                      type: string
                    ports:
                      items:
                        properties:
                          containerPort:
                            format: int32
                            type: integer
                          hostIP:
                            type: string
                          hostPort:
                            format: int32
                            type: integer
                          name:
                            type: string
                          protocol:
                            default: TCP
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                      x-kubernetes-list-map-keys:
                      - containerPort
                      - protocol
                      x-kubernetes-list-type: map
                    readinessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    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
                          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
                          type: object
                      type: object
                    securityContext:
                      properties:
                        allowPrivilegeEscalation:
                          type: boolean
                        capabilities:
                          properties:
                            add:
                              items:
                                type: string
                              type: array
                            drop:
                              items:
                                type: string
                              type: array
                          type: object
                        privileged:
                          type: boolean
                        procMount:
                          type: string
                        readOnlyRootFilesystem:
                          type: boolean
                        runAsGroup:
                          format: int64
                          type: integer
                        runAsNonRoot:
                          type: boolean
                        runAsUser:
                          format: int64
                          type: integer
                        seLinuxOptions:
                          properties:
                            level:
                              type: string
                            role:
                              type: string
                            type:
                              type: string
                            user:
                              type: string
                          type: object
                        seccompProfile:
                          properties:
                            localhostProfile:
                              type: string
                            type:
                              type: string
                          required:
                          - type
                          type: object
                        windowsOptions:
                          properties:
                            gmsaCredentialSpec:
                              type: string
                            gmsaCredentialSpecName:
                              type: string
                            hostProcess:
                              type: boolean
                            runAsUserName:
                              type: string
                          type: object
                      type: object
                    startupProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    stdin:
                      type: boolean
                    stdinOnce:
                      type: boolean
                    terminationMessagePath:
                      type: string
                    terminationMessagePolicy:
                      type: string
                    tty:
                      type: boolean
                    volumeDevices:
                      items:
                        properties:
                          devicePath:
                            type: string
                          name:
                            type: string
                        required:
                        - devicePath
                        - name
                        type: object
                      type: array
                    volumeMounts:
                      items:
                        properties:
                          mountPath:
                            type: string
                          mountPropagation:
                            type: string
                          name:
                            type: string
                          readOnly:
                            type: boolean
                          subPath:
                            type: string
                          subPathExpr:
                            type: string
                        required:
                        - mountPath
                        - name
                        type: object
                      type: array
                    workingDir:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              disabled:
                type: boolean
              grpcDataEndpoint:
                type: string
              grpcEndpoint:
                type: string
              httpDataEndpoint:
                type: string
              imagePullSecrets:
                items:
                  properties:
                    name:
                      type: string
                  type: object
                type: array
              labels:
                additionalProperties:
                  type: string
                type: object
              multiModel:
                type: boolean
              nodeSelector:
                additionalProperties:
                  type: string
                type: object
              protocolVersions:
                items:
                  type: string
                type: array
              replicas:
                type: integer
              storageHelper:
                properties:
                  disabled:
                    type: boolean
                type: object
              supportedModelFormats:
                items:
                  properties:
                    autoSelect:
                      type: boolean
                    name:
                      type: string
                    version:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              tolerations:
                items:
                  properties:
                    effect:
                      type: string
                    key:
                      type: string
                    operator:
                      type: string
                    tolerationSeconds:
                      format: int64
                      type: integer
                    value:
                      type: string
                  type: object
                type: array
              volumes:
                items:
                  properties:
                    awsElasticBlockStore:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      properties:
                        cachingMode:
                          type: string
                        diskName:
                          type: string
                        diskURI:
                          type: string
                        fsType:
                          type: string
                        kind:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      properties:
                        readOnly:
                          type: boolean
                        secretName:
                          type: string
                        shareName:
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      properties:
                        monitors:
                          items:
                            type: string
                          type: array
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        secretFile:
                          type: string
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        user:
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        name:
                          type: string
                        optional:
                          type: boolean
                      type: object
                    csi:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        nodePublishSecretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        readOnly:
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                            required:
                            - path
                            type: object
                          type: array
                      type: object
                    emptyDir:
                      properties:
                        medium:
                          type: string
                        sizeLimit:
                          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
                      type: object
                    ephemeral:
                      properties:
                        volumeClaimTemplate:
                          properties:
                            metadata:
                              type: object
                            spec:
                              properties:
                                accessModes:
                                  items:
                                    type: string
                                  type: array
                                dataSource:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                dataSourceRef:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                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
                                      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
                                      type: object
                                  type: object
                                selector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                storageClassName:
                                  type: string
                                volumeMode:
                                  type: string
                                volumeName:
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      properties:
                        fsType:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        targetWWNs:
                          items:
                            type: string
                          type: array
                        wwids:
                          items:
                            type: string
                          type: array
                      type: object
                    flexVolume:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          type: object
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                      required:
                      - driver
                      type: object
                    flocker:
                      properties:
                        datasetName:
                          type: string
                        datasetUUID:
                          type: string
                      type: object
                    gcePersistentDisk:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        pdName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      properties:
                        directory:
                          type: string
                        repository:
                          type: string
                        revision:
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      properties:
                        endpoints:
                          type: string
                        path:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      properties:
                        path:
                          type: string
                        type:
                          type: string
                      required:
                      - path
                      type: object
                    iscsi:
                      properties:
                        chapAuthDiscovery:
                          type: boolean
                        chapAuthSession:
                          type: boolean
                        fsType:
                          type: string
                        initiatorName:
                          type: string
                        iqn:
                          type: string
                        iscsiInterface:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        portals:
                          items:
                            type: string
                          type: array
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        targetPortal:
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      type: string
                    nfs:
                      properties:
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        server:
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      properties:
                        claimName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      properties:
                        fsType:
                          type: string
                        pdID:
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        sources:
                          items:
                            properties:
                              configMap:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              downwardAPI:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        fieldRef:
                                          properties:
                                            apiVersion:
                                              type: string
                                            fieldPath:
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                        resourceFieldRef:
                                          properties:
                                            containerName:
                                              type: string
                                            divisor:
                                              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
                                            resource:
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                      required:
                                      - path
                                      type: object
                                    type: array
                                type: object
                              secret:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              serviceAccountToken:
                                properties:
                                  audience:
                                    type: string
                                  expirationSeconds:
                                    format: int64
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                      type: object
                    quobyte:
                      properties:
                        group:
                          type: string
                        readOnly:
                          type: boolean
                        registry:
                          type: string
                        tenant:
                          type: string
                        user:
                          type: string
                        volume:
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      properties:
                        fsType:
                          type: string
                        image:
                          type: string
                        keyring:
                          type: string
                        monitors:
                          items:
                            type: string
                          type: array
                        pool:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        user:
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      properties:
                        fsType:
                          type: string
                        gateway:
                          type: string
                        protectionDomain:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        sslEnabled:
                          type: boolean
                        storageMode:
                          type: string
                        storagePool:
                          type: string
                        system:
                          type: string
                        volumeName:
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        optional:
                          type: boolean
                        secretName:
                          type: string
                      type: object
                    storageos:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        volumeName:
                          type: string
                        volumeNamespace:
                          type: string
                      type: object
                    vsphereVolume:
                      properties:
                        fsType:
                          type: string
                        storagePolicyID:
                          type: string
                        storagePolicyName:
                          type: string
                        volumePath:
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
            required:
            - containers
            type: object
          status:
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: clusterworkflowtemplates.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: ClusterWorkflowTemplate
    listKind: ClusterWorkflowTemplateList
    plural: clusterworkflowtemplates
    shortNames:
    - clusterwftmpl
    - cwft
    singular: clusterworkflowtemplate
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: unapproved, request not yet submitted
  labels:
    application-crd-id: kubeflow-pipelines
    kustomize.component: metacontroller
  name: compositecontrollers.metacontroller.k8s.io
spec:
  group: metacontroller.k8s.io
  names:
    kind: CompositeController
    listKind: CompositeControllerList
    plural: compositecontrollers
    shortNames:
    - cc
    - cctl
    singular: compositecontroller
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              childResources:
                items:
                  properties:
                    apiVersion:
                      type: string
                    resource:
                      type: string
                    updateStrategy:
                      properties:
                        method:
                          type: string
                        statusChecks:
                          properties:
                            conditions:
                              items:
                                properties:
                                  reason:
                                    type: string
                                  status:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              type: array
                          type: object
                      type: object
                  required:
                  - apiVersion
                  - resource
                  type: object
                type: array
              generateSelector:
                type: boolean
              hooks:
                properties:
                  customize:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                  finalize:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                  postUpdateChild:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                  preUpdateChild:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                  sync:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                type: object
              parentResource:
                properties:
                  apiVersion:
                    type: string
                  resource:
                    type: string
                  revisionHistory:
                    properties:
                      fieldPaths:
                        items:
                          type: string
                        type: array
                    type: object
                required:
                - apiVersion
                - resource
                type: object
              resyncPeriodSeconds:
                format: int32
                type: integer
            required:
            - parentResource
            type: object
          status:
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    duck.knative.dev/podspecable: "true"
    knative.dev/crd-install: "true"
  name: configurations.serving.knative.dev
spec:
  group: serving.knative.dev
  names:
    categories:
    - all
    - knative
    - serving
    kind: Configuration
    plural: configurations
    shortNames:
    - config
    - cfg
    singular: configuration
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.latestCreatedRevisionName
      name: LatestCreated
      type: string
    - jsonPath: .status.latestReadyRevisionName
      name: LatestReady
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: 'Configuration represents the "floating HEAD" of a linear history
          of Revisions. Users create new Revisions by updating the Configuration''s
          spec. The "latest created" revision''s name is available under status, as
          is the "latest ready" revision''s name. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#configuration'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: ConfigurationSpec holds the desired state of the Configuration
              (from the client).
            properties:
              template:
                description: Template holds the latest specification for the Revision
                  to be stamped out.
                properties:
                  metadata:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      finalizers:
                        items:
                          type: string
                        type: array
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                      name:
                        type: string
                      namespace:
                        type: string
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  spec:
                    description: RevisionSpec holds the desired state of the Revision
                      (from the client).
                    properties:
                      affinity:
                        description: This is accessible behind a feature flag - kubernetes.podspec-affinity
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      automountServiceAccountToken:
                        description: AutomountServiceAccountToken indicates whether
                          a service account token should be automatically mounted.
                        type: boolean
                      containerConcurrency:
                        description: ContainerConcurrency specifies the maximum allowed
                          in-flight (concurrent) requests per container of the Revision.  Defaults
                          to `0` which means concurrency to the application is not
                          limited, and the system decides the target concurrency for
                          the autoscaler.
                        format: int64
                        type: integer
                      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 container
                                image''s CMD is used if this is not provided. Variable
                                references $(VAR_NAME) are expanded using the container''s
                                environment. If a variable cannot be resolved, the
                                reference in the input string will be unchanged. Double
                                $$ are reduced to a single $, which allows for escaping
                                the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
                                the string literal "$(VAR_NAME)". Escaped references
                                will never be expanded, regardless of whether the
                                variable exists or not. Cannot be updated. More info:
                                https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              items:
                                type: string
                              type: array
                            command:
                              description: 'Entrypoint array. Not executed within
                                a shell. The container image''s ENTRYPOINT is used
                                if this is not provided. Variable references $(VAR_NAME)
                                are expanded using the container''s environment. If
                                a variable cannot be resolved, the reference in the
                                input string will be unchanged. Double $$ are reduced
                                to a single $, which allows for escaping the $(VAR_NAME)
                                syntax: i.e. "$$(VAR_NAME)" will produce the string
                                literal "$(VAR_NAME)". Escaped references will never
                                be expanded, regardless of whether the variable exists
                                or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              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. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                      will produce the string literal "$(VAR_NAME)".
                                      Escaped references will never be expanded, regardless
                                      of whether the variable exists or not. Defaults
                                      to "".'
                                    type: string
                                  valueFrom:
                                    description: Source for the environment variable's
                                      value. Cannot be used if value is not empty.
                                    properties:
                                      configMapKeyRef:
                                        description: Selects a key of a ConfigMap.
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap
                                              or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        description: This is accessible behind a feature
                                          flag - kubernetes.podspec-fieldref
                                        type: object
                                        x-kubernetes-map-type: atomic
                                        x-kubernetes-preserve-unknown-fields: true
                                      resourceFieldRef:
                                        description: This is accessible behind a feature
                                          flag - kubernetes.podspec-fieldref
                                        type: object
                                        x-kubernetes-map-type: atomic
                                        x-kubernetes-preserve-unknown-fields: true
                                      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
                                        x-kubernetes-map-type: atomic
                                    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. When a key exists in multiple sources, the
                                value associated with the last source will take precedence.
                                Values defined by an Env with a duplicate key will
                                take precedence. Cannot be updated.
                              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
                                    x-kubernetes-map-type: atomic
                                  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
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                            image:
                              description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images
                                This field is optional to allow higher level config
                                management to default or override container images
                                in workload controllers like Deployments and StatefulSets.'
                              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.io/docs/concepts/containers/images#updating-images'
                              type: string
                            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: 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. The command is
                                        simply exec'd, it is not run inside a shell,
                                        so traditional shell instructions ('|', etc)
                                        won't work. To use a shell, you need to explicitly
                                        call out to that shell. Exit status of 0 is
                                        treated as live/healthy and non-zero is unhealthy.
                                      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
                                  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.
                                  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.
                                  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
                                  type: object
                                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.
                                Not specifying a port here DOES NOT prevent that port
                                from being exposed. Any port which is listening on
                                the default "0.0.0.0" address inside a container will
                                be accessible from the network. Modifying this array
                                with strategic merge patch may corrupt the data. For
                                more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                Cannot be updated.
                              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
                                  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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: 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. The command is
                                        simply exec'd, it is not run inside a shell,
                                        so traditional shell instructions ('|', etc)
                                        won't work. To use a shell, you need to explicitly
                                        call out to that shell. Exit status of 0 is
                                        treated as live/healthy and non-zero is unhealthy.
                                      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
                                  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.
                                  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.
                                  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
                                  type: object
                                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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  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.io/docs/tasks/configure-pod-container/security-context/'
                              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. AllowPrivilegeEscalation is true always
                                    when the container is: 1) run as Privileged 2)
                                    has CAP_SYS_ADMIN Note that this field cannot
                                    be set when spec.os.name is windows.'
                                  type: boolean
                                capabilities:
                                  description: The capabilities to add/drop when running
                                    containers. Defaults to the default set of capabilities
                                    granted by the container runtime. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  properties:
                                    add:
                                      description: This is accessible behind a feature
                                        flag - kubernetes.containerspec-addcapabilities
                                      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
                                readOnlyRootFilesystem:
                                  description: Whether this container has a read-only
                                    root filesystem. Default is false. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  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.  If set
                                    in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in PodSecurityContext.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  format: int64
                                  type: integer
                                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. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      type: string
                                  required:
                                  - type
                                  type: object
                              type: object
                            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. Message
                                written is intended to be brief final status, such
                                as an assertion failure message. Will be truncated
                                by the node if greater than 4096 bytes. The total
                                message length across all containers will be limited
                                to 12kb. Defaults to /dev/termination-log. Cannot
                                be updated.'
                              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. FallbackToLogsOnError will use the last
                                chunk of container log output if the termination message
                                file is empty and the container exited with an error.
                                The log output is limited to 2048 bytes or 80 lines,
                                whichever is smaller. Defaults to File. Cannot be
                                updated.
                              type: string
                            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
                                  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
                                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
                          type: object
                        type: array
                      dnsConfig:
                        description: This is accessible behind a feature flag - kubernetes.podspec-dnsconfig
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      dnsPolicy:
                        description: This is accessible behind a feature flag - kubernetes.podspec-dnspolicy
                        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:
                          Knative defaults this to false.'
                        type: boolean
                      hostAliases:
                        description: This is accessible behind a feature flag - kubernetes.podspec-hostaliases
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-hostaliases
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      idleTimeoutSeconds:
                        description: IdleTimeoutSeconds is the maximum duration in
                          seconds a request will be allowed to stay open while not
                          receiving any bytes from the user's application. If unspecified,
                          a system default will be provided.
                        format: int64
                        type: integer
                      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. If specified, these
                          secrets will be passed to individual puller implementations
                          for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                        items:
                          description: LocalObjectReference contains enough information
                            to let you locate the referenced object inside the same
                            namespace.
                          properties:
                            name:
                              description: 'Name of the referent. 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
                          x-kubernetes-map-type: atomic
                        type: array
                      initContainers:
                        description: 'List of initialization containers belonging
                          to the pod. Init containers are executed in order prior
                          to containers being started. If any init container fails,
                          the pod is considered to have failed and is handled according
                          to its restartPolicy. The name for an init container or
                          normal container must be unique among all containers. Init
                          containers may not have Lifecycle actions, Readiness probes,
                          Liveness probes, or Startup probes. The resourceRequirements
                          of an init container are taken into account during scheduling
                          by finding the highest request/limit for each resource type,
                          and then using the max of of that value or the sum of the
                          normal containers. Limits are applied to init containers
                          in a similar fashion. Init containers cannot currently be
                          added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-init-containers
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      nodeSelector:
                        description: This is accessible behind a feature flag - kubernetes.podspec-nodeselector
                        type: object
                        x-kubernetes-map-type: atomic
                        x-kubernetes-preserve-unknown-fields: true
                      priorityClassName:
                        description: This is accessible behind a feature flag - kubernetes.podspec-priorityclassname
                        type: string
                        x-kubernetes-preserve-unknown-fields: true
                      responseStartTimeoutSeconds:
                        description: ResponseStartTimeoutSeconds is the maximum duration
                          in seconds that the request routing layer will wait for
                          a request delivered to a container to begin sending any
                          network traffic.
                        format: int64
                        type: integer
                      runtimeClassName:
                        description: This is accessible behind a feature flag - kubernetes.podspec-runtimeclassname
                        type: string
                        x-kubernetes-preserve-unknown-fields: true
                      schedulerName:
                        description: This is accessible behind a feature flag - kubernetes.podspec-schedulername
                        type: string
                        x-kubernetes-preserve-unknown-fields: true
                      securityContext:
                        description: This is accessible behind a feature flag - kubernetes.podspec-securitycontext
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      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
                      timeoutSeconds:
                        description: TimeoutSeconds is the maximum duration in seconds
                          that the request instance is allowed to respond to a request.
                          If unspecified, a system default will be provided.
                        format: int64
                        type: integer
                      tolerations:
                        description: This is accessible behind a feature flag - kubernetes.podspec-tolerations
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-tolerations
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      topologySpreadConstraints:
                        description: This is accessible behind a feature flag - kubernetes.podspec-topologyspreadconstraints
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-topologyspreadconstraints
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      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:
                            configMap:
                              description: configMap represents a configMap that should
                                populate this volume
                              properties:
                                defaultMode:
                                  description: 'defaultMode is 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. YAML accepts
                                    both octal and decimal values, JSON requires decimal
                                    values for mode bits. Defaults to 0644. Directories
                                    within the path are not affected by this setting.
                                    This might be in conflict with other options that
                                    affect the file mode, like fsGroup, and the result
                                    can be other mode bits set.'
                                  format: int32
                                  type: integer
                                items:
                                  description: items if unspecified, each key-value
                                    pair in the Data field of the referenced ConfigMap
                                    will be projected into the volume as a file whose
                                    name is the key and content is the value. If specified,
                                    the listed keys will be projected into the specified
                                    paths, and unlisted keys will not be present.
                                    If a key is specified which is not present in
                                    the ConfigMap, the volume setup will error unless
                                    it is marked optional. Paths must be relative
                                    and may not contain the '..' path or start with
                                    '..'.
                                  items:
                                    description: Maps a string key to a path within
                                      a volume.
                                    properties:
                                      key:
                                        description: key is the key to project.
                                        type: string
                                      mode:
                                        description: 'mode is 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. YAML
                                          accepts both octal and decimal values, JSON
                                          requires decimal values for mode bits. If
                                          not specified, the volume defaultMode will
                                          be used. This might be in conflict with
                                          other options that affect the file mode,
                                          like fsGroup, and the result can be other
                                          mode bits set.'
                                        format: int32
                                        type: integer
                                      path:
                                        description: path is 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: optional specify whether the ConfigMap
                                    or its keys must be defined
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            emptyDir:
                              description: This is accessible behind a feature flag
                                - kubernetes.podspec-emptydir
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              description: 'name of the volume. 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
                            persistentVolumeClaim:
                              description: This is accessible behind a feature flag
                                - kubernetes.podspec-persistent-volume-claim
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            projected:
                              description: projected items for all in one resources
                                secrets, configmaps, and downward API
                              properties:
                                defaultMode:
                                  description: defaultMode are the 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. YAML accepts
                                    both octal and decimal values, JSON requires decimal
                                    values for mode bits. Directories within the path
                                    are not affected by this setting. This might be
                                    in conflict with other options that affect the
                                    file mode, like fsGroup, and the result can be
                                    other mode bits set.
                                  format: int32
                                  type: integer
                                sources:
                                  description: sources is the list of volume projections
                                  items:
                                    description: Projection that may be projected
                                      along with other supported volume types
                                    properties:
                                      configMap:
                                        description: configMap information about the
                                          configMap data to project
                                        properties:
                                          items:
                                            description: items if unspecified, each
                                              key-value pair in the Data field of
                                              the referenced ConfigMap will be projected
                                              into the volume as a file whose name
                                              is the key and content is the value.
                                              If specified, the listed keys will be
                                              projected into the specified paths,
                                              and unlisted keys will not be present.
                                              If a key is specified which is not present
                                              in the ConfigMap, the volume setup will
                                              error unless it is marked optional.
                                              Paths must be relative and may not contain
                                              the '..' path or start with '..'.
                                            items:
                                              description: Maps a string key to a
                                                path within a volume.
                                              properties:
                                                key:
                                                  description: key is the key to project.
                                                  type: string
                                                mode:
                                                  description: 'mode is 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. YAML accepts both octal and
                                                    decimal values, JSON requires
                                                    decimal values for mode bits.
                                                    If not specified, the volume defaultMode
                                                    will be used. This might be in
                                                    conflict with other options that
                                                    affect the file mode, like fsGroup,
                                                    and the result can be other mode
                                                    bits set.'
                                                  format: int32
                                                  type: integer
                                                path:
                                                  description: path is 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: optional specify whether
                                              the ConfigMap or its keys must be defined
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      downwardAPI:
                                        description: downwardAPI 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
                                                  x-kubernetes-map-type: atomic
                                                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. YAML accepts
                                                    both octal and decimal values,
                                                    JSON requires decimal values for
                                                    mode bits. If not specified, the
                                                    volume defaultMode will be used.
                                                    This might be in conflict with
                                                    other options that affect the
                                                    file mode, like fsGroup, and the
                                                    result can be other mode bits
                                                    set.'
                                                  format: int32
                                                  type: integer
                                                path:
                                                  description: 'Required: Path is  the
                                                    relative path name of the file
                                                    to be created. Must not be absolute
                                                    or contain the ''..'' path. Must
                                                    be utf-8 encoded. The first item
                                                    of the relative path must not
                                                    start with ''..'''
                                                  type: string
                                                resourceFieldRef:
                                                  description: 'Selects a resource
                                                    of the container: only resources
                                                    limits and requests (limits.cpu,
                                                    limits.memory, requests.cpu and
                                                    requests.memory) are currently
                                                    supported.'
                                                  properties:
                                                    containerName:
                                                      description: 'Container name:
                                                        required for volumes, optional
                                                        for env vars'
                                                      type: string
                                                    divisor:
                                                      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
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - path
                                              type: object
                                            type: array
                                        type: object
                                      secret:
                                        description: secret information about the
                                          secret data to project
                                        properties:
                                          items:
                                            description: items if unspecified, each
                                              key-value pair in the Data field of
                                              the referenced Secret will be projected
                                              into the volume as a file whose name
                                              is the key and content is the value.
                                              If specified, the listed keys will be
                                              projected into the specified paths,
                                              and unlisted keys will not be present.
                                              If a key is specified which is not present
                                              in the Secret, the volume setup will
                                              error unless it is marked optional.
                                              Paths must be relative and may not contain
                                              the '..' path or start with '..'.
                                            items:
                                              description: Maps a string key to a
                                                path within a volume.
                                              properties:
                                                key:
                                                  description: key is the key to project.
                                                  type: string
                                                mode:
                                                  description: 'mode is 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. YAML accepts both octal and
                                                    decimal values, JSON requires
                                                    decimal values for mode bits.
                                                    If not specified, the volume defaultMode
                                                    will be used. This might be in
                                                    conflict with other options that
                                                    affect the file mode, like fsGroup,
                                                    and the result can be other mode
                                                    bits set.'
                                                  format: int32
                                                  type: integer
                                                path:
                                                  description: path is 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: optional field specify whether
                                              the Secret or its key must be defined
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      serviceAccountToken:
                                        description: serviceAccountToken is information
                                          about the serviceAccountToken data to project
                                        properties:
                                          audience:
                                            description: audience is the intended
                                              audience of the token. A recipient of
                                              a token must identify itself with an
                                              identifier specified in the audience
                                              of the token, and otherwise should reject
                                              the token. The audience defaults to
                                              the identifier of the apiserver.
                                            type: string
                                          expirationSeconds:
                                            description: expirationSeconds is the
                                              requested duration of validity of the
                                              service account token. As the token
                                              approaches expiration, the kubelet volume
                                              plugin will proactively rotate the service
                                              account token. The kubelet will start
                                              trying to rotate the token if the token
                                              is older than 80 percent of its time
                                              to live or if the token is older than
                                              24 hours.Defaults to 1 hour and must
                                              be at least 10 minutes.
                                            format: int64
                                            type: integer
                                          path:
                                            description: path is the path relative
                                              to the mount point of the file to project
                                              the token into.
                                            type: string
                                        required:
                                        - path
                                        type: object
                                    type: object
                                  type: array
                              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: 'defaultMode is 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. YAML accepts
                                    both octal and decimal values, JSON requires decimal
                                    values for mode bits. Defaults to 0644. Directories
                                    within the path are not affected by this setting.
                                    This might be in conflict with other options that
                                    affect the file mode, like fsGroup, and the result
                                    can be other mode bits set.'
                                  format: int32
                                  type: integer
                                items:
                                  description: items If unspecified, each key-value
                                    pair in the Data field of the referenced Secret
                                    will be projected into the volume as a file whose
                                    name is the key and content is the value. If specified,
                                    the listed keys will be projected into the specified
                                    paths, and unlisted keys will not be present.
                                    If a key is specified which is not present in
                                    the Secret, the volume setup will error unless
                                    it is marked optional. Paths must be relative
                                    and may not contain the '..' path or start with
                                    '..'.
                                  items:
                                    description: Maps a string key to a path within
                                      a volume.
                                    properties:
                                      key:
                                        description: key is the key to project.
                                        type: string
                                      mode:
                                        description: 'mode is 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. YAML
                                          accepts both octal and decimal values, JSON
                                          requires decimal values for mode bits. If
                                          not specified, the volume defaultMode will
                                          be used. This might be in conflict with
                                          other options that affect the file mode,
                                          like fsGroup, and the result can be other
                                          mode bits set.'
                                        format: int32
                                        type: integer
                                      path:
                                        description: path is 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: optional field specify whether the
                                    Secret or its keys must be defined
                                  type: boolean
                                secretName:
                                  description: 'secretName is the 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
                          required:
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                type: object
            type: object
          status:
            description: ConfigurationStatus communicates the observed state of the
              Configuration (from the controller).
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              latestCreatedRevisionName:
                description: LatestCreatedRevisionName is the last revision that was
                  created from this Configuration. It might not be ready yet, for
                  that use LatestReadyRevisionName.
                type: string
              latestReadyRevisionName:
                description: LatestReadyRevisionName holds the name of the latest
                  Revision stamped out from this Configuration that has had its "Ready"
                  condition become "True".
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/source: "true"
    eventing.knative.dev/source: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: containersources.sources.knative.dev
spec:
  group: sources.knative.dev
  names:
    categories:
    - all
    - knative
    - sources
    kind: ContainerSource
    plural: containersources
    singular: containersource
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.sinkUri
      name: Sink
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: ContainerSource is an event source that starts a container image
          which generates events under certain situations and sends messages to a
          sink URI
        properties:
          spec:
            properties:
              ceOverrides:
                description: CloudEventOverrides defines overrides to control the
                  output format and modifications of the event sent to the sink.
                properties:
                  extensions:
                    description: Extensions specify what attribute are added or overridden
                      on the outbound event. Each `Extensions` key-value pair are
                      set on the event as an attribute extension independently.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              sink:
                description: Sink is a reference to an object that will resolve to
                  a uri to use as the sink.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
              template:
                description: 'A template in the shape of `Deployment.spec.template`
                  to be used for this ContainerSource. More info: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/'
                type: object
                x-kubernetes-preserve-unknown-fields: true
            type: object
          status:
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              ceAttributes:
                description: CloudEventAttributes are the specific attributes that
                  the Source uses as part of its CloudEvents.
                items:
                  properties:
                    source:
                      description: Source is the CloudEvents source attribute.
                      type: string
                    type:
                      description: Type refers to the CloudEvent type attribute.
                      type: string
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              sinkUri:
                description: SinkURI is the current active sink URI that has been
                  configured for the Source.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: unapproved, request not yet submitted
  labels:
    application-crd-id: kubeflow-pipelines
    kustomize.component: metacontroller
  name: controllerrevisions.metacontroller.k8s.io
spec:
  group: metacontroller.k8s.io
  names:
    kind: ControllerRevision
    listKind: ControllerRevisionList
    plural: controllerrevisions
    singular: controllerrevision
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          children:
            items:
              properties:
                apiGroup:
                  type: string
                kind:
                  type: string
                names:
                  items:
                    type: string
                  type: array
              required:
              - apiGroup
              - kind
              - names
              type: object
            type: array
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          parentPatch:
            type: object
        required:
        - metadata
        - parentPatch
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: cronworkflows.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: CronWorkflow
    listKind: CronWorkflowList
    plural: cronworkflows
    shortNames:
    - cwf
    - cronwf
    singular: cronworkflow
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
          status:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.kubernetes.io: unapproved, request not yet submitted
  labels:
    application-crd-id: kubeflow-pipelines
    kustomize.component: metacontroller
  name: decoratorcontrollers.metacontroller.k8s.io
spec:
  group: metacontroller.k8s.io
  names:
    kind: DecoratorController
    listKind: DecoratorControllerList
    plural: decoratorcontrollers
    shortNames:
    - dec
    - decorators
    singular: decoratorcontroller
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              attachments:
                items:
                  properties:
                    apiVersion:
                      type: string
                    resource:
                      type: string
                    updateStrategy:
                      properties:
                        method:
                          type: string
                      type: object
                  required:
                  - apiVersion
                  - resource
                  type: object
                type: array
              hooks:
                properties:
                  customize:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                  finalize:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                  sync:
                    properties:
                      webhook:
                        properties:
                          path:
                            type: string
                          service:
                            properties:
                              name:
                                type: string
                              namespace:
                                type: string
                              port:
                                format: int32
                                type: integer
                              protocol:
                                type: string
                            required:
                            - name
                            - namespace
                            type: object
                          timeout:
                            type: string
                          url:
                            type: string
                        type: object
                    type: object
                type: object
              resources:
                items:
                  properties:
                    annotationSelector:
                      properties:
                        matchAnnotations:
                          additionalProperties:
                            type: string
                          type: object
                        matchExpressions:
                          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. This
                                  array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                      type: object
                    apiVersion:
                      type: string
                    labelSelector:
                      description: A label selector is a label query over a set of
                        resources. The result of matchLabels and matchExpressions
                        are ANDed. An empty label selector matches all objects. A
                        null label selector matches no objects.
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                    resource:
                      type: string
                  required:
                  - apiVersion
                  - resource
                  type: object
                type: array
              resyncPeriodSeconds:
                format: int32
                type: integer
            required:
            - resources
            type: object
          status:
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: destinationrules.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: DestinationRule
    listKind: DestinationRuleList
    plural: destinationrules
    shortNames:
    - dr
    singular: destinationrule
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The name of a service from the service registry
      jsonPath: .spec.host
      name: Host
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting load balancing, outlier detection,
              etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html'
            properties:
              exportTo:
                description: A list of namespaces to which this destination rule is
                  exported.
                items:
                  type: string
                type: array
              host:
                description: The name of a service from the service registry.
                type: string
              subsets:
                items:
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      description: Name of the subset.
                      type: string
                    trafficPolicy:
                      description: Traffic policies that apply to this subset.
                      properties:
                        connectionPool:
                          properties:
                            http:
                              description: HTTP connection pool settings.
                              properties:
                                h2UpgradePolicy:
                                  description: Specify if http1.1 connection should
                                    be upgraded to http2 for the associated destination.
                                  enum:
                                  - DEFAULT
                                  - DO_NOT_UPGRADE
                                  - UPGRADE
                                  type: string
                                http1MaxPendingRequests:
                                  format: int32
                                  type: integer
                                http2MaxRequests:
                                  description: Maximum number of active requests to
                                    a destination.
                                  format: int32
                                  type: integer
                                idleTimeout:
                                  description: The idle timeout for upstream connection
                                    pool connections.
                                  type: string
                                maxRequestsPerConnection:
                                  description: Maximum number of requests per connection
                                    to a backend.
                                  format: int32
                                  type: integer
                                maxRetries:
                                  format: int32
                                  type: integer
                                useClientProtocol:
                                  description: If set to true, client protocol will
                                    be preserved while initiating connection to backend.
                                  type: boolean
                              type: object
                            tcp:
                              description: Settings common to both HTTP and TCP upstream
                                connections.
                              properties:
                                connectTimeout:
                                  description: TCP connection timeout.
                                  type: string
                                maxConnectionDuration:
                                  description: The maximum duration of a connection.
                                  type: string
                                maxConnections:
                                  description: Maximum number of HTTP1 /TCP connections
                                    to a destination host.
                                  format: int32
                                  type: integer
                                tcpKeepalive:
                                  description: If set then set SO_KEEPALIVE on the
                                    socket to enable TCP Keepalives.
                                  properties:
                                    interval:
                                      description: The time duration between keep-alive
                                        probes.
                                      type: string
                                    probes:
                                      type: integer
                                    time:
                                      type: string
                                  type: object
                              type: object
                          type: object
                        loadBalancer:
                          description: Settings controlling the load balancer algorithms.
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - simple
                              - properties:
                                  consistentHash:
                                    allOf:
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - httpHeaderName
                                          - required:
                                            - httpCookie
                                          - required:
                                            - useSourceIp
                                          - required:
                                            - httpQueryParameterName
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - ringHash
                                          - required:
                                            - maglev
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                    properties:
                                      minimumRingSize: {}
                                required:
                                - consistentHash
                          - required:
                            - simple
                          - properties:
                              consistentHash:
                                allOf:
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                  - required:
                                    - httpHeaderName
                                  - required:
                                    - httpCookie
                                  - required:
                                    - useSourceIp
                                  - required:
                                    - httpQueryParameterName
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                  - required:
                                    - ringHash
                                  - required:
                                    - maglev
                                properties:
                                  minimumRingSize: {}
                            required:
                            - consistentHash
                          properties:
                            consistentHash:
                              properties:
                                httpCookie:
                                  description: Hash based on HTTP cookie.
                                  properties:
                                    name:
                                      description: Name of the cookie.
                                      type: string
                                    path:
                                      description: Path to set for the cookie.
                                      type: string
                                    ttl:
                                      description: Lifetime of the cookie.
                                      type: string
                                  type: object
                                httpHeaderName:
                                  description: Hash based on a specific HTTP header.
                                  type: string
                                httpQueryParameterName:
                                  description: Hash based on a specific HTTP query
                                    parameter.
                                  type: string
                                maglev:
                                  description: The Maglev load balancer implements
                                    consistent hashing to backend hosts.
                                  properties:
                                    tableSize:
                                      description: The table size for Maglev hashing.
                                      type: integer
                                  type: object
                                minimumRingSize:
                                  description: Deprecated.
                                  type: integer
                                ringHash:
                                  description: The ring/modulo hash load balancer
                                    implements consistent hashing to backend hosts.
                                  properties:
                                    minimumRingSize:
                                      type: integer
                                  type: object
                                useSourceIp:
                                  description: Hash based on the source IP address.
                                  type: boolean
                              type: object
                            localityLbSetting:
                              properties:
                                distribute:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating locality, '/' separated,
                                          e.g.
                                        type: string
                                      to:
                                        additionalProperties:
                                          type: integer
                                        description: Map of upstream localities to
                                          traffic distribution weights.
                                        type: object
                                    type: object
                                  type: array
                                enabled:
                                  description: enable locality load balancing, this
                                    is DestinationRule-level and will override mesh
                                    wide settings in entirety.
                                  nullable: true
                                  type: boolean
                                failover:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        type: string
                                    type: object
                                  type: array
                                failoverPriority:
                                  description: failoverPriority is an ordered list
                                    of labels used to sort endpoints to do priority
                                    based load balancing.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            simple:
                              enum:
                              - UNSPECIFIED
                              - LEAST_CONN
                              - RANDOM
                              - PASSTHROUGH
                              - ROUND_ROBIN
                              - LEAST_REQUEST
                              type: string
                            warmupDurationSecs:
                              description: Represents the warmup duration of Service.
                              type: string
                          type: object
                        outlierDetection:
                          properties:
                            baseEjectionTime:
                              description: Minimum ejection duration.
                              type: string
                            consecutive5xxErrors:
                              description: Number of 5xx errors before a host is ejected
                                from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveErrors:
                              format: int32
                              type: integer
                            consecutiveGatewayErrors:
                              description: Number of gateway errors before a host
                                is ejected from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveLocalOriginFailures:
                              nullable: true
                              type: integer
                            interval:
                              description: Time interval between ejection sweep analysis.
                              type: string
                            maxEjectionPercent:
                              format: int32
                              type: integer
                            minHealthPercent:
                              format: int32
                              type: integer
                            splitExternalLocalOriginErrors:
                              description: Determines whether to distinguish local
                                origin failures from external errors.
                              type: boolean
                          type: object
                        portLevelSettings:
                          description: Traffic policies specific to individual ports.
                          items:
                            properties:
                              connectionPool:
                                properties:
                                  http:
                                    description: HTTP connection pool settings.
                                    properties:
                                      h2UpgradePolicy:
                                        description: Specify if http1.1 connection
                                          should be upgraded to http2 for the associated
                                          destination.
                                        enum:
                                        - DEFAULT
                                        - DO_NOT_UPGRADE
                                        - UPGRADE
                                        type: string
                                      http1MaxPendingRequests:
                                        format: int32
                                        type: integer
                                      http2MaxRequests:
                                        description: Maximum number of active requests
                                          to a destination.
                                        format: int32
                                        type: integer
                                      idleTimeout:
                                        description: The idle timeout for upstream
                                          connection pool connections.
                                        type: string
                                      maxRequestsPerConnection:
                                        description: Maximum number of requests per
                                          connection to a backend.
                                        format: int32
                                        type: integer
                                      maxRetries:
                                        format: int32
                                        type: integer
                                      useClientProtocol:
                                        description: If set to true, client protocol
                                          will be preserved while initiating connection
                                          to backend.
                                        type: boolean
                                    type: object
                                  tcp:
                                    description: Settings common to both HTTP and
                                      TCP upstream connections.
                                    properties:
                                      connectTimeout:
                                        description: TCP connection timeout.
                                        type: string
                                      maxConnectionDuration:
                                        description: The maximum duration of a connection.
                                        type: string
                                      maxConnections:
                                        description: Maximum number of HTTP1 /TCP
                                          connections to a destination host.
                                        format: int32
                                        type: integer
                                      tcpKeepalive:
                                        description: If set then set SO_KEEPALIVE
                                          on the socket to enable TCP Keepalives.
                                        properties:
                                          interval:
                                            description: The time duration between
                                              keep-alive probes.
                                            type: string
                                          probes:
                                            type: integer
                                          time:
                                            type: string
                                        type: object
                                    type: object
                                type: object
                              loadBalancer:
                                description: Settings controlling the load balancer
                                  algorithms.
                                oneOf:
                                - not:
                                    anyOf:
                                    - required:
                                      - simple
                                    - properties:
                                        consistentHash:
                                          allOf:
                                          - oneOf:
                                            - not:
                                                anyOf:
                                                - required:
                                                  - httpHeaderName
                                                - required:
                                                  - httpCookie
                                                - required:
                                                  - useSourceIp
                                                - required:
                                                  - httpQueryParameterName
                                            - required:
                                              - httpHeaderName
                                            - required:
                                              - httpCookie
                                            - required:
                                              - useSourceIp
                                            - required:
                                              - httpQueryParameterName
                                          - oneOf:
                                            - not:
                                                anyOf:
                                                - required:
                                                  - ringHash
                                                - required:
                                                  - maglev
                                            - required:
                                              - ringHash
                                            - required:
                                              - maglev
                                          properties:
                                            minimumRingSize: {}
                                      required:
                                      - consistentHash
                                - required:
                                  - simple
                                - properties:
                                    consistentHash:
                                      allOf:
                                      - oneOf:
                                        - not:
                                            anyOf:
                                            - required:
                                              - httpHeaderName
                                            - required:
                                              - httpCookie
                                            - required:
                                              - useSourceIp
                                            - required:
                                              - httpQueryParameterName
                                        - required:
                                          - httpHeaderName
                                        - required:
                                          - httpCookie
                                        - required:
                                          - useSourceIp
                                        - required:
                                          - httpQueryParameterName
                                      - oneOf:
                                        - not:
                                            anyOf:
                                            - required:
                                              - ringHash
                                            - required:
                                              - maglev
                                        - required:
                                          - ringHash
                                        - required:
                                          - maglev
                                      properties:
                                        minimumRingSize: {}
                                  required:
                                  - consistentHash
                                properties:
                                  consistentHash:
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP
                                          header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP
                                          query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements
                                          consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev
                                              hashing.
                                            type: integer
                                        type: object
                                      minimumRingSize:
                                        description: Deprecated.
                                        type: integer
                                      ringHash:
                                        description: The ring/modulo hash load balancer
                                          implements consistent hashing to backend
                                          hosts.
                                        properties:
                                          minimumRingSize:
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  localityLbSetting:
                                    properties:
                                      distribute:
                                        description: 'Optional: only one of distribute,
                                          failover or failoverPriority can be set.'
                                        items:
                                          properties:
                                            from:
                                              description: Originating locality, '/'
                                                separated, e.g.
                                              type: string
                                            to:
                                              additionalProperties:
                                                type: integer
                                              description: Map of upstream localities
                                                to traffic distribution weights.
                                              type: object
                                          type: object
                                        type: array
                                      enabled:
                                        description: enable locality load balancing,
                                          this is DestinationRule-level and will override
                                          mesh wide settings in entirety.
                                        nullable: true
                                        type: boolean
                                      failover:
                                        description: 'Optional: only one of distribute,
                                          failover or failoverPriority can be set.'
                                        items:
                                          properties:
                                            from:
                                              description: Originating region.
                                              type: string
                                            to:
                                              type: string
                                          type: object
                                        type: array
                                      failoverPriority:
                                        description: failoverPriority is an ordered
                                          list of labels used to sort endpoints to
                                          do priority based load balancing.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  simple:
                                    enum:
                                    - UNSPECIFIED
                                    - LEAST_CONN
                                    - RANDOM
                                    - PASSTHROUGH
                                    - ROUND_ROBIN
                                    - LEAST_REQUEST
                                    type: string
                                  warmupDurationSecs:
                                    description: Represents the warmup duration of
                                      Service.
                                    type: string
                                type: object
                              outlierDetection:
                                properties:
                                  baseEjectionTime:
                                    description: Minimum ejection duration.
                                    type: string
                                  consecutive5xxErrors:
                                    description: Number of 5xx errors before a host
                                      is ejected from the connection pool.
                                    nullable: true
                                    type: integer
                                  consecutiveErrors:
                                    format: int32
                                    type: integer
                                  consecutiveGatewayErrors:
                                    description: Number of gateway errors before a
                                      host is ejected from the connection pool.
                                    nullable: true
                                    type: integer
                                  consecutiveLocalOriginFailures:
                                    nullable: true
                                    type: integer
                                  interval:
                                    description: Time interval between ejection sweep
                                      analysis.
                                    type: string
                                  maxEjectionPercent:
                                    format: int32
                                    type: integer
                                  minHealthPercent:
                                    format: int32
                                    type: integer
                                  splitExternalLocalOriginErrors:
                                    description: Determines whether to distinguish
                                      local origin failures from external errors.
                                    type: boolean
                                type: object
                              port:
                                properties:
                                  number:
                                    type: integer
                                type: object
                              tls:
                                description: TLS related settings for connections
                                  to the upstream service.
                                properties:
                                  caCertificates:
                                    type: string
                                  clientCertificate:
                                    description: REQUIRED if mode is `MUTUAL`.
                                    type: string
                                  credentialName:
                                    type: string
                                  insecureSkipVerify:
                                    nullable: true
                                    type: boolean
                                  mode:
                                    enum:
                                    - DISABLE
                                    - SIMPLE
                                    - MUTUAL
                                    - ISTIO_MUTUAL
                                    type: string
                                  privateKey:
                                    description: REQUIRED if mode is `MUTUAL`.
                                    type: string
                                  sni:
                                    description: SNI string to present to the server
                                      during TLS handshake.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            type: object
                          type: array
                        tls:
                          description: TLS related settings for connections to the
                            upstream service.
                          properties:
                            caCertificates:
                              type: string
                            clientCertificate:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            credentialName:
                              type: string
                            insecureSkipVerify:
                              nullable: true
                              type: boolean
                            mode:
                              enum:
                              - DISABLE
                              - SIMPLE
                              - MUTUAL
                              - ISTIO_MUTUAL
                              type: string
                            privateKey:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            sni:
                              description: SNI string to present to the server during
                                TLS handshake.
                              type: string
                            subjectAltNames:
                              items:
                                type: string
                              type: array
                          type: object
                        tunnel:
                          properties:
                            protocol:
                              description: Specifies which protocol to use for tunneling
                                the downstream connection.
                              type: string
                            targetHost:
                              description: Specifies a host to which the downstream
                                connection is tunneled.
                              type: string
                            targetPort:
                              description: Specifies a port to which the downstream
                                connection is tunneled.
                              type: integer
                          type: object
                      type: object
                  type: object
                type: array
              trafficPolicy:
                properties:
                  connectionPool:
                    properties:
                      http:
                        description: HTTP connection pool settings.
                        properties:
                          h2UpgradePolicy:
                            description: Specify if http1.1 connection should be upgraded
                              to http2 for the associated destination.
                            enum:
                            - DEFAULT
                            - DO_NOT_UPGRADE
                            - UPGRADE
                            type: string
                          http1MaxPendingRequests:
                            format: int32
                            type: integer
                          http2MaxRequests:
                            description: Maximum number of active requests to a destination.
                            format: int32
                            type: integer
                          idleTimeout:
                            description: The idle timeout for upstream connection
                              pool connections.
                            type: string
                          maxRequestsPerConnection:
                            description: Maximum number of requests per connection
                              to a backend.
                            format: int32
                            type: integer
                          maxRetries:
                            format: int32
                            type: integer
                          useClientProtocol:
                            description: If set to true, client protocol will be preserved
                              while initiating connection to backend.
                            type: boolean
                        type: object
                      tcp:
                        description: Settings common to both HTTP and TCP upstream
                          connections.
                        properties:
                          connectTimeout:
                            description: TCP connection timeout.
                            type: string
                          maxConnectionDuration:
                            description: The maximum duration of a connection.
                            type: string
                          maxConnections:
                            description: Maximum number of HTTP1 /TCP connections
                              to a destination host.
                            format: int32
                            type: integer
                          tcpKeepalive:
                            description: If set then set SO_KEEPALIVE on the socket
                              to enable TCP Keepalives.
                            properties:
                              interval:
                                description: The time duration between keep-alive
                                  probes.
                                type: string
                              probes:
                                type: integer
                              time:
                                type: string
                            type: object
                        type: object
                    type: object
                  loadBalancer:
                    description: Settings controlling the load balancer algorithms.
                    oneOf:
                    - not:
                        anyOf:
                        - required:
                          - simple
                        - properties:
                            consistentHash:
                              allOf:
                              - oneOf:
                                - not:
                                    anyOf:
                                    - required:
                                      - httpHeaderName
                                    - required:
                                      - httpCookie
                                    - required:
                                      - useSourceIp
                                    - required:
                                      - httpQueryParameterName
                                - required:
                                  - httpHeaderName
                                - required:
                                  - httpCookie
                                - required:
                                  - useSourceIp
                                - required:
                                  - httpQueryParameterName
                              - oneOf:
                                - not:
                                    anyOf:
                                    - required:
                                      - ringHash
                                    - required:
                                      - maglev
                                - required:
                                  - ringHash
                                - required:
                                  - maglev
                              properties:
                                minimumRingSize: {}
                          required:
                          - consistentHash
                    - required:
                      - simple
                    - properties:
                        consistentHash:
                          allOf:
                          - oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - httpHeaderName
                                - required:
                                  - httpCookie
                                - required:
                                  - useSourceIp
                                - required:
                                  - httpQueryParameterName
                            - required:
                              - httpHeaderName
                            - required:
                              - httpCookie
                            - required:
                              - useSourceIp
                            - required:
                              - httpQueryParameterName
                          - oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - ringHash
                                - required:
                                  - maglev
                            - required:
                              - ringHash
                            - required:
                              - maglev
                          properties:
                            minimumRingSize: {}
                      required:
                      - consistentHash
                    properties:
                      consistentHash:
                        properties:
                          httpCookie:
                            description: Hash based on HTTP cookie.
                            properties:
                              name:
                                description: Name of the cookie.
                                type: string
                              path:
                                description: Path to set for the cookie.
                                type: string
                              ttl:
                                description: Lifetime of the cookie.
                                type: string
                            type: object
                          httpHeaderName:
                            description: Hash based on a specific HTTP header.
                            type: string
                          httpQueryParameterName:
                            description: Hash based on a specific HTTP query parameter.
                            type: string
                          maglev:
                            description: The Maglev load balancer implements consistent
                              hashing to backend hosts.
                            properties:
                              tableSize:
                                description: The table size for Maglev hashing.
                                type: integer
                            type: object
                          minimumRingSize:
                            description: Deprecated.
                            type: integer
                          ringHash:
                            description: The ring/modulo hash load balancer implements
                              consistent hashing to backend hosts.
                            properties:
                              minimumRingSize:
                                type: integer
                            type: object
                          useSourceIp:
                            description: Hash based on the source IP address.
                            type: boolean
                        type: object
                      localityLbSetting:
                        properties:
                          distribute:
                            description: 'Optional: only one of distribute, failover
                              or failoverPriority can be set.'
                            items:
                              properties:
                                from:
                                  description: Originating locality, '/' separated,
                                    e.g.
                                  type: string
                                to:
                                  additionalProperties:
                                    type: integer
                                  description: Map of upstream localities to traffic
                                    distribution weights.
                                  type: object
                              type: object
                            type: array
                          enabled:
                            description: enable locality load balancing, this is DestinationRule-level
                              and will override mesh wide settings in entirety.
                            nullable: true
                            type: boolean
                          failover:
                            description: 'Optional: only one of distribute, failover
                              or failoverPriority can be set.'
                            items:
                              properties:
                                from:
                                  description: Originating region.
                                  type: string
                                to:
                                  type: string
                              type: object
                            type: array
                          failoverPriority:
                            description: failoverPriority is an ordered list of labels
                              used to sort endpoints to do priority based load balancing.
                            items:
                              type: string
                            type: array
                        type: object
                      simple:
                        enum:
                        - UNSPECIFIED
                        - LEAST_CONN
                        - RANDOM
                        - PASSTHROUGH
                        - ROUND_ROBIN
                        - LEAST_REQUEST
                        type: string
                      warmupDurationSecs:
                        description: Represents the warmup duration of Service.
                        type: string
                    type: object
                  outlierDetection:
                    properties:
                      baseEjectionTime:
                        description: Minimum ejection duration.
                        type: string
                      consecutive5xxErrors:
                        description: Number of 5xx errors before a host is ejected
                          from the connection pool.
                        nullable: true
                        type: integer
                      consecutiveErrors:
                        format: int32
                        type: integer
                      consecutiveGatewayErrors:
                        description: Number of gateway errors before a host is ejected
                          from the connection pool.
                        nullable: true
                        type: integer
                      consecutiveLocalOriginFailures:
                        nullable: true
                        type: integer
                      interval:
                        description: Time interval between ejection sweep analysis.
                        type: string
                      maxEjectionPercent:
                        format: int32
                        type: integer
                      minHealthPercent:
                        format: int32
                        type: integer
                      splitExternalLocalOriginErrors:
                        description: Determines whether to distinguish local origin
                          failures from external errors.
                        type: boolean
                    type: object
                  portLevelSettings:
                    description: Traffic policies specific to individual ports.
                    items:
                      properties:
                        connectionPool:
                          properties:
                            http:
                              description: HTTP connection pool settings.
                              properties:
                                h2UpgradePolicy:
                                  description: Specify if http1.1 connection should
                                    be upgraded to http2 for the associated destination.
                                  enum:
                                  - DEFAULT
                                  - DO_NOT_UPGRADE
                                  - UPGRADE
                                  type: string
                                http1MaxPendingRequests:
                                  format: int32
                                  type: integer
                                http2MaxRequests:
                                  description: Maximum number of active requests to
                                    a destination.
                                  format: int32
                                  type: integer
                                idleTimeout:
                                  description: The idle timeout for upstream connection
                                    pool connections.
                                  type: string
                                maxRequestsPerConnection:
                                  description: Maximum number of requests per connection
                                    to a backend.
                                  format: int32
                                  type: integer
                                maxRetries:
                                  format: int32
                                  type: integer
                                useClientProtocol:
                                  description: If set to true, client protocol will
                                    be preserved while initiating connection to backend.
                                  type: boolean
                              type: object
                            tcp:
                              description: Settings common to both HTTP and TCP upstream
                                connections.
                              properties:
                                connectTimeout:
                                  description: TCP connection timeout.
                                  type: string
                                maxConnectionDuration:
                                  description: The maximum duration of a connection.
                                  type: string
                                maxConnections:
                                  description: Maximum number of HTTP1 /TCP connections
                                    to a destination host.
                                  format: int32
                                  type: integer
                                tcpKeepalive:
                                  description: If set then set SO_KEEPALIVE on the
                                    socket to enable TCP Keepalives.
                                  properties:
                                    interval:
                                      description: The time duration between keep-alive
                                        probes.
                                      type: string
                                    probes:
                                      type: integer
                                    time:
                                      type: string
                                  type: object
                              type: object
                          type: object
                        loadBalancer:
                          description: Settings controlling the load balancer algorithms.
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - simple
                              - properties:
                                  consistentHash:
                                    allOf:
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - httpHeaderName
                                          - required:
                                            - httpCookie
                                          - required:
                                            - useSourceIp
                                          - required:
                                            - httpQueryParameterName
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - ringHash
                                          - required:
                                            - maglev
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                    properties:
                                      minimumRingSize: {}
                                required:
                                - consistentHash
                          - required:
                            - simple
                          - properties:
                              consistentHash:
                                allOf:
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                  - required:
                                    - httpHeaderName
                                  - required:
                                    - httpCookie
                                  - required:
                                    - useSourceIp
                                  - required:
                                    - httpQueryParameterName
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                  - required:
                                    - ringHash
                                  - required:
                                    - maglev
                                properties:
                                  minimumRingSize: {}
                            required:
                            - consistentHash
                          properties:
                            consistentHash:
                              properties:
                                httpCookie:
                                  description: Hash based on HTTP cookie.
                                  properties:
                                    name:
                                      description: Name of the cookie.
                                      type: string
                                    path:
                                      description: Path to set for the cookie.
                                      type: string
                                    ttl:
                                      description: Lifetime of the cookie.
                                      type: string
                                  type: object
                                httpHeaderName:
                                  description: Hash based on a specific HTTP header.
                                  type: string
                                httpQueryParameterName:
                                  description: Hash based on a specific HTTP query
                                    parameter.
                                  type: string
                                maglev:
                                  description: The Maglev load balancer implements
                                    consistent hashing to backend hosts.
                                  properties:
                                    tableSize:
                                      description: The table size for Maglev hashing.
                                      type: integer
                                  type: object
                                minimumRingSize:
                                  description: Deprecated.
                                  type: integer
                                ringHash:
                                  description: The ring/modulo hash load balancer
                                    implements consistent hashing to backend hosts.
                                  properties:
                                    minimumRingSize:
                                      type: integer
                                  type: object
                                useSourceIp:
                                  description: Hash based on the source IP address.
                                  type: boolean
                              type: object
                            localityLbSetting:
                              properties:
                                distribute:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating locality, '/' separated,
                                          e.g.
                                        type: string
                                      to:
                                        additionalProperties:
                                          type: integer
                                        description: Map of upstream localities to
                                          traffic distribution weights.
                                        type: object
                                    type: object
                                  type: array
                                enabled:
                                  description: enable locality load balancing, this
                                    is DestinationRule-level and will override mesh
                                    wide settings in entirety.
                                  nullable: true
                                  type: boolean
                                failover:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        type: string
                                    type: object
                                  type: array
                                failoverPriority:
                                  description: failoverPriority is an ordered list
                                    of labels used to sort endpoints to do priority
                                    based load balancing.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            simple:
                              enum:
                              - UNSPECIFIED
                              - LEAST_CONN
                              - RANDOM
                              - PASSTHROUGH
                              - ROUND_ROBIN
                              - LEAST_REQUEST
                              type: string
                            warmupDurationSecs:
                              description: Represents the warmup duration of Service.
                              type: string
                          type: object
                        outlierDetection:
                          properties:
                            baseEjectionTime:
                              description: Minimum ejection duration.
                              type: string
                            consecutive5xxErrors:
                              description: Number of 5xx errors before a host is ejected
                                from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveErrors:
                              format: int32
                              type: integer
                            consecutiveGatewayErrors:
                              description: Number of gateway errors before a host
                                is ejected from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveLocalOriginFailures:
                              nullable: true
                              type: integer
                            interval:
                              description: Time interval between ejection sweep analysis.
                              type: string
                            maxEjectionPercent:
                              format: int32
                              type: integer
                            minHealthPercent:
                              format: int32
                              type: integer
                            splitExternalLocalOriginErrors:
                              description: Determines whether to distinguish local
                                origin failures from external errors.
                              type: boolean
                          type: object
                        port:
                          properties:
                            number:
                              type: integer
                          type: object
                        tls:
                          description: TLS related settings for connections to the
                            upstream service.
                          properties:
                            caCertificates:
                              type: string
                            clientCertificate:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            credentialName:
                              type: string
                            insecureSkipVerify:
                              nullable: true
                              type: boolean
                            mode:
                              enum:
                              - DISABLE
                              - SIMPLE
                              - MUTUAL
                              - ISTIO_MUTUAL
                              type: string
                            privateKey:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            sni:
                              description: SNI string to present to the server during
                                TLS handshake.
                              type: string
                            subjectAltNames:
                              items:
                                type: string
                              type: array
                          type: object
                      type: object
                    type: array
                  tls:
                    description: TLS related settings for connections to the upstream
                      service.
                    properties:
                      caCertificates:
                        type: string
                      clientCertificate:
                        description: REQUIRED if mode is `MUTUAL`.
                        type: string
                      credentialName:
                        type: string
                      insecureSkipVerify:
                        nullable: true
                        type: boolean
                      mode:
                        enum:
                        - DISABLE
                        - SIMPLE
                        - MUTUAL
                        - ISTIO_MUTUAL
                        type: string
                      privateKey:
                        description: REQUIRED if mode is `MUTUAL`.
                        type: string
                      sni:
                        description: SNI string to present to the server during TLS
                          handshake.
                        type: string
                      subjectAltNames:
                        items:
                          type: string
                        type: array
                    type: object
                  tunnel:
                    properties:
                      protocol:
                        description: Specifies which protocol to use for tunneling
                          the downstream connection.
                        type: string
                      targetHost:
                        description: Specifies a host to which the downstream connection
                          is tunneled.
                        type: string
                      targetPort:
                        description: Specifies a port to which the downstream connection
                          is tunneled.
                        type: integer
                    type: object
                type: object
              workloadSelector:
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: The name of a service from the service registry
      jsonPath: .spec.host
      name: Host
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting load balancing, outlier detection,
              etc. See more details at: https://istio.io/docs/reference/config/networking/destination-rule.html'
            properties:
              exportTo:
                description: A list of namespaces to which this destination rule is
                  exported.
                items:
                  type: string
                type: array
              host:
                description: The name of a service from the service registry.
                type: string
              subsets:
                items:
                  properties:
                    labels:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      description: Name of the subset.
                      type: string
                    trafficPolicy:
                      description: Traffic policies that apply to this subset.
                      properties:
                        connectionPool:
                          properties:
                            http:
                              description: HTTP connection pool settings.
                              properties:
                                h2UpgradePolicy:
                                  description: Specify if http1.1 connection should
                                    be upgraded to http2 for the associated destination.
                                  enum:
                                  - DEFAULT
                                  - DO_NOT_UPGRADE
                                  - UPGRADE
                                  type: string
                                http1MaxPendingRequests:
                                  format: int32
                                  type: integer
                                http2MaxRequests:
                                  description: Maximum number of active requests to
                                    a destination.
                                  format: int32
                                  type: integer
                                idleTimeout:
                                  description: The idle timeout for upstream connection
                                    pool connections.
                                  type: string
                                maxRequestsPerConnection:
                                  description: Maximum number of requests per connection
                                    to a backend.
                                  format: int32
                                  type: integer
                                maxRetries:
                                  format: int32
                                  type: integer
                                useClientProtocol:
                                  description: If set to true, client protocol will
                                    be preserved while initiating connection to backend.
                                  type: boolean
                              type: object
                            tcp:
                              description: Settings common to both HTTP and TCP upstream
                                connections.
                              properties:
                                connectTimeout:
                                  description: TCP connection timeout.
                                  type: string
                                maxConnectionDuration:
                                  description: The maximum duration of a connection.
                                  type: string
                                maxConnections:
                                  description: Maximum number of HTTP1 /TCP connections
                                    to a destination host.
                                  format: int32
                                  type: integer
                                tcpKeepalive:
                                  description: If set then set SO_KEEPALIVE on the
                                    socket to enable TCP Keepalives.
                                  properties:
                                    interval:
                                      description: The time duration between keep-alive
                                        probes.
                                      type: string
                                    probes:
                                      type: integer
                                    time:
                                      type: string
                                  type: object
                              type: object
                          type: object
                        loadBalancer:
                          description: Settings controlling the load balancer algorithms.
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - simple
                              - properties:
                                  consistentHash:
                                    allOf:
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - httpHeaderName
                                          - required:
                                            - httpCookie
                                          - required:
                                            - useSourceIp
                                          - required:
                                            - httpQueryParameterName
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - ringHash
                                          - required:
                                            - maglev
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                    properties:
                                      minimumRingSize: {}
                                required:
                                - consistentHash
                          - required:
                            - simple
                          - properties:
                              consistentHash:
                                allOf:
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                  - required:
                                    - httpHeaderName
                                  - required:
                                    - httpCookie
                                  - required:
                                    - useSourceIp
                                  - required:
                                    - httpQueryParameterName
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                  - required:
                                    - ringHash
                                  - required:
                                    - maglev
                                properties:
                                  minimumRingSize: {}
                            required:
                            - consistentHash
                          properties:
                            consistentHash:
                              properties:
                                httpCookie:
                                  description: Hash based on HTTP cookie.
                                  properties:
                                    name:
                                      description: Name of the cookie.
                                      type: string
                                    path:
                                      description: Path to set for the cookie.
                                      type: string
                                    ttl:
                                      description: Lifetime of the cookie.
                                      type: string
                                  type: object
                                httpHeaderName:
                                  description: Hash based on a specific HTTP header.
                                  type: string
                                httpQueryParameterName:
                                  description: Hash based on a specific HTTP query
                                    parameter.
                                  type: string
                                maglev:
                                  description: The Maglev load balancer implements
                                    consistent hashing to backend hosts.
                                  properties:
                                    tableSize:
                                      description: The table size for Maglev hashing.
                                      type: integer
                                  type: object
                                minimumRingSize:
                                  description: Deprecated.
                                  type: integer
                                ringHash:
                                  description: The ring/modulo hash load balancer
                                    implements consistent hashing to backend hosts.
                                  properties:
                                    minimumRingSize:
                                      type: integer
                                  type: object
                                useSourceIp:
                                  description: Hash based on the source IP address.
                                  type: boolean
                              type: object
                            localityLbSetting:
                              properties:
                                distribute:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating locality, '/' separated,
                                          e.g.
                                        type: string
                                      to:
                                        additionalProperties:
                                          type: integer
                                        description: Map of upstream localities to
                                          traffic distribution weights.
                                        type: object
                                    type: object
                                  type: array
                                enabled:
                                  description: enable locality load balancing, this
                                    is DestinationRule-level and will override mesh
                                    wide settings in entirety.
                                  nullable: true
                                  type: boolean
                                failover:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        type: string
                                    type: object
                                  type: array
                                failoverPriority:
                                  description: failoverPriority is an ordered list
                                    of labels used to sort endpoints to do priority
                                    based load balancing.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            simple:
                              enum:
                              - UNSPECIFIED
                              - LEAST_CONN
                              - RANDOM
                              - PASSTHROUGH
                              - ROUND_ROBIN
                              - LEAST_REQUEST
                              type: string
                            warmupDurationSecs:
                              description: Represents the warmup duration of Service.
                              type: string
                          type: object
                        outlierDetection:
                          properties:
                            baseEjectionTime:
                              description: Minimum ejection duration.
                              type: string
                            consecutive5xxErrors:
                              description: Number of 5xx errors before a host is ejected
                                from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveErrors:
                              format: int32
                              type: integer
                            consecutiveGatewayErrors:
                              description: Number of gateway errors before a host
                                is ejected from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveLocalOriginFailures:
                              nullable: true
                              type: integer
                            interval:
                              description: Time interval between ejection sweep analysis.
                              type: string
                            maxEjectionPercent:
                              format: int32
                              type: integer
                            minHealthPercent:
                              format: int32
                              type: integer
                            splitExternalLocalOriginErrors:
                              description: Determines whether to distinguish local
                                origin failures from external errors.
                              type: boolean
                          type: object
                        portLevelSettings:
                          description: Traffic policies specific to individual ports.
                          items:
                            properties:
                              connectionPool:
                                properties:
                                  http:
                                    description: HTTP connection pool settings.
                                    properties:
                                      h2UpgradePolicy:
                                        description: Specify if http1.1 connection
                                          should be upgraded to http2 for the associated
                                          destination.
                                        enum:
                                        - DEFAULT
                                        - DO_NOT_UPGRADE
                                        - UPGRADE
                                        type: string
                                      http1MaxPendingRequests:
                                        format: int32
                                        type: integer
                                      http2MaxRequests:
                                        description: Maximum number of active requests
                                          to a destination.
                                        format: int32
                                        type: integer
                                      idleTimeout:
                                        description: The idle timeout for upstream
                                          connection pool connections.
                                        type: string
                                      maxRequestsPerConnection:
                                        description: Maximum number of requests per
                                          connection to a backend.
                                        format: int32
                                        type: integer
                                      maxRetries:
                                        format: int32
                                        type: integer
                                      useClientProtocol:
                                        description: If set to true, client protocol
                                          will be preserved while initiating connection
                                          to backend.
                                        type: boolean
                                    type: object
                                  tcp:
                                    description: Settings common to both HTTP and
                                      TCP upstream connections.
                                    properties:
                                      connectTimeout:
                                        description: TCP connection timeout.
                                        type: string
                                      maxConnectionDuration:
                                        description: The maximum duration of a connection.
                                        type: string
                                      maxConnections:
                                        description: Maximum number of HTTP1 /TCP
                                          connections to a destination host.
                                        format: int32
                                        type: integer
                                      tcpKeepalive:
                                        description: If set then set SO_KEEPALIVE
                                          on the socket to enable TCP Keepalives.
                                        properties:
                                          interval:
                                            description: The time duration between
                                              keep-alive probes.
                                            type: string
                                          probes:
                                            type: integer
                                          time:
                                            type: string
                                        type: object
                                    type: object
                                type: object
                              loadBalancer:
                                description: Settings controlling the load balancer
                                  algorithms.
                                oneOf:
                                - not:
                                    anyOf:
                                    - required:
                                      - simple
                                    - properties:
                                        consistentHash:
                                          allOf:
                                          - oneOf:
                                            - not:
                                                anyOf:
                                                - required:
                                                  - httpHeaderName
                                                - required:
                                                  - httpCookie
                                                - required:
                                                  - useSourceIp
                                                - required:
                                                  - httpQueryParameterName
                                            - required:
                                              - httpHeaderName
                                            - required:
                                              - httpCookie
                                            - required:
                                              - useSourceIp
                                            - required:
                                              - httpQueryParameterName
                                          - oneOf:
                                            - not:
                                                anyOf:
                                                - required:
                                                  - ringHash
                                                - required:
                                                  - maglev
                                            - required:
                                              - ringHash
                                            - required:
                                              - maglev
                                          properties:
                                            minimumRingSize: {}
                                      required:
                                      - consistentHash
                                - required:
                                  - simple
                                - properties:
                                    consistentHash:
                                      allOf:
                                      - oneOf:
                                        - not:
                                            anyOf:
                                            - required:
                                              - httpHeaderName
                                            - required:
                                              - httpCookie
                                            - required:
                                              - useSourceIp
                                            - required:
                                              - httpQueryParameterName
                                        - required:
                                          - httpHeaderName
                                        - required:
                                          - httpCookie
                                        - required:
                                          - useSourceIp
                                        - required:
                                          - httpQueryParameterName
                                      - oneOf:
                                        - not:
                                            anyOf:
                                            - required:
                                              - ringHash
                                            - required:
                                              - maglev
                                        - required:
                                          - ringHash
                                        - required:
                                          - maglev
                                      properties:
                                        minimumRingSize: {}
                                  required:
                                  - consistentHash
                                properties:
                                  consistentHash:
                                    properties:
                                      httpCookie:
                                        description: Hash based on HTTP cookie.
                                        properties:
                                          name:
                                            description: Name of the cookie.
                                            type: string
                                          path:
                                            description: Path to set for the cookie.
                                            type: string
                                          ttl:
                                            description: Lifetime of the cookie.
                                            type: string
                                        type: object
                                      httpHeaderName:
                                        description: Hash based on a specific HTTP
                                          header.
                                        type: string
                                      httpQueryParameterName:
                                        description: Hash based on a specific HTTP
                                          query parameter.
                                        type: string
                                      maglev:
                                        description: The Maglev load balancer implements
                                          consistent hashing to backend hosts.
                                        properties:
                                          tableSize:
                                            description: The table size for Maglev
                                              hashing.
                                            type: integer
                                        type: object
                                      minimumRingSize:
                                        description: Deprecated.
                                        type: integer
                                      ringHash:
                                        description: The ring/modulo hash load balancer
                                          implements consistent hashing to backend
                                          hosts.
                                        properties:
                                          minimumRingSize:
                                            type: integer
                                        type: object
                                      useSourceIp:
                                        description: Hash based on the source IP address.
                                        type: boolean
                                    type: object
                                  localityLbSetting:
                                    properties:
                                      distribute:
                                        description: 'Optional: only one of distribute,
                                          failover or failoverPriority can be set.'
                                        items:
                                          properties:
                                            from:
                                              description: Originating locality, '/'
                                                separated, e.g.
                                              type: string
                                            to:
                                              additionalProperties:
                                                type: integer
                                              description: Map of upstream localities
                                                to traffic distribution weights.
                                              type: object
                                          type: object
                                        type: array
                                      enabled:
                                        description: enable locality load balancing,
                                          this is DestinationRule-level and will override
                                          mesh wide settings in entirety.
                                        nullable: true
                                        type: boolean
                                      failover:
                                        description: 'Optional: only one of distribute,
                                          failover or failoverPriority can be set.'
                                        items:
                                          properties:
                                            from:
                                              description: Originating region.
                                              type: string
                                            to:
                                              type: string
                                          type: object
                                        type: array
                                      failoverPriority:
                                        description: failoverPriority is an ordered
                                          list of labels used to sort endpoints to
                                          do priority based load balancing.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  simple:
                                    enum:
                                    - UNSPECIFIED
                                    - LEAST_CONN
                                    - RANDOM
                                    - PASSTHROUGH
                                    - ROUND_ROBIN
                                    - LEAST_REQUEST
                                    type: string
                                  warmupDurationSecs:
                                    description: Represents the warmup duration of
                                      Service.
                                    type: string
                                type: object
                              outlierDetection:
                                properties:
                                  baseEjectionTime:
                                    description: Minimum ejection duration.
                                    type: string
                                  consecutive5xxErrors:
                                    description: Number of 5xx errors before a host
                                      is ejected from the connection pool.
                                    nullable: true
                                    type: integer
                                  consecutiveErrors:
                                    format: int32
                                    type: integer
                                  consecutiveGatewayErrors:
                                    description: Number of gateway errors before a
                                      host is ejected from the connection pool.
                                    nullable: true
                                    type: integer
                                  consecutiveLocalOriginFailures:
                                    nullable: true
                                    type: integer
                                  interval:
                                    description: Time interval between ejection sweep
                                      analysis.
                                    type: string
                                  maxEjectionPercent:
                                    format: int32
                                    type: integer
                                  minHealthPercent:
                                    format: int32
                                    type: integer
                                  splitExternalLocalOriginErrors:
                                    description: Determines whether to distinguish
                                      local origin failures from external errors.
                                    type: boolean
                                type: object
                              port:
                                properties:
                                  number:
                                    type: integer
                                type: object
                              tls:
                                description: TLS related settings for connections
                                  to the upstream service.
                                properties:
                                  caCertificates:
                                    type: string
                                  clientCertificate:
                                    description: REQUIRED if mode is `MUTUAL`.
                                    type: string
                                  credentialName:
                                    type: string
                                  insecureSkipVerify:
                                    nullable: true
                                    type: boolean
                                  mode:
                                    enum:
                                    - DISABLE
                                    - SIMPLE
                                    - MUTUAL
                                    - ISTIO_MUTUAL
                                    type: string
                                  privateKey:
                                    description: REQUIRED if mode is `MUTUAL`.
                                    type: string
                                  sni:
                                    description: SNI string to present to the server
                                      during TLS handshake.
                                    type: string
                                  subjectAltNames:
                                    items:
                                      type: string
                                    type: array
                                type: object
                            type: object
                          type: array
                        tls:
                          description: TLS related settings for connections to the
                            upstream service.
                          properties:
                            caCertificates:
                              type: string
                            clientCertificate:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            credentialName:
                              type: string
                            insecureSkipVerify:
                              nullable: true
                              type: boolean
                            mode:
                              enum:
                              - DISABLE
                              - SIMPLE
                              - MUTUAL
                              - ISTIO_MUTUAL
                              type: string
                            privateKey:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            sni:
                              description: SNI string to present to the server during
                                TLS handshake.
                              type: string
                            subjectAltNames:
                              items:
                                type: string
                              type: array
                          type: object
                        tunnel:
                          properties:
                            protocol:
                              description: Specifies which protocol to use for tunneling
                                the downstream connection.
                              type: string
                            targetHost:
                              description: Specifies a host to which the downstream
                                connection is tunneled.
                              type: string
                            targetPort:
                              description: Specifies a port to which the downstream
                                connection is tunneled.
                              type: integer
                          type: object
                      type: object
                  type: object
                type: array
              trafficPolicy:
                properties:
                  connectionPool:
                    properties:
                      http:
                        description: HTTP connection pool settings.
                        properties:
                          h2UpgradePolicy:
                            description: Specify if http1.1 connection should be upgraded
                              to http2 for the associated destination.
                            enum:
                            - DEFAULT
                            - DO_NOT_UPGRADE
                            - UPGRADE
                            type: string
                          http1MaxPendingRequests:
                            format: int32
                            type: integer
                          http2MaxRequests:
                            description: Maximum number of active requests to a destination.
                            format: int32
                            type: integer
                          idleTimeout:
                            description: The idle timeout for upstream connection
                              pool connections.
                            type: string
                          maxRequestsPerConnection:
                            description: Maximum number of requests per connection
                              to a backend.
                            format: int32
                            type: integer
                          maxRetries:
                            format: int32
                            type: integer
                          useClientProtocol:
                            description: If set to true, client protocol will be preserved
                              while initiating connection to backend.
                            type: boolean
                        type: object
                      tcp:
                        description: Settings common to both HTTP and TCP upstream
                          connections.
                        properties:
                          connectTimeout:
                            description: TCP connection timeout.
                            type: string
                          maxConnectionDuration:
                            description: The maximum duration of a connection.
                            type: string
                          maxConnections:
                            description: Maximum number of HTTP1 /TCP connections
                              to a destination host.
                            format: int32
                            type: integer
                          tcpKeepalive:
                            description: If set then set SO_KEEPALIVE on the socket
                              to enable TCP Keepalives.
                            properties:
                              interval:
                                description: The time duration between keep-alive
                                  probes.
                                type: string
                              probes:
                                type: integer
                              time:
                                type: string
                            type: object
                        type: object
                    type: object
                  loadBalancer:
                    description: Settings controlling the load balancer algorithms.
                    oneOf:
                    - not:
                        anyOf:
                        - required:
                          - simple
                        - properties:
                            consistentHash:
                              allOf:
                              - oneOf:
                                - not:
                                    anyOf:
                                    - required:
                                      - httpHeaderName
                                    - required:
                                      - httpCookie
                                    - required:
                                      - useSourceIp
                                    - required:
                                      - httpQueryParameterName
                                - required:
                                  - httpHeaderName
                                - required:
                                  - httpCookie
                                - required:
                                  - useSourceIp
                                - required:
                                  - httpQueryParameterName
                              - oneOf:
                                - not:
                                    anyOf:
                                    - required:
                                      - ringHash
                                    - required:
                                      - maglev
                                - required:
                                  - ringHash
                                - required:
                                  - maglev
                              properties:
                                minimumRingSize: {}
                          required:
                          - consistentHash
                    - required:
                      - simple
                    - properties:
                        consistentHash:
                          allOf:
                          - oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - httpHeaderName
                                - required:
                                  - httpCookie
                                - required:
                                  - useSourceIp
                                - required:
                                  - httpQueryParameterName
                            - required:
                              - httpHeaderName
                            - required:
                              - httpCookie
                            - required:
                              - useSourceIp
                            - required:
                              - httpQueryParameterName
                          - oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - ringHash
                                - required:
                                  - maglev
                            - required:
                              - ringHash
                            - required:
                              - maglev
                          properties:
                            minimumRingSize: {}
                      required:
                      - consistentHash
                    properties:
                      consistentHash:
                        properties:
                          httpCookie:
                            description: Hash based on HTTP cookie.
                            properties:
                              name:
                                description: Name of the cookie.
                                type: string
                              path:
                                description: Path to set for the cookie.
                                type: string
                              ttl:
                                description: Lifetime of the cookie.
                                type: string
                            type: object
                          httpHeaderName:
                            description: Hash based on a specific HTTP header.
                            type: string
                          httpQueryParameterName:
                            description: Hash based on a specific HTTP query parameter.
                            type: string
                          maglev:
                            description: The Maglev load balancer implements consistent
                              hashing to backend hosts.
                            properties:
                              tableSize:
                                description: The table size for Maglev hashing.
                                type: integer
                            type: object
                          minimumRingSize:
                            description: Deprecated.
                            type: integer
                          ringHash:
                            description: The ring/modulo hash load balancer implements
                              consistent hashing to backend hosts.
                            properties:
                              minimumRingSize:
                                type: integer
                            type: object
                          useSourceIp:
                            description: Hash based on the source IP address.
                            type: boolean
                        type: object
                      localityLbSetting:
                        properties:
                          distribute:
                            description: 'Optional: only one of distribute, failover
                              or failoverPriority can be set.'
                            items:
                              properties:
                                from:
                                  description: Originating locality, '/' separated,
                                    e.g.
                                  type: string
                                to:
                                  additionalProperties:
                                    type: integer
                                  description: Map of upstream localities to traffic
                                    distribution weights.
                                  type: object
                              type: object
                            type: array
                          enabled:
                            description: enable locality load balancing, this is DestinationRule-level
                              and will override mesh wide settings in entirety.
                            nullable: true
                            type: boolean
                          failover:
                            description: 'Optional: only one of distribute, failover
                              or failoverPriority can be set.'
                            items:
                              properties:
                                from:
                                  description: Originating region.
                                  type: string
                                to:
                                  type: string
                              type: object
                            type: array
                          failoverPriority:
                            description: failoverPriority is an ordered list of labels
                              used to sort endpoints to do priority based load balancing.
                            items:
                              type: string
                            type: array
                        type: object
                      simple:
                        enum:
                        - UNSPECIFIED
                        - LEAST_CONN
                        - RANDOM
                        - PASSTHROUGH
                        - ROUND_ROBIN
                        - LEAST_REQUEST
                        type: string
                      warmupDurationSecs:
                        description: Represents the warmup duration of Service.
                        type: string
                    type: object
                  outlierDetection:
                    properties:
                      baseEjectionTime:
                        description: Minimum ejection duration.
                        type: string
                      consecutive5xxErrors:
                        description: Number of 5xx errors before a host is ejected
                          from the connection pool.
                        nullable: true
                        type: integer
                      consecutiveErrors:
                        format: int32
                        type: integer
                      consecutiveGatewayErrors:
                        description: Number of gateway errors before a host is ejected
                          from the connection pool.
                        nullable: true
                        type: integer
                      consecutiveLocalOriginFailures:
                        nullable: true
                        type: integer
                      interval:
                        description: Time interval between ejection sweep analysis.
                        type: string
                      maxEjectionPercent:
                        format: int32
                        type: integer
                      minHealthPercent:
                        format: int32
                        type: integer
                      splitExternalLocalOriginErrors:
                        description: Determines whether to distinguish local origin
                          failures from external errors.
                        type: boolean
                    type: object
                  portLevelSettings:
                    description: Traffic policies specific to individual ports.
                    items:
                      properties:
                        connectionPool:
                          properties:
                            http:
                              description: HTTP connection pool settings.
                              properties:
                                h2UpgradePolicy:
                                  description: Specify if http1.1 connection should
                                    be upgraded to http2 for the associated destination.
                                  enum:
                                  - DEFAULT
                                  - DO_NOT_UPGRADE
                                  - UPGRADE
                                  type: string
                                http1MaxPendingRequests:
                                  format: int32
                                  type: integer
                                http2MaxRequests:
                                  description: Maximum number of active requests to
                                    a destination.
                                  format: int32
                                  type: integer
                                idleTimeout:
                                  description: The idle timeout for upstream connection
                                    pool connections.
                                  type: string
                                maxRequestsPerConnection:
                                  description: Maximum number of requests per connection
                                    to a backend.
                                  format: int32
                                  type: integer
                                maxRetries:
                                  format: int32
                                  type: integer
                                useClientProtocol:
                                  description: If set to true, client protocol will
                                    be preserved while initiating connection to backend.
                                  type: boolean
                              type: object
                            tcp:
                              description: Settings common to both HTTP and TCP upstream
                                connections.
                              properties:
                                connectTimeout:
                                  description: TCP connection timeout.
                                  type: string
                                maxConnectionDuration:
                                  description: The maximum duration of a connection.
                                  type: string
                                maxConnections:
                                  description: Maximum number of HTTP1 /TCP connections
                                    to a destination host.
                                  format: int32
                                  type: integer
                                tcpKeepalive:
                                  description: If set then set SO_KEEPALIVE on the
                                    socket to enable TCP Keepalives.
                                  properties:
                                    interval:
                                      description: The time duration between keep-alive
                                        probes.
                                      type: string
                                    probes:
                                      type: integer
                                    time:
                                      type: string
                                  type: object
                              type: object
                          type: object
                        loadBalancer:
                          description: Settings controlling the load balancer algorithms.
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - simple
                              - properties:
                                  consistentHash:
                                    allOf:
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - httpHeaderName
                                          - required:
                                            - httpCookie
                                          - required:
                                            - useSourceIp
                                          - required:
                                            - httpQueryParameterName
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                    - oneOf:
                                      - not:
                                          anyOf:
                                          - required:
                                            - ringHash
                                          - required:
                                            - maglev
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                    properties:
                                      minimumRingSize: {}
                                required:
                                - consistentHash
                          - required:
                            - simple
                          - properties:
                              consistentHash:
                                allOf:
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - httpHeaderName
                                      - required:
                                        - httpCookie
                                      - required:
                                        - useSourceIp
                                      - required:
                                        - httpQueryParameterName
                                  - required:
                                    - httpHeaderName
                                  - required:
                                    - httpCookie
                                  - required:
                                    - useSourceIp
                                  - required:
                                    - httpQueryParameterName
                                - oneOf:
                                  - not:
                                      anyOf:
                                      - required:
                                        - ringHash
                                      - required:
                                        - maglev
                                  - required:
                                    - ringHash
                                  - required:
                                    - maglev
                                properties:
                                  minimumRingSize: {}
                            required:
                            - consistentHash
                          properties:
                            consistentHash:
                              properties:
                                httpCookie:
                                  description: Hash based on HTTP cookie.
                                  properties:
                                    name:
                                      description: Name of the cookie.
                                      type: string
                                    path:
                                      description: Path to set for the cookie.
                                      type: string
                                    ttl:
                                      description: Lifetime of the cookie.
                                      type: string
                                  type: object
                                httpHeaderName:
                                  description: Hash based on a specific HTTP header.
                                  type: string
                                httpQueryParameterName:
                                  description: Hash based on a specific HTTP query
                                    parameter.
                                  type: string
                                maglev:
                                  description: The Maglev load balancer implements
                                    consistent hashing to backend hosts.
                                  properties:
                                    tableSize:
                                      description: The table size for Maglev hashing.
                                      type: integer
                                  type: object
                                minimumRingSize:
                                  description: Deprecated.
                                  type: integer
                                ringHash:
                                  description: The ring/modulo hash load balancer
                                    implements consistent hashing to backend hosts.
                                  properties:
                                    minimumRingSize:
                                      type: integer
                                  type: object
                                useSourceIp:
                                  description: Hash based on the source IP address.
                                  type: boolean
                              type: object
                            localityLbSetting:
                              properties:
                                distribute:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating locality, '/' separated,
                                          e.g.
                                        type: string
                                      to:
                                        additionalProperties:
                                          type: integer
                                        description: Map of upstream localities to
                                          traffic distribution weights.
                                        type: object
                                    type: object
                                  type: array
                                enabled:
                                  description: enable locality load balancing, this
                                    is DestinationRule-level and will override mesh
                                    wide settings in entirety.
                                  nullable: true
                                  type: boolean
                                failover:
                                  description: 'Optional: only one of distribute,
                                    failover or failoverPriority can be set.'
                                  items:
                                    properties:
                                      from:
                                        description: Originating region.
                                        type: string
                                      to:
                                        type: string
                                    type: object
                                  type: array
                                failoverPriority:
                                  description: failoverPriority is an ordered list
                                    of labels used to sort endpoints to do priority
                                    based load balancing.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            simple:
                              enum:
                              - UNSPECIFIED
                              - LEAST_CONN
                              - RANDOM
                              - PASSTHROUGH
                              - ROUND_ROBIN
                              - LEAST_REQUEST
                              type: string
                            warmupDurationSecs:
                              description: Represents the warmup duration of Service.
                              type: string
                          type: object
                        outlierDetection:
                          properties:
                            baseEjectionTime:
                              description: Minimum ejection duration.
                              type: string
                            consecutive5xxErrors:
                              description: Number of 5xx errors before a host is ejected
                                from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveErrors:
                              format: int32
                              type: integer
                            consecutiveGatewayErrors:
                              description: Number of gateway errors before a host
                                is ejected from the connection pool.
                              nullable: true
                              type: integer
                            consecutiveLocalOriginFailures:
                              nullable: true
                              type: integer
                            interval:
                              description: Time interval between ejection sweep analysis.
                              type: string
                            maxEjectionPercent:
                              format: int32
                              type: integer
                            minHealthPercent:
                              format: int32
                              type: integer
                            splitExternalLocalOriginErrors:
                              description: Determines whether to distinguish local
                                origin failures from external errors.
                              type: boolean
                          type: object
                        port:
                          properties:
                            number:
                              type: integer
                          type: object
                        tls:
                          description: TLS related settings for connections to the
                            upstream service.
                          properties:
                            caCertificates:
                              type: string
                            clientCertificate:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            credentialName:
                              type: string
                            insecureSkipVerify:
                              nullable: true
                              type: boolean
                            mode:
                              enum:
                              - DISABLE
                              - SIMPLE
                              - MUTUAL
                              - ISTIO_MUTUAL
                              type: string
                            privateKey:
                              description: REQUIRED if mode is `MUTUAL`.
                              type: string
                            sni:
                              description: SNI string to present to the server during
                                TLS handshake.
                              type: string
                            subjectAltNames:
                              items:
                                type: string
                              type: array
                          type: object
                      type: object
                    type: array
                  tls:
                    description: TLS related settings for connections to the upstream
                      service.
                    properties:
                      caCertificates:
                        type: string
                      clientCertificate:
                        description: REQUIRED if mode is `MUTUAL`.
                        type: string
                      credentialName:
                        type: string
                      insecureSkipVerify:
                        nullable: true
                        type: boolean
                      mode:
                        enum:
                        - DISABLE
                        - SIMPLE
                        - MUTUAL
                        - ISTIO_MUTUAL
                        type: string
                      privateKey:
                        description: REQUIRED if mode is `MUTUAL`.
                        type: string
                      sni:
                        description: SNI string to present to the server during TLS
                          handshake.
                        type: string
                      subjectAltNames:
                        items:
                          type: string
                        type: array
                    type: object
                  tunnel:
                    properties:
                      protocol:
                        description: Specifies which protocol to use for tunneling
                          the downstream connection.
                        type: string
                      targetHost:
                        description: Specifies a host to which the downstream connection
                          is tunneled.
                        type: string
                      targetPort:
                        description: Specifies a port to which the downstream connection
                          is tunneled.
                        type: integer
                    type: object
                type: object
              workloadSelector:
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: domainmappings.serving.knative.dev
spec:
  group: serving.knative.dev
  names:
    categories:
    - all
    - knative
    - serving
    kind: DomainMapping
    plural: domainmappings
    shortNames:
    - dm
    singular: domainmapping
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: DomainMapping is a mapping from a custom hostname to an Addressable.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'Spec is the desired state of the DomainMapping. More info:
              https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              ref:
                description: "Ref specifies the target of the Domain Mapping. \n The
                  object identified by the Ref must be an Addressable with a URL of
                  the form `{name}.{namespace}.{domain}` where `{domain}` is the cluster
                  domain, and `{name}` and `{namespace}` are the name and namespace
                  of a Kubernetes Service. \n This contract is satisfied by Knative
                  types such as Knative Services and Knative Routes, and by Kubernetes
                  Services."
                properties:
                  address:
                    description: Address points to a specific Address Name.
                    type: string
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  group:
                    description: 'Group of the API, without the version of the group.
                      This can be used as an alternative to the APIVersion, and then
                      resolved using ResolveGroup. Note: This API is EXPERIMENTAL
                      and might break anytime. For more details: https://github.com/knative/eventing/issues/5086'
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                      This is optional field, it gets defaulted to the object holding
                      it if left out.'
                    type: string
                required:
                - kind
                - name
                type: object
              tls:
                description: TLS allows the DomainMapping to terminate TLS traffic
                  with an existing secret.
                properties:
                  secretName:
                    description: SecretName is the name of the existing secret used
                      to terminate TLS traffic.
                    type: string
                required:
                - secretName
                type: object
            required:
            - ref
            type: object
          status:
            description: 'Status is the current state of the DomainMapping. More info:
              https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              address:
                description: Address holds the information needed for a DomainMapping
                  to be the target of an event.
                properties:
                  CACerts:
                    description: CACerts is the Certification Authority (CA) certificates
                      in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
                    type: string
                  name:
                    description: Name is the name of the address.
                    type: string
                  url:
                    type: string
                type: object
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              url:
                description: URL is the URL of this DomainMapping.
                type: string
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: DomainMapping is a mapping from a custom hostname to an Addressable.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'Spec is the desired state of the DomainMapping. More info:
              https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              ref:
                description: "Ref specifies the target of the Domain Mapping. \n The
                  object identified by the Ref must be an Addressable with a URL of
                  the form `{name}.{namespace}.{domain}` where `{domain}` is the cluster
                  domain, and `{name}` and `{namespace}` are the name and namespace
                  of a Kubernetes Service. \n This contract is satisfied by Knative
                  types such as Knative Services and Knative Routes, and by Kubernetes
                  Services."
                properties:
                  address:
                    description: Address points to a specific Address Name.
                    type: string
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  group:
                    description: 'Group of the API, without the version of the group.
                      This can be used as an alternative to the APIVersion, and then
                      resolved using ResolveGroup. Note: This API is EXPERIMENTAL
                      and might break anytime. For more details: https://github.com/knative/eventing/issues/5086'
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                      This is optional field, it gets defaulted to the object holding
                      it if left out.'
                    type: string
                required:
                - kind
                - name
                type: object
              tls:
                description: TLS allows the DomainMapping to terminate TLS traffic
                  with an existing secret.
                properties:
                  secretName:
                    description: SecretName is the name of the existing secret used
                      to terminate TLS traffic.
                    type: string
                required:
                - secretName
                type: object
            required:
            - ref
            type: object
          status:
            description: 'Status is the current state of the DomainMapping. More info:
              https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              address:
                description: Address holds the information needed for a DomainMapping
                  to be the target of an event.
                properties:
                  CACerts:
                    description: CACerts is the Certification Authority (CA) certificates
                      in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
                    type: string
                  name:
                    description: Name is the name of the address.
                    type: string
                  url:
                    type: string
                type: object
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              url:
                description: URL is the URL of this DomainMapping.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: envoyfilters.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: EnvoyFilter
    listKind: EnvoyFilterList
    plural: envoyfilters
    singular: envoyfilter
  scope: Namespaced
  versions:
  - name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Customizing Envoy configuration generated by Istio. See
              more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html'
            properties:
              configPatches:
                description: One or more patches with match conditions.
                items:
                  properties:
                    applyTo:
                      enum:
                      - INVALID
                      - LISTENER
                      - FILTER_CHAIN
                      - NETWORK_FILTER
                      - HTTP_FILTER
                      - ROUTE_CONFIGURATION
                      - VIRTUAL_HOST
                      - HTTP_ROUTE
                      - CLUSTER
                      - EXTENSION_CONFIG
                      - BOOTSTRAP
                      - LISTENER_FILTER
                      type: string
                    match:
                      description: Match on listener/route configuration/cluster.
                      oneOf:
                      - not:
                          anyOf:
                          - required:
                            - listener
                          - required:
                            - routeConfiguration
                          - required:
                            - cluster
                      - required:
                        - listener
                      - required:
                        - routeConfiguration
                      - required:
                        - cluster
                      properties:
                        cluster:
                          description: Match on envoy cluster attributes.
                          properties:
                            name:
                              description: The exact name of the cluster to match.
                              type: string
                            portNumber:
                              description: The service port for which this cluster
                                was generated.
                              type: integer
                            service:
                              description: The fully qualified service name for this
                                cluster.
                              type: string
                            subset:
                              description: The subset associated with the service.
                              type: string
                          type: object
                        context:
                          description: The specific config generation context to match
                            on.
                          enum:
                          - ANY
                          - SIDECAR_INBOUND
                          - SIDECAR_OUTBOUND
                          - GATEWAY
                          type: string
                        listener:
                          description: Match on envoy listener attributes.
                          properties:
                            filterChain:
                              description: Match a specific filter chain in a listener.
                              properties:
                                applicationProtocols:
                                  description: Applies only to sidecars.
                                  type: string
                                destinationPort:
                                  description: The destination_port value used by
                                    a filter chain's match condition.
                                  type: integer
                                filter:
                                  description: The name of a specific filter to apply
                                    the patch to.
                                  properties:
                                    name:
                                      description: The filter name to match on.
                                      type: string
                                    subFilter:
                                      properties:
                                        name:
                                          description: The filter name to match on.
                                          type: string
                                      type: object
                                  type: object
                                name:
                                  description: The name assigned to the filter chain.
                                  type: string
                                sni:
                                  description: The SNI value used by a filter chain's
                                    match condition.
                                  type: string
                                transportProtocol:
                                  description: Applies only to `SIDECAR_INBOUND` context.
                                  type: string
                              type: object
                            listenerFilter:
                              description: Match a specific listener filter.
                              type: string
                            name:
                              description: Match a specific listener by its name.
                              type: string
                            portName:
                              type: string
                            portNumber:
                              type: integer
                          type: object
                        proxy:
                          description: Match on properties associated with a proxy.
                          properties:
                            metadata:
                              additionalProperties:
                                type: string
                              type: object
                            proxyVersion:
                              type: string
                          type: object
                        routeConfiguration:
                          description: Match on envoy HTTP route configuration attributes.
                          properties:
                            gateway:
                              type: string
                            name:
                              description: Route configuration name to match on.
                              type: string
                            portName:
                              description: Applicable only for GATEWAY context.
                              type: string
                            portNumber:
                              type: integer
                            vhost:
                              properties:
                                name:
                                  type: string
                                route:
                                  description: Match a specific route within the virtual
                                    host.
                                  properties:
                                    action:
                                      description: Match a route with specific action
                                        type.
                                      enum:
                                      - ANY
                                      - ROUTE
                                      - REDIRECT
                                      - DIRECT_RESPONSE
                                      type: string
                                    name:
                                      type: string
                                  type: object
                              type: object
                          type: object
                      type: object
                    patch:
                      description: The patch to apply along with the operation.
                      properties:
                        filterClass:
                          description: Determines the filter insertion order.
                          enum:
                          - UNSPECIFIED
                          - AUTHN
                          - AUTHZ
                          - STATS
                          type: string
                        operation:
                          description: Determines how the patch should be applied.
                          enum:
                          - INVALID
                          - MERGE
                          - ADD
                          - REMOVE
                          - INSERT_BEFORE
                          - INSERT_AFTER
                          - INSERT_FIRST
                          - REPLACE
                          type: string
                        value:
                          description: The JSON config of the object being patched.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                      type: object
                  type: object
                type: array
              priority:
                description: Priority defines the order in which patch sets are applied
                  within a context.
                format: int32
                type: integer
              workloadSelector:
                properties:
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: eventtypes.eventing.knative.dev
spec:
  group: eventing.knative.dev
  names:
    categories:
    - all
    - knative
    - eventing
    kind: EventType
    plural: eventtypes
    singular: eventtype
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.type
      name: Type
      type: string
    - jsonPath: .spec.source
      name: Source
      type: string
    - jsonPath: .spec.schema
      name: Schema
      type: string
    - jsonPath: .spec.broker
      name: Broker
      type: string
    - jsonPath: .spec.description
      name: Description
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: EventType represents a type of event that can be consumed from
          a Broker.
        properties:
          spec:
            description: Spec defines the desired state of the EventType.
            properties:
              broker:
                type: string
              description:
                description: Description is an optional field used to describe the
                  EventType, in any meaningful way.
                type: string
              schema:
                description: Schema is a URI, it represents the CloudEvents schemaurl
                  extension attribute. It may be a JSON schema, a protobuf schema,
                  etc. It is optional.
                type: string
              schemaData:
                description: SchemaData allows the CloudEvents schema to be stored
                  directly in the EventType. Content is dependent on the encoding.
                  Optional attribute. The contents are not validated or manipulated
                  by the system.
                type: string
              source:
                description: Source is a URI, it represents the CloudEvents source.
                type: string
              type:
                description: Type represents the CloudEvents type. It is authoritative.
                type: string
            type: object
          status:
            description: Status represents the current state of the EventType. This
              data may be out of date.
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: experiments.kubeflow.org
spec:
  group: kubeflow.org
  names:
    categories:
    - all
    - kubeflow
    - katib
    kind: Experiment
    plural: experiments
    singular: experiment
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: Type
      type: string
    - jsonPath: .status.conditions[-1:].status
      name: Status
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        type: object
        x-kubernetes-preserve-unknown-fields: true
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: gateways.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: Gateway
    listKind: GatewayList
    plural: gateways
    shortNames:
    - gw
    singular: gateway
  scope: Namespaced
  versions:
  - name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting edge load balancer. See more details
              at: https://istio.io/docs/reference/config/networking/gateway.html'
            properties:
              selector:
                additionalProperties:
                  type: string
                type: object
              servers:
                description: A list of server specifications.
                items:
                  properties:
                    bind:
                      type: string
                    defaultEndpoint:
                      type: string
                    hosts:
                      description: One or more hosts exposed by this gateway.
                      items:
                        type: string
                      type: array
                    name:
                      description: An optional name of the server, when set must be
                        unique across all servers.
                      type: string
                    port:
                      properties:
                        name:
                          description: Label assigned to the port.
                          type: string
                        number:
                          description: A valid non-negative integer port number.
                          type: integer
                        protocol:
                          description: The protocol exposed on the port.
                          type: string
                        targetPort:
                          type: integer
                      type: object
                    tls:
                      description: Set of TLS related options that govern the server's
                        behavior.
                      properties:
                        caCertificates:
                          description: REQUIRED if mode is `MUTUAL`.
                          type: string
                        cipherSuites:
                          description: 'Optional: If specified, only support the specified
                            cipher list.'
                          items:
                            type: string
                          type: array
                        credentialName:
                          type: string
                        httpsRedirect:
                          type: boolean
                        maxProtocolVersion:
                          description: 'Optional: Maximum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        minProtocolVersion:
                          description: 'Optional: Minimum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        mode:
                          enum:
                          - PASSTHROUGH
                          - SIMPLE
                          - MUTUAL
                          - AUTO_PASSTHROUGH
                          - ISTIO_MUTUAL
                          type: string
                        privateKey:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        serverCertificate:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        subjectAltNames:
                          items:
                            type: string
                          type: array
                        verifyCertificateHash:
                          items:
                            type: string
                          type: array
                        verifyCertificateSpki:
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
                type: array
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting edge load balancer. See more details
              at: https://istio.io/docs/reference/config/networking/gateway.html'
            properties:
              selector:
                additionalProperties:
                  type: string
                type: object
              servers:
                description: A list of server specifications.
                items:
                  properties:
                    bind:
                      type: string
                    defaultEndpoint:
                      type: string
                    hosts:
                      description: One or more hosts exposed by this gateway.
                      items:
                        type: string
                      type: array
                    name:
                      description: An optional name of the server, when set must be
                        unique across all servers.
                      type: string
                    port:
                      properties:
                        name:
                          description: Label assigned to the port.
                          type: string
                        number:
                          description: A valid non-negative integer port number.
                          type: integer
                        protocol:
                          description: The protocol exposed on the port.
                          type: string
                        targetPort:
                          type: integer
                      type: object
                    tls:
                      description: Set of TLS related options that govern the server's
                        behavior.
                      properties:
                        caCertificates:
                          description: REQUIRED if mode is `MUTUAL`.
                          type: string
                        cipherSuites:
                          description: 'Optional: If specified, only support the specified
                            cipher list.'
                          items:
                            type: string
                          type: array
                        credentialName:
                          type: string
                        httpsRedirect:
                          type: boolean
                        maxProtocolVersion:
                          description: 'Optional: Maximum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        minProtocolVersion:
                          description: 'Optional: Minimum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        mode:
                          enum:
                          - PASSTHROUGH
                          - SIMPLE
                          - MUTUAL
                          - AUTO_PASSTHROUGH
                          - ISTIO_MUTUAL
                          type: string
                        privateKey:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        serverCertificate:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        subjectAltNames:
                          items:
                            type: string
                          type: array
                        verifyCertificateHash:
                          items:
                            type: string
                          type: array
                        verifyCertificateSpki:
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
                type: array
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: images.caching.internal.knative.dev
spec:
  group: caching.internal.knative.dev
  names:
    categories:
    - knative-internal
    - caching
    kind: Image
    plural: images
    singular: image
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.image
      name: Image
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Image is a Knative abstraction that encapsulates the interface
          by which Knative components express a desire to have a particular image
          cached.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec holds the desired state of the Image (from the client).
            properties:
              image:
                description: Image is the name of the container image url to cache
                  across the cluster.
                type: string
              imagePullSecrets:
                description: ImagePullSecrets contains the names of the Kubernetes
                  Secrets containing login information used by the Pods which will
                  run this container.
                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
                  x-kubernetes-map-type: atomic
                type: array
              serviceAccountName:
                description: 'ServiceAccountName is the name of the Kubernetes ServiceAccount
                  as which the Pods will run this container.  This is potentially
                  used to authenticate the image pull if the service account has attached
                  pull secrets.  For more information: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account'
                type: string
            required:
            - image
            type: object
          status:
            description: Status communicates the observed state of the Image (from
              the controller).
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.0
  creationTimestamp: null
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: inferencegraphs.serving.kserve.io
spec:
  group: serving.kserve.io
  names:
    kind: InferenceGraph
    listKind: InferenceGraphList
    plural: inferencegraphs
    shortNames:
    - ig
    singular: inferencegraph
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              nodes:
                additionalProperties:
                  properties:
                    routerType:
                      enum:
                      - Sequence
                      - Splitter
                      - Ensemble
                      - Switch
                      type: string
                    steps:
                      items:
                        properties:
                          condition:
                            type: string
                          data:
                            type: string
                          name:
                            type: string
                          nodeName:
                            type: string
                          serviceName:
                            type: string
                          serviceUrl:
                            type: string
                          weight:
                            format: int64
                            type: integer
                        type: object
                      type: array
                  required:
                  - routerType
                  type: object
                type: object
            required:
            - nodes
            type: object
          status:
            properties:
              annotations:
                additionalProperties:
                  type: string
                type: object
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    severity:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                format: int64
                type: integer
              url:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/serving-cert
    controller-gen.kubebuilder.io/version: v0.4.0
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: inferenceservices.serving.kserve.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: Cg==
        service:
          name: kserve-webhook-server-service
          namespace: kubeflow
          path: /convert
      conversionReviewVersions:
      - v1beta1
  group: serving.kserve.io
  names:
    kind: InferenceService
    listKind: InferenceServiceList
    plural: inferenceservices
    shortNames:
    - isvc
    singular: inferenceservice
  preserveUnknownFields: false
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.components.predictor.traffic[?(@.tag=='prev')].percent
      name: Prev
      type: integer
    - jsonPath: .status.components.predictor.traffic[?(@.latestRevision==true)].percent
      name: Latest
      type: integer
    - jsonPath: .status.components.predictor.traffic[?(@.tag=='prev')].revisionName
      name: PrevRolledoutRevision
      type: string
    - jsonPath: .status.components.predictor.traffic[?(@.latestRevision==true)].revisionName
      name: LatestReadyRevision
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              explainer:
                properties:
                  activeDeadlineSeconds:
                    format: int64
                    type: integer
                  affinity:
                    properties:
                      nodeAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                preference:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            properties:
                              nodeSelectorTerms:
                                items:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                type: array
                            required:
                            - nodeSelectorTerms
                            type: object
                        type: object
                      podAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                      podAntiAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                    type: object
                  aix:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      config:
                        additionalProperties:
                          type: string
                        type: object
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      type:
                        type: string
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  alibi:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      config:
                        additionalProperties:
                          type: string
                        type: object
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      type:
                        type: string
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  art:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      config:
                        additionalProperties:
                          type: string
                        type: object
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      type:
                        type: string
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  automountServiceAccountToken:
                    type: boolean
                  batcher:
                    properties:
                      maxBatchSize:
                        type: integer
                      maxLatency:
                        type: integer
                      timeout:
                        type: integer
                    type: object
                  canaryTrafficPercent:
                    format: int64
                    type: integer
                  containerConcurrency:
                    format: int64
                    type: integer
                  containers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                          type: array
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        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
                              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
                              type: object
                          type: object
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                drop:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  dnsConfig:
                    properties:
                      nameservers:
                        items:
                          type: string
                        type: array
                      options:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          type: object
                        type: array
                      searches:
                        items:
                          type: string
                        type: array
                    type: object
                  dnsPolicy:
                    type: string
                  enableServiceLinks:
                    type: boolean
                  hostAliases:
                    items:
                      properties:
                        hostnames:
                          items:
                            type: string
                          type: array
                        ip:
                          type: string
                      type: object
                    type: array
                  hostIPC:
                    type: boolean
                  hostNetwork:
                    type: boolean
                  hostPID:
                    type: boolean
                  hostname:
                    type: string
                  imagePullSecrets:
                    items:
                      properties:
                        name:
                          type: string
                      type: object
                    type: array
                  initContainers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                          type: array
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        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
                              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
                              type: object
                          type: object
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                drop:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  logger:
                    properties:
                      mode:
                        enum:
                        - all
                        - request
                        - response
                        type: string
                      url:
                        type: string
                    type: object
                  maxReplicas:
                    type: integer
                  minReplicas:
                    type: integer
                  nodeName:
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  os:
                    properties:
                      name:
                        type: string
                    type: object
                  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
                    type: object
                  preemptionPolicy:
                    type: string
                  priority:
                    format: int32
                    type: integer
                  priorityClassName:
                    type: string
                  readinessGates:
                    items:
                      properties:
                        conditionType:
                          type: string
                      required:
                      - conditionType
                      type: object
                    type: array
                  restartPolicy:
                    type: string
                  runtimeClassName:
                    type: string
                  scaleMetric:
                    enum:
                    - cpu
                    - memory
                    - concurrency
                    - rps
                    type: string
                  scaleTarget:
                    type: integer
                  schedulerName:
                    type: string
                  securityContext:
                    properties:
                      fsGroup:
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        type: string
                      runAsGroup:
                        format: int64
                        type: integer
                      runAsNonRoot:
                        type: boolean
                      runAsUser:
                        format: int64
                        type: integer
                      seLinuxOptions:
                        properties:
                          level:
                            type: string
                          role:
                            type: string
                          type:
                            type: string
                          user:
                            type: string
                        type: object
                      seccompProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        items:
                          format: int64
                          type: integer
                        type: array
                      sysctls:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                      windowsOptions:
                        properties:
                          gmsaCredentialSpec:
                            type: string
                          gmsaCredentialSpecName:
                            type: string
                          hostProcess:
                            type: boolean
                          runAsUserName:
                            type: string
                        type: object
                    type: object
                  serviceAccount:
                    type: string
                  serviceAccountName:
                    type: string
                  setHostnameAsFQDN:
                    type: boolean
                  shareProcessNamespace:
                    type: boolean
                  subdomain:
                    type: string
                  terminationGracePeriodSeconds:
                    format: int64
                    type: integer
                  timeout:
                    format: int64
                    type: integer
                  tolerations:
                    items:
                      properties:
                        effect:
                          type: string
                        key:
                          type: string
                        operator:
                          type: string
                        tolerationSeconds:
                          format: int64
                          type: integer
                        value:
                          type: string
                      type: object
                    type: array
                  topologySpreadConstraints:
                    items:
                      properties:
                        labelSelector:
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        maxSkew:
                          format: int32
                          type: integer
                        topologyKey:
                          type: string
                        whenUnsatisfiable:
                          type: string
                      required:
                      - maxSkew
                      - topologyKey
                      - whenUnsatisfiable
                      type: object
                    type: array
                    x-kubernetes-list-map-keys:
                    - topologyKey
                    - whenUnsatisfiable
                    x-kubernetes-list-type: map
                  volumes:
                    items:
                      properties:
                        awsElasticBlockStore:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          properties:
                            cachingMode:
                              type: string
                            diskName:
                              type: string
                            diskURI:
                              type: string
                            fsType:
                              type: string
                            kind:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          properties:
                            readOnly:
                              type: boolean
                            secretName:
                              type: string
                            shareName:
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          properties:
                            monitors:
                              items:
                                type: string
                              type: array
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            secretFile:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            user:
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                            name:
                              type: string
                            optional:
                              type: boolean
                          type: object
                        csi:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            nodePublishSecretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            readOnly:
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                required:
                                - path
                                type: object
                              type: array
                          type: object
                        emptyDir:
                          properties:
                            medium:
                              type: string
                            sizeLimit:
                              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
                          type: object
                        ephemeral:
                          properties:
                            volumeClaimTemplate:
                              properties:
                                metadata:
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    dataSourceRef:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    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
                                          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
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    storageClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          properties:
                            fsType:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            targetWWNs:
                              items:
                                type: string
                              type: array
                            wwids:
                              items:
                                type: string
                              type: array
                          type: object
                        flexVolume:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              type: object
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                          required:
                          - driver
                          type: object
                        flocker:
                          properties:
                            datasetName:
                              type: string
                            datasetUUID:
                              type: string
                          type: object
                        gcePersistentDisk:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            pdName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          properties:
                            directory:
                              type: string
                            repository:
                              type: string
                            revision:
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          properties:
                            endpoints:
                              type: string
                            path:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          properties:
                            path:
                              type: string
                            type:
                              type: string
                          required:
                          - path
                          type: object
                        iscsi:
                          properties:
                            chapAuthDiscovery:
                              type: boolean
                            chapAuthSession:
                              type: boolean
                            fsType:
                              type: string
                            initiatorName:
                              type: string
                            iqn:
                              type: string
                            iscsiInterface:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            portals:
                              items:
                                type: string
                              type: array
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            targetPortal:
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          type: string
                        nfs:
                          properties:
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            server:
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          properties:
                            claimName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          properties:
                            fsType:
                              type: string
                            pdID:
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            sources:
                              items:
                                properties:
                                  configMap:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  downwardAPI:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  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
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                          required:
                                          - path
                                          type: object
                                        type: array
                                    type: object
                                  secret:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  serviceAccountToken:
                                    properties:
                                      audience:
                                        type: string
                                      expirationSeconds:
                                        format: int64
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                          type: object
                        quobyte:
                          properties:
                            group:
                              type: string
                            readOnly:
                              type: boolean
                            registry:
                              type: string
                            tenant:
                              type: string
                            user:
                              type: string
                            volume:
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          properties:
                            fsType:
                              type: string
                            image:
                              type: string
                            keyring:
                              type: string
                            monitors:
                              items:
                                type: string
                              type: array
                            pool:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            user:
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          properties:
                            fsType:
                              type: string
                            gateway:
                              type: string
                            protectionDomain:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            sslEnabled:
                              type: boolean
                            storageMode:
                              type: string
                            storagePool:
                              type: string
                            system:
                              type: string
                            volumeName:
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                            optional:
                              type: boolean
                            secretName:
                              type: string
                          type: object
                        storageos:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            volumeName:
                              type: string
                            volumeNamespace:
                              type: string
                          type: object
                        vsphereVolume:
                          properties:
                            fsType:
                              type: string
                            storagePolicyID:
                              type: string
                            storagePolicyName:
                              type: string
                            volumePath:
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              predictor:
                properties:
                  activeDeadlineSeconds:
                    format: int64
                    type: integer
                  affinity:
                    properties:
                      nodeAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                preference:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            properties:
                              nodeSelectorTerms:
                                items:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                type: array
                            required:
                            - nodeSelectorTerms
                            type: object
                        type: object
                      podAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                      podAntiAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                    type: object
                  automountServiceAccountToken:
                    type: boolean
                  batcher:
                    properties:
                      maxBatchSize:
                        type: integer
                      maxLatency:
                        type: integer
                      timeout:
                        type: integer
                    type: object
                  canaryTrafficPercent:
                    format: int64
                    type: integer
                  containerConcurrency:
                    format: int64
                    type: integer
                  containers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                          type: array
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        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
                              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
                              type: object
                          type: object
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                drop:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  dnsConfig:
                    properties:
                      nameservers:
                        items:
                          type: string
                        type: array
                      options:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          type: object
                        type: array
                      searches:
                        items:
                          type: string
                        type: array
                    type: object
                  dnsPolicy:
                    type: string
                  enableServiceLinks:
                    type: boolean
                  hostAliases:
                    items:
                      properties:
                        hostnames:
                          items:
                            type: string
                          type: array
                        ip:
                          type: string
                      type: object
                    type: array
                  hostIPC:
                    type: boolean
                  hostNetwork:
                    type: boolean
                  hostPID:
                    type: boolean
                  hostname:
                    type: string
                  imagePullSecrets:
                    items:
                      properties:
                        name:
                          type: string
                      type: object
                    type: array
                  initContainers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                          type: array
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        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
                              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
                              type: object
                          type: object
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                drop:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  lightgbm:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  logger:
                    properties:
                      mode:
                        enum:
                        - all
                        - request
                        - response
                        type: string
                      url:
                        type: string
                    type: object
                  maxReplicas:
                    type: integer
                  minReplicas:
                    type: integer
                  model:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      modelFormat:
                        properties:
                          name:
                            type: string
                          version:
                            type: string
                        required:
                        - name
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtime:
                        type: string
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  nodeName:
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  onnx:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  os:
                    properties:
                      name:
                        type: string
                    type: object
                  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
                    type: object
                  paddle:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  pmml:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  preemptionPolicy:
                    type: string
                  priority:
                    format: int32
                    type: integer
                  priorityClassName:
                    type: string
                  pytorch:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  readinessGates:
                    items:
                      properties:
                        conditionType:
                          type: string
                      required:
                      - conditionType
                      type: object
                    type: array
                  restartPolicy:
                    type: string
                  runtimeClassName:
                    type: string
                  scaleMetric:
                    enum:
                    - cpu
                    - memory
                    - concurrency
                    - rps
                    type: string
                  scaleTarget:
                    type: integer
                  schedulerName:
                    type: string
                  securityContext:
                    properties:
                      fsGroup:
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        type: string
                      runAsGroup:
                        format: int64
                        type: integer
                      runAsNonRoot:
                        type: boolean
                      runAsUser:
                        format: int64
                        type: integer
                      seLinuxOptions:
                        properties:
                          level:
                            type: string
                          role:
                            type: string
                          type:
                            type: string
                          user:
                            type: string
                        type: object
                      seccompProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        items:
                          format: int64
                          type: integer
                        type: array
                      sysctls:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                      windowsOptions:
                        properties:
                          gmsaCredentialSpec:
                            type: string
                          gmsaCredentialSpecName:
                            type: string
                          hostProcess:
                            type: boolean
                          runAsUserName:
                            type: string
                        type: object
                    type: object
                  serviceAccount:
                    type: string
                  serviceAccountName:
                    type: string
                  setHostnameAsFQDN:
                    type: boolean
                  shareProcessNamespace:
                    type: boolean
                  sklearn:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  subdomain:
                    type: string
                  tensorflow:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  terminationGracePeriodSeconds:
                    format: int64
                    type: integer
                  timeout:
                    format: int64
                    type: integer
                  tolerations:
                    items:
                      properties:
                        effect:
                          type: string
                        key:
                          type: string
                        operator:
                          type: string
                        tolerationSeconds:
                          format: int64
                          type: integer
                        value:
                          type: string
                      type: object
                    type: array
                  topologySpreadConstraints:
                    items:
                      properties:
                        labelSelector:
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        maxSkew:
                          format: int32
                          type: integer
                        topologyKey:
                          type: string
                        whenUnsatisfiable:
                          type: string
                      required:
                      - maxSkew
                      - topologyKey
                      - whenUnsatisfiable
                      type: object
                    type: array
                    x-kubernetes-list-map-keys:
                    - topologyKey
                    - whenUnsatisfiable
                    x-kubernetes-list-type: map
                  triton:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                  volumes:
                    items:
                      properties:
                        awsElasticBlockStore:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          properties:
                            cachingMode:
                              type: string
                            diskName:
                              type: string
                            diskURI:
                              type: string
                            fsType:
                              type: string
                            kind:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          properties:
                            readOnly:
                              type: boolean
                            secretName:
                              type: string
                            shareName:
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          properties:
                            monitors:
                              items:
                                type: string
                              type: array
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            secretFile:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            user:
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                            name:
                              type: string
                            optional:
                              type: boolean
                          type: object
                        csi:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            nodePublishSecretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            readOnly:
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                required:
                                - path
                                type: object
                              type: array
                          type: object
                        emptyDir:
                          properties:
                            medium:
                              type: string
                            sizeLimit:
                              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
                          type: object
                        ephemeral:
                          properties:
                            volumeClaimTemplate:
                              properties:
                                metadata:
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    dataSourceRef:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    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
                                          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
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    storageClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          properties:
                            fsType:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            targetWWNs:
                              items:
                                type: string
                              type: array
                            wwids:
                              items:
                                type: string
                              type: array
                          type: object
                        flexVolume:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              type: object
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                          required:
                          - driver
                          type: object
                        flocker:
                          properties:
                            datasetName:
                              type: string
                            datasetUUID:
                              type: string
                          type: object
                        gcePersistentDisk:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            pdName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          properties:
                            directory:
                              type: string
                            repository:
                              type: string
                            revision:
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          properties:
                            endpoints:
                              type: string
                            path:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          properties:
                            path:
                              type: string
                            type:
                              type: string
                          required:
                          - path
                          type: object
                        iscsi:
                          properties:
                            chapAuthDiscovery:
                              type: boolean
                            chapAuthSession:
                              type: boolean
                            fsType:
                              type: string
                            initiatorName:
                              type: string
                            iqn:
                              type: string
                            iscsiInterface:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            portals:
                              items:
                                type: string
                              type: array
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            targetPortal:
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          type: string
                        nfs:
                          properties:
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            server:
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          properties:
                            claimName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          properties:
                            fsType:
                              type: string
                            pdID:
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            sources:
                              items:
                                properties:
                                  configMap:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  downwardAPI:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  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
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                          required:
                                          - path
                                          type: object
                                        type: array
                                    type: object
                                  secret:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  serviceAccountToken:
                                    properties:
                                      audience:
                                        type: string
                                      expirationSeconds:
                                        format: int64
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                          type: object
                        quobyte:
                          properties:
                            group:
                              type: string
                            readOnly:
                              type: boolean
                            registry:
                              type: string
                            tenant:
                              type: string
                            user:
                              type: string
                            volume:
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          properties:
                            fsType:
                              type: string
                            image:
                              type: string
                            keyring:
                              type: string
                            monitors:
                              items:
                                type: string
                              type: array
                            pool:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            user:
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          properties:
                            fsType:
                              type: string
                            gateway:
                              type: string
                            protectionDomain:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            sslEnabled:
                              type: boolean
                            storageMode:
                              type: string
                            storagePool:
                              type: string
                            system:
                              type: string
                            volumeName:
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                            optional:
                              type: boolean
                            secretName:
                              type: string
                          type: object
                        storageos:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            volumeName:
                              type: string
                            volumeNamespace:
                              type: string
                          type: object
                        vsphereVolume:
                          properties:
                            fsType:
                              type: string
                            storagePolicyID:
                              type: string
                            storagePolicyName:
                              type: string
                            volumePath:
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  xgboost:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                      command:
                        items:
                          type: string
                        type: array
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      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
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                          type: object
                        type: array
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      protocolVersion:
                        type: string
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      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
                            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
                            type: object
                        type: object
                      runtimeVersion:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                              drop:
                                items:
                                  type: string
                                type: array
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      storage:
                        properties:
                          key:
                            type: string
                          parameters:
                            additionalProperties:
                              type: string
                            type: object
                          path:
                            type: string
                          schemaPath:
                            type: string
                        type: object
                      storageUri:
                        type: string
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                      workingDir:
                        type: string
                    type: object
                type: object
              transformer:
                properties:
                  activeDeadlineSeconds:
                    format: int64
                    type: integer
                  affinity:
                    properties:
                      nodeAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                preference:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            properties:
                              nodeSelectorTerms:
                                items:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                type: array
                            required:
                            - nodeSelectorTerms
                            type: object
                        type: object
                      podAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                      podAntiAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                    type: object
                  automountServiceAccountToken:
                    type: boolean
                  batcher:
                    properties:
                      maxBatchSize:
                        type: integer
                      maxLatency:
                        type: integer
                      timeout:
                        type: integer
                    type: object
                  canaryTrafficPercent:
                    format: int64
                    type: integer
                  containerConcurrency:
                    format: int64
                    type: integer
                  containers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                          type: array
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        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
                              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
                              type: object
                          type: object
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                drop:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  dnsConfig:
                    properties:
                      nameservers:
                        items:
                          type: string
                        type: array
                      options:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          type: object
                        type: array
                      searches:
                        items:
                          type: string
                        type: array
                    type: object
                  dnsPolicy:
                    type: string
                  enableServiceLinks:
                    type: boolean
                  hostAliases:
                    items:
                      properties:
                        hostnames:
                          items:
                            type: string
                          type: array
                        ip:
                          type: string
                      type: object
                    type: array
                  hostIPC:
                    type: boolean
                  hostNetwork:
                    type: boolean
                  hostPID:
                    type: boolean
                  hostname:
                    type: string
                  imagePullSecrets:
                    items:
                      properties:
                        name:
                          type: string
                      type: object
                    type: array
                  initContainers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                            type: object
                          type: array
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        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
                              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
                              type: object
                          type: object
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                drop:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  logger:
                    properties:
                      mode:
                        enum:
                        - all
                        - request
                        - response
                        type: string
                      url:
                        type: string
                    type: object
                  maxReplicas:
                    type: integer
                  minReplicas:
                    type: integer
                  nodeName:
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  os:
                    properties:
                      name:
                        type: string
                    type: object
                  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
                    type: object
                  preemptionPolicy:
                    type: string
                  priority:
                    format: int32
                    type: integer
                  priorityClassName:
                    type: string
                  readinessGates:
                    items:
                      properties:
                        conditionType:
                          type: string
                      required:
                      - conditionType
                      type: object
                    type: array
                  restartPolicy:
                    type: string
                  runtimeClassName:
                    type: string
                  scaleMetric:
                    enum:
                    - cpu
                    - memory
                    - concurrency
                    - rps
                    type: string
                  scaleTarget:
                    type: integer
                  schedulerName:
                    type: string
                  securityContext:
                    properties:
                      fsGroup:
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        type: string
                      runAsGroup:
                        format: int64
                        type: integer
                      runAsNonRoot:
                        type: boolean
                      runAsUser:
                        format: int64
                        type: integer
                      seLinuxOptions:
                        properties:
                          level:
                            type: string
                          role:
                            type: string
                          type:
                            type: string
                          user:
                            type: string
                        type: object
                      seccompProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        items:
                          format: int64
                          type: integer
                        type: array
                      sysctls:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                      windowsOptions:
                        properties:
                          gmsaCredentialSpec:
                            type: string
                          gmsaCredentialSpecName:
                            type: string
                          hostProcess:
                            type: boolean
                          runAsUserName:
                            type: string
                        type: object
                    type: object
                  serviceAccount:
                    type: string
                  serviceAccountName:
                    type: string
                  setHostnameAsFQDN:
                    type: boolean
                  shareProcessNamespace:
                    type: boolean
                  subdomain:
                    type: string
                  terminationGracePeriodSeconds:
                    format: int64
                    type: integer
                  timeout:
                    format: int64
                    type: integer
                  tolerations:
                    items:
                      properties:
                        effect:
                          type: string
                        key:
                          type: string
                        operator:
                          type: string
                        tolerationSeconds:
                          format: int64
                          type: integer
                        value:
                          type: string
                      type: object
                    type: array
                  topologySpreadConstraints:
                    items:
                      properties:
                        labelSelector:
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        maxSkew:
                          format: int32
                          type: integer
                        topologyKey:
                          type: string
                        whenUnsatisfiable:
                          type: string
                      required:
                      - maxSkew
                      - topologyKey
                      - whenUnsatisfiable
                      type: object
                    type: array
                    x-kubernetes-list-map-keys:
                    - topologyKey
                    - whenUnsatisfiable
                    x-kubernetes-list-type: map
                  volumes:
                    items:
                      properties:
                        awsElasticBlockStore:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          properties:
                            cachingMode:
                              type: string
                            diskName:
                              type: string
                            diskURI:
                              type: string
                            fsType:
                              type: string
                            kind:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          properties:
                            readOnly:
                              type: boolean
                            secretName:
                              type: string
                            shareName:
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          properties:
                            monitors:
                              items:
                                type: string
                              type: array
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            secretFile:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            user:
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                            name:
                              type: string
                            optional:
                              type: boolean
                          type: object
                        csi:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            nodePublishSecretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            readOnly:
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        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
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                required:
                                - path
                                type: object
                              type: array
                          type: object
                        emptyDir:
                          properties:
                            medium:
                              type: string
                            sizeLimit:
                              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
                          type: object
                        ephemeral:
                          properties:
                            volumeClaimTemplate:
                              properties:
                                metadata:
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    dataSourceRef:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    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
                                          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
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    storageClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          properties:
                            fsType:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            targetWWNs:
                              items:
                                type: string
                              type: array
                            wwids:
                              items:
                                type: string
                              type: array
                          type: object
                        flexVolume:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              type: object
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                          required:
                          - driver
                          type: object
                        flocker:
                          properties:
                            datasetName:
                              type: string
                            datasetUUID:
                              type: string
                          type: object
                        gcePersistentDisk:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            pdName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          properties:
                            directory:
                              type: string
                            repository:
                              type: string
                            revision:
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          properties:
                            endpoints:
                              type: string
                            path:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          properties:
                            path:
                              type: string
                            type:
                              type: string
                          required:
                          - path
                          type: object
                        iscsi:
                          properties:
                            chapAuthDiscovery:
                              type: boolean
                            chapAuthSession:
                              type: boolean
                            fsType:
                              type: string
                            initiatorName:
                              type: string
                            iqn:
                              type: string
                            iscsiInterface:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            portals:
                              items:
                                type: string
                              type: array
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            targetPortal:
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          type: string
                        nfs:
                          properties:
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            server:
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          properties:
                            claimName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          properties:
                            fsType:
                              type: string
                            pdID:
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            sources:
                              items:
                                properties:
                                  configMap:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  downwardAPI:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  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
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                          required:
                                          - path
                                          type: object
                                        type: array
                                    type: object
                                  secret:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  serviceAccountToken:
                                    properties:
                                      audience:
                                        type: string
                                      expirationSeconds:
                                        format: int64
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                          type: object
                        quobyte:
                          properties:
                            group:
                              type: string
                            readOnly:
                              type: boolean
                            registry:
                              type: string
                            tenant:
                              type: string
                            user:
                              type: string
                            volume:
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          properties:
                            fsType:
                              type: string
                            image:
                              type: string
                            keyring:
                              type: string
                            monitors:
                              items:
                                type: string
                              type: array
                            pool:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            user:
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          properties:
                            fsType:
                              type: string
                            gateway:
                              type: string
                            protectionDomain:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            sslEnabled:
                              type: boolean
                            storageMode:
                              type: string
                            storagePool:
                              type: string
                            system:
                              type: string
                            volumeName:
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                            optional:
                              type: boolean
                            secretName:
                              type: string
                          type: object
                        storageos:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  type: string
                              type: object
                            volumeName:
                              type: string
                            volumeNamespace:
                              type: string
                          type: object
                        vsphereVolume:
                          properties:
                            fsType:
                              type: string
                            storagePolicyID:
                              type: string
                            storagePolicyName:
                              type: string
                            volumePath:
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
            required:
            - predictor
            type: object
          status:
            properties:
              address:
                properties:
                  url:
                    type: string
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              components:
                additionalProperties:
                  properties:
                    address:
                      properties:
                        url:
                          type: string
                      type: object
                    grpcUrl:
                      type: string
                    latestCreatedRevision:
                      type: string
                    latestReadyRevision:
                      type: string
                    latestRolledoutRevision:
                      type: string
                    previousRolledoutRevision:
                      type: string
                    restUrl:
                      type: string
                    traffic:
                      items:
                        properties:
                          configurationName:
                            type: string
                          latestRevision:
                            type: boolean
                          percent:
                            format: int64
                            type: integer
                          revisionName:
                            type: string
                          tag:
                            type: string
                          url:
                            type: string
                        type: object
                      type: array
                    url:
                      type: string
                  type: object
                type: object
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    severity:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              modelStatus:
                properties:
                  copies:
                    properties:
                      failedCopies:
                        default: 0
                        type: integer
                      totalCopies:
                        type: integer
                    required:
                    - failedCopies
                    type: object
                  lastFailureInfo:
                    properties:
                      exitCode:
                        format: int32
                        type: integer
                      location:
                        type: string
                      message:
                        type: string
                      modelRevisionName:
                        type: string
                      reason:
                        enum:
                        - ModelLoadFailed
                        - RuntimeUnhealthy
                        - RuntimeDisabled
                        - NoSupportingRuntime
                        - RuntimeNotRecognized
                        - InvalidPredictorSpec
                        type: string
                      time:
                        format: date-time
                        type: string
                    type: object
                  states:
                    properties:
                      activeModelState:
                        default: Pending
                        enum:
                        - ""
                        - Pending
                        - Standby
                        - Loading
                        - Loaded
                        - FailedToLoad
                        type: string
                      targetModelState:
                        default: ""
                        enum:
                        - ""
                        - Pending
                        - Standby
                        - Loading
                        - Loaded
                        - FailedToLoad
                        type: string
                    required:
                    - activeModelState
                    type: object
                  transitionStatus:
                    default: UpToDate
                    enum:
                    - ""
                    - UpToDate
                    - InProgress
                    - BlockedByFailedLoad
                    - InvalidSpec
                    type: string
                required:
                - transitionStatus
                type: object
              observedGeneration:
                format: int64
                type: integer
              url:
                type: string
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: networking
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: ingresses.networking.internal.knative.dev
spec:
  group: networking.internal.knative.dev
  names:
    categories:
    - knative-internal
    - networking
    kind: Ingress
    plural: ingresses
    shortNames:
    - kingress
    - king
    singular: ingress
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: "Ingress is a collection of rules that allow inbound connections
          to reach the endpoints defined by a backend. An Ingress can be configured
          to give services externally-reachable URLs, load balance traffic, offer
          name based virtual hosting, etc. \n This is heavily based on K8s Ingress
          https://godoc.org/k8s.io/api/networking/v1beta1#Ingress which some highlighted
          modifications."
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'Spec is the desired state of the Ingress. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              httpOption:
                description: 'HTTPOption is the option of HTTP. It has the following
                  two values: `HTTPOptionEnabled`, `HTTPOptionRedirected`'
                type: string
              rules:
                description: A list of host rules used to configure the Ingress.
                items:
                  description: IngressRule represents the rules mapping the paths
                    under a specified host to the related backend services. Incoming
                    requests are first evaluated for a host match, then routed to
                    the backend associated with the matching IngressRuleValue.
                  properties:
                    hosts:
                      description: 'Host is the fully qualified domain name of a network
                        host, as defined by RFC 3986. Note the following deviations
                        from the "host" part of the URI as defined in the RFC: 1.
                        IPs are not allowed. Currently a rule value can only apply
                        to the IP in the Spec of the parent . 2. The `:` delimiter
                        is not respected because ports are not allowed. Currently
                        the port of an Ingress is implicitly :80 for http and :443
                        for https. Both these may change in the future. If the host
                        is unspecified, the Ingress routes all traffic based on the
                        specified IngressRuleValue. If multiple matching Hosts were
                        provided, the first rule will take precedent.'
                      items:
                        type: string
                      type: array
                    http:
                      description: HTTP represents a rule to apply against incoming
                        requests. If the rule is satisfied, the request is routed
                        to the specified backend.
                      properties:
                        paths:
                          description: "A collection of paths that map requests to
                            backends. \n If they are multiple matching paths, the
                            first match takes precedence."
                          items:
                            description: HTTPIngressPath associates a path regex with
                              a backend. Incoming URLs matching the path are forwarded
                              to the backend.
                            properties:
                              appendHeaders:
                                additionalProperties:
                                  type: string
                                description: "AppendHeaders allow specifying additional
                                  HTTP headers to add before forwarding a request
                                  to the destination service. \n NOTE: This differs
                                  from K8s Ingress which doesn't allow header appending."
                                type: object
                              headers:
                                additionalProperties:
                                  description: HeaderMatch represents a matching value
                                    of Headers in HTTPIngressPath. Currently, only
                                    the exact matching is supported.
                                  properties:
                                    exact:
                                      type: string
                                  required:
                                  - exact
                                  type: object
                                description: Headers defines header matching rules
                                  which is a map from a header name to HeaderMatch
                                  which specify a matching condition. When a request
                                  matched with all the header matching rules, the
                                  request is routed by the corresponding ingress rule.
                                  If it is empty, the headers are not used for matching
                                type: object
                              path:
                                description: Path represents a literal prefix to which
                                  this rule should apply. Currently it can contain
                                  characters disallowed from the conventional "path"
                                  part of a URL as defined by RFC 3986. Paths must
                                  begin with a '/'. If unspecified, the path defaults
                                  to a catch all sending traffic to the backend.
                                type: string
                              rewriteHost:
                                description: "RewriteHost rewrites the incoming request's
                                  host header. \n This field is currently experimental
                                  and not supported by all Ingress implementations."
                                type: string
                              splits:
                                description: Splits defines the referenced service
                                  endpoints to which the traffic will be forwarded
                                  to.
                                items:
                                  description: IngressBackendSplit describes all endpoints
                                    for a given service and port.
                                  properties:
                                    appendHeaders:
                                      additionalProperties:
                                        type: string
                                      description: "AppendHeaders allow specifying
                                        additional HTTP headers to add before forwarding
                                        a request to the destination service. \n NOTE:
                                        This differs from K8s Ingress which doesn't
                                        allow header appending."
                                      type: object
                                    percent:
                                      description: "Specifies the split percentage,
                                        a number between 0 and 100.  If only one split
                                        is specified, we default to 100. \n NOTE:
                                        This differs from K8s Ingress to allow percentage
                                        split."
                                      type: integer
                                    serviceName:
                                      description: Specifies the name of the referenced
                                        service.
                                      type: string
                                    serviceNamespace:
                                      description: "Specifies the namespace of the
                                        referenced service. \n NOTE: This differs
                                        from K8s Ingress to allow routing to different
                                        namespaces."
                                      type: string
                                    servicePort:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Specifies the port of the referenced
                                        service.
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - serviceName
                                  - serviceNamespace
                                  - servicePort
                                  type: object
                                type: array
                            required:
                            - splits
                            type: object
                          type: array
                      required:
                      - paths
                      type: object
                    visibility:
                      description: Visibility signifies whether this rule should `ClusterLocal`.
                        If it's not specified then it defaults to `ExternalIP`.
                      type: string
                  type: object
                type: array
              tls:
                description: 'TLS configuration. Currently Ingress only supports a
                  single TLS port: 443. If multiple members of this list specify different
                  hosts, they will be multiplexed on the same port according to the
                  hostname specified through the SNI TLS extension, if the ingress
                  controller fulfilling the ingress supports SNI.'
                items:
                  description: IngressTLS describes the transport layer security associated
                    with an Ingress.
                  properties:
                    hosts:
                      description: Hosts is a list of hosts included in the TLS certificate.
                        The values in this list must match the name/s used in the
                        tlsSecret. Defaults to the wildcard host setting for the loadbalancer
                        controller fulfilling this Ingress, if left unspecified.
                      items:
                        type: string
                      type: array
                    secretName:
                      description: SecretName is the name of the secret used to terminate
                        SSL traffic.
                      type: string
                    secretNamespace:
                      description: SecretNamespace is the namespace of the secret
                        used to terminate SSL traffic. If not set the namespace should
                        be assumed to be the same as the Ingress. If set the secret
                        should have the same namespace as the Ingress otherwise the
                        behaviour is undefined and not supported.
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: 'Status is the current state of the Ingress. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              privateLoadBalancer:
                description: PrivateLoadBalancer contains the current status of the
                  load-balancer.
                properties:
                  ingress:
                    description: Ingress is a list containing ingress points for the
                      load-balancer. Traffic intended for the service should be sent
                      to these ingress points.
                    items:
                      description: 'LoadBalancerIngressStatus represents the status
                        of a load-balancer ingress point: traffic intended for the
                        service should be sent to an ingress point.'
                      properties:
                        domain:
                          description: Domain is set for load-balancer ingress points
                            that are DNS based (typically AWS load-balancers)
                          type: string
                        domainInternal:
                          description: "DomainInternal is set if there is a cluster-local
                            DNS name to access the Ingress. \n NOTE: This differs
                            from K8s Ingress, since we also desire to have a cluster-local
                            DNS name to allow routing in case of not having a mesh."
                          type: string
                        ip:
                          description: IP is set for load-balancer ingress points
                            that are IP based (typically GCE or OpenStack load-balancers)
                          type: string
                        meshOnly:
                          description: MeshOnly is set if the Ingress is only load-balanced
                            through a Service mesh.
                          type: boolean
                      type: object
                    type: array
                type: object
              publicLoadBalancer:
                description: PublicLoadBalancer contains the current status of the
                  load-balancer.
                properties:
                  ingress:
                    description: Ingress is a list containing ingress points for the
                      load-balancer. Traffic intended for the service should be sent
                      to these ingress points.
                    items:
                      description: 'LoadBalancerIngressStatus represents the status
                        of a load-balancer ingress point: traffic intended for the
                        service should be sent to an ingress point.'
                      properties:
                        domain:
                          description: Domain is set for load-balancer ingress points
                            that are DNS based (typically AWS load-balancers)
                          type: string
                        domainInternal:
                          description: "DomainInternal is set if there is a cluster-local
                            DNS name to access the Ingress. \n NOTE: This differs
                            from K8s Ingress, since we also desire to have a cluster-local
                            DNS name to allow routing in case of not having a mesh."
                          type: string
                        ip:
                          description: IP is set for load-balancer ingress points
                            that are IP based (typically GCE or OpenStack load-balancers)
                          type: string
                        meshOnly:
                          description: MeshOnly is set if the Ingress is only load-balanced
                            through a Service mesh.
                          type: boolean
                      type: object
                    type: array
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: issuers.cert-manager.io
spec:
  group: cert-manager.io
  names:
    categories:
    - cert-manager
    kind: Issuer
    listKind: IssuerList
    plural: issuers
    singular: issuer
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: Status
      priority: 1
      type: string
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: An Issuer represents a certificate issuing authority which can
          be referenced as part of `issuerRef` fields. It is scoped to a single namespace
          and can therefore only be referenced by resources within the same namespace.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Desired state of the Issuer resource.
            properties:
              acme:
                description: ACME configures this issuer to communicate with a RFC8555
                  (ACME) server to obtain signed x509 certificates.
                properties:
                  caBundle:
                    description: Base64-encoded bundle of PEM CAs which can be used
                      to validate the certificate chain presented by the ACME server.
                      Mutually exclusive with SkipTLSVerify; prefer using CABundle
                      to prevent various kinds of security vulnerabilities. If CABundle
                      and SkipTLSVerify are unset, the system certificate bundle inside
                      the container is used to validate the TLS connection.
                    format: byte
                    type: string
                  disableAccountKeyGeneration:
                    description: Enables or disables generating a new ACME account
                      key. If true, the Issuer resource will *not* request a new account
                      but will expect the account key to be supplied via an existing
                      secret. If false, the cert-manager system will generate a new
                      ACME account key for the Issuer. Defaults to false.
                    type: boolean
                  email:
                    description: Email is the email address to be associated with
                      the ACME account. This field is optional, but it is strongly
                      recommended to be set. It will be used to contact you in case
                      of issues with your account or certificates, including expiry
                      notification emails. This field may be updated after the account
                      is initially registered.
                    type: string
                  enableDurationFeature:
                    description: Enables requesting a Not After date on certificates
                      that matches the duration of the certificate. This is not supported
                      by all ACME servers like Let's Encrypt. If set to true when
                      the ACME server does not support it it will create an error
                      on the Order. Defaults to false.
                    type: boolean
                  externalAccountBinding:
                    description: ExternalAccountBinding is a reference to a CA external
                      account of the ACME server. If set, upon registration cert-manager
                      will attempt to associate the given external account credentials
                      with the registered ACME account.
                    properties:
                      keyAlgorithm:
                        description: 'Deprecated: keyAlgorithm field exists for historical
                          compatibility reasons and should not be used. The algorithm
                          is now hardcoded to HS256 in golang/x/crypto/acme.'
                        enum:
                        - HS256
                        - HS384
                        - HS512
                        type: string
                      keyID:
                        description: keyID is the ID of the CA key that the External
                          Account is bound to.
                        type: string
                      keySecretRef:
                        description: keySecretRef is a Secret Key Selector referencing
                          a data item in a Kubernetes Secret which holds the symmetric
                          MAC key of the External Account Binding. The `key` is the
                          index string that is paired with the key data in the Secret
                          and should not be confused with the key data itself, or
                          indeed with the External Account Binding keyID above. The
                          secret key stored in the Secret **must** be un-padded, base64
                          URL encoded data.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                    required:
                    - keyID
                    - keySecretRef
                    type: object
                  preferredChain:
                    description: 'PreferredChain is the chain to use if the ACME server
                      outputs multiple. PreferredChain is no guarantee that this one
                      gets delivered by the ACME endpoint. For example, for Let''s
                      Encrypt''s DST crosssign you would use: "DST Root CA X3" or
                      "ISRG Root X1" for the newer Let''s Encrypt root CA. This value
                      picks the first certificate bundle in the ACME alternative chains
                      that has a certificate with this value as its issuer''s CN'
                    maxLength: 64
                    type: string
                  privateKeySecretRef:
                    description: PrivateKey is the name of a Kubernetes Secret resource
                      that will be used to store the automatically generated ACME
                      account private key. Optionally, a `key` may be specified to
                      select a specific entry within the named Secret resource. If
                      `key` is not specified, a default of `tls.key` will be used.
                    properties:
                      key:
                        description: The key of the entry in the Secret resource's
                          `data` field to be used. Some instances of this field may
                          be defaulted, in others it may be required.
                        type: string
                      name:
                        description: 'Name of the resource being referred to. More
                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                    required:
                    - name
                    type: object
                  server:
                    description: 'Server is the URL used to access the ACME server''s
                      ''directory'' endpoint. For example, for Let''s Encrypt''s staging
                      endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory".
                      Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
                    type: string
                  skipTLSVerify:
                    description: 'INSECURE: Enables or disables validation of the
                      ACME server TLS certificate. If true, requests to the ACME server
                      will not have the TLS certificate chain validated. Mutually
                      exclusive with CABundle; prefer using CABundle to prevent various
                      kinds of security vulnerabilities. Only enable this option in
                      development environments. If CABundle and SkipTLSVerify are
                      unset, the system certificate bundle inside the container is
                      used to validate the TLS connection. Defaults to false.'
                    type: boolean
                  solvers:
                    description: 'Solvers is a list of challenge solvers that will
                      be used to solve ACME challenges for the matching domains. Solver
                      configurations must be provided in order to obtain certificates
                      from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
                    items:
                      description: An ACMEChallengeSolver describes how to solve ACME
                        challenges for the issuer it is part of. A selector may be
                        provided to use different solving strategies for different
                        DNS names. Only one of HTTP01 or DNS01 must be provided.
                      properties:
                        dns01:
                          description: Configures cert-manager to attempt to complete
                            authorizations by performing the DNS01 challenge flow.
                          properties:
                            acmeDNS:
                              description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns)
                                API to manage DNS01 challenge records.
                              properties:
                                accountSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                host:
                                  type: string
                              required:
                              - accountSecretRef
                              - host
                              type: object
                            akamai:
                              description: Use the Akamai DNS zone management API
                                to manage DNS01 challenge records.
                              properties:
                                accessTokenSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                clientSecretSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                clientTokenSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                serviceConsumerDomain:
                                  type: string
                              required:
                              - accessTokenSecretRef
                              - clientSecretSecretRef
                              - clientTokenSecretRef
                              - serviceConsumerDomain
                              type: object
                            azureDNS:
                              description: Use the Microsoft Azure DNS API to manage
                                DNS01 challenge records.
                              properties:
                                clientID:
                                  description: if both this and ClientSecret are left
                                    unset MSI will be used
                                  type: string
                                clientSecretSecretRef:
                                  description: if both this and ClientID are left
                                    unset MSI will be used
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                environment:
                                  description: name of the Azure environment (default
                                    AzurePublicCloud)
                                  enum:
                                  - AzurePublicCloud
                                  - AzureChinaCloud
                                  - AzureGermanCloud
                                  - AzureUSGovernmentCloud
                                  type: string
                                hostedZoneName:
                                  description: name of the DNS zone that should be
                                    used
                                  type: string
                                managedIdentity:
                                  description: managed identity configuration, can
                                    not be used at the same time as clientID, clientSecretSecretRef
                                    or tenantID
                                  properties:
                                    clientID:
                                      description: client ID of the managed identity,
                                        can not be used at the same time as resourceID
                                      type: string
                                    resourceID:
                                      description: resource ID of the managed identity,
                                        can not be used at the same time as clientID
                                      type: string
                                  type: object
                                resourceGroupName:
                                  description: resource group the DNS zone is located
                                    in
                                  type: string
                                subscriptionID:
                                  description: ID of the Azure subscription
                                  type: string
                                tenantID:
                                  description: when specifying ClientID and ClientSecret
                                    then this field is also needed
                                  type: string
                              required:
                              - resourceGroupName
                              - subscriptionID
                              type: object
                            cloudDNS:
                              description: Use the Google Cloud DNS API to manage
                                DNS01 challenge records.
                              properties:
                                hostedZoneName:
                                  description: HostedZoneName is an optional field
                                    that tells cert-manager in which Cloud DNS zone
                                    the challenge record has to be created. If left
                                    empty cert-manager will automatically choose a
                                    zone.
                                  type: string
                                project:
                                  type: string
                                serviceAccountSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - project
                              type: object
                            cloudflare:
                              description: Use the Cloudflare API to manage DNS01
                                challenge records.
                              properties:
                                apiKeySecretRef:
                                  description: 'API key to use to authenticate with
                                    Cloudflare. Note: using an API token to authenticate
                                    is now the recommended method as it allows greater
                                    control of permissions.'
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                apiTokenSecretRef:
                                  description: API token used to authenticate with
                                    Cloudflare.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                email:
                                  description: Email of the account, only required
                                    when using API key based authentication.
                                  type: string
                              type: object
                            cnameStrategy:
                              description: CNAMEStrategy configures how the DNS01
                                provider should handle CNAME records when found in
                                DNS zones.
                              enum:
                              - None
                              - Follow
                              type: string
                            digitalocean:
                              description: Use the DigitalOcean DNS API to manage
                                DNS01 challenge records.
                              properties:
                                tokenSecretRef:
                                  description: A reference to a specific 'key' within
                                    a Secret resource. In some instances, `key` is
                                    a required field.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - tokenSecretRef
                              type: object
                            rfc2136:
                              description: Use RFC2136 ("Dynamic Updates in the Domain
                                Name System") (https://datatracker.ietf.org/doc/rfc2136/)
                                to manage DNS01 challenge records.
                              properties:
                                nameserver:
                                  description: The IP address or hostname of an authoritative
                                    DNS server supporting RFC2136 in the form host:port.
                                    If the host is an IPv6 address it must be enclosed
                                    in square brackets (e.g [2001:db8::1]) ; port
                                    is optional. This field is required.
                                  type: string
                                tsigAlgorithm:
                                  description: 'The TSIG Algorithm configured in the
                                    DNS supporting RFC2136. Used only when ``tsigSecretSecretRef``
                                    and ``tsigKeyName`` are defined. Supported values
                                    are (case-insensitive): ``HMACMD5`` (default),
                                    ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
                                  type: string
                                tsigKeyName:
                                  description: The TSIG Key name configured in the
                                    DNS. If ``tsigSecretSecretRef`` is defined, this
                                    field is required.
                                  type: string
                                tsigSecretSecretRef:
                                  description: The name of the secret containing the
                                    TSIG value. If ``tsigKeyName`` is defined, this
                                    field is required.
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - nameserver
                              type: object
                            route53:
                              description: Use the AWS Route53 API to manage DNS01
                                challenge records.
                              properties:
                                accessKeyID:
                                  description: 'The AccessKeyID is used for authentication.
                                    Cannot be set when SecretAccessKeyID is set. If
                                    neither the Access Key nor Key ID are set, we
                                    fall-back to using env vars, shared credentials
                                    file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                                  type: string
                                accessKeyIDSecretRef:
                                  description: 'The SecretAccessKey is used for authentication.
                                    If set, pull the AWS access key ID from a key
                                    within a Kubernetes Secret. Cannot be set when
                                    AccessKeyID is set. If neither the Access Key
                                    nor Key ID are set, we fall-back to using env
                                    vars, shared credentials file or AWS Instance
                                    metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                hostedZoneID:
                                  description: If set, the provider will manage only
                                    this zone in Route53 and will not do an lookup
                                    using the route53:ListHostedZonesByName api call.
                                  type: string
                                region:
                                  description: Always set the region when using AccessKeyID
                                    and SecretAccessKey
                                  type: string
                                role:
                                  description: Role is a Role ARN which the Route53
                                    provider will assume using either the explicit
                                    credentials AccessKeyID/SecretAccessKey or the
                                    inferred credentials from environment variables,
                                    shared credentials file or AWS Instance metadata
                                  type: string
                                secretAccessKeySecretRef:
                                  description: 'The SecretAccessKey is used for authentication.
                                    If neither the Access Key nor Key ID are set,
                                    we fall-back to using env vars, shared credentials
                                    file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
                                  properties:
                                    key:
                                      description: The key of the entry in the Secret
                                        resource's `data` field to be used. Some instances
                                        of this field may be defaulted, in others
                                        it may be required.
                                      type: string
                                    name:
                                      description: 'Name of the resource being referred
                                        to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  required:
                                  - name
                                  type: object
                              required:
                              - region
                              type: object
                            webhook:
                              description: Configure an external webhook based DNS01
                                challenge solver to manage DNS01 challenge records.
                              properties:
                                config:
                                  description: Additional configuration that should
                                    be passed to the webhook apiserver when challenges
                                    are processed. This can contain arbitrary JSON
                                    data. Secret values should not be specified in
                                    this stanza. If secret values are needed (e.g.
                                    credentials for a DNS service), you should use
                                    a SecretKeySelector to reference a Secret resource.
                                    For details on the schema of this field, consult
                                    the webhook provider implementation's documentation.
                                  x-kubernetes-preserve-unknown-fields: true
                                groupName:
                                  description: The API group name that should be used
                                    when POSTing ChallengePayload resources to the
                                    webhook apiserver. This should be the same as
                                    the GroupName specified in the webhook provider
                                    implementation.
                                  type: string
                                solverName:
                                  description: The name of the solver to use, as defined
                                    in the webhook provider implementation. This will
                                    typically be the name of the provider, e.g. 'cloudflare'.
                                  type: string
                              required:
                              - groupName
                              - solverName
                              type: object
                          type: object
                        http01:
                          description: Configures cert-manager to attempt to complete
                            authorizations by performing the HTTP01 challenge flow.
                            It is not possible to obtain certificates for wildcard
                            domain names (e.g. `*.example.com`) using the HTTP01 challenge
                            mechanism.
                          properties:
                            gatewayHTTPRoute:
                              description: The Gateway API is a sig-network community
                                API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/).
                                The Gateway solver will create HTTPRoutes with the
                                specified labels in the same namespace as the challenge.
                                This solver is experimental, and fields / behaviour
                                may change in the future.
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  description: Custom labels that will be applied
                                    to HTTPRoutes created by cert-manager while solving
                                    HTTP-01 challenges.
                                  type: object
                                parentRefs:
                                  description: 'When solving an HTTP-01 challenge,
                                    cert-manager creates an HTTPRoute. cert-manager
                                    needs to know which parentRefs should be used
                                    when creating the HTTPRoute. Usually, the parentRef
                                    references a Gateway. See: https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways'
                                  items:
                                    description: "ParentReference identifies an API
                                      object (usually a Gateway) that can be considered
                                      a parent of this resource (usually a route).
                                      The only kind of parent resource with \"Core\"
                                      support is Gateway. This API may be extended
                                      in the future to support additional kinds of
                                      parent resources, such as HTTPRoute. \n The
                                      API object must be valid in the cluster; the
                                      Group and Kind must be registered in the cluster
                                      for this reference to be valid."
                                    properties:
                                      group:
                                        default: gateway.networking.k8s.io
                                        description: "Group is the group of the referent.
                                          When unspecified, \"gateway.networking.k8s.io\"
                                          is inferred. To set the core API group (such
                                          as for a \"Service\" kind referent), Group
                                          must be explicitly set to \"\" (empty string).
                                          \n Support: Core"
                                        maxLength: 253
                                        pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                        type: string
                                      kind:
                                        default: Gateway
                                        description: "Kind is kind of the referent.
                                          \n Support: Core (Gateway) \n Support: Implementation-specific
                                          (Other Resources)"
                                        maxLength: 63
                                        minLength: 1
                                        pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                        type: string
                                      name:
                                        description: "Name is the name of the referent.
                                          \n Support: Core"
                                        maxLength: 253
                                        minLength: 1
                                        type: string
                                      namespace:
                                        description: "Namespace is the namespace of
                                          the referent. When unspecified, this refers
                                          to the local namespace of the Route. \n
                                          Note that there are specific rules for ParentRefs
                                          which cross namespace boundaries. Cross-namespace
                                          references are only valid if they are explicitly
                                          allowed by something in the namespace they
                                          are referring to. For example: Gateway has
                                          the AllowedRoutes field, and ReferenceGrant
                                          provides a generic way to enable any other
                                          kind of cross-namespace reference. \n Support:
                                          Core"
                                        maxLength: 63
                                        minLength: 1
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      port:
                                        description: "Port is the network port this
                                          Route targets. It can be interpreted differently
                                          based on the type of parent resource. \n
                                          When the parent resource is a Gateway, this
                                          targets all listeners listening on the specified
                                          port that also support this kind of Route(and
                                          select this Route). It's not recommended
                                          to set `Port` unless the networking behaviors
                                          specified in a Route must apply to a specific
                                          port as opposed to a listener(s) whose port(s)
                                          may be changed. When both Port and SectionName
                                          are specified, the name and port of the
                                          selected listener must match both specified
                                          values. \n Implementations MAY choose to
                                          support other parent resources. Implementations
                                          supporting other types of parent resources
                                          MUST clearly document how/if Port is interpreted.
                                          \n For the purpose of status, an attachment
                                          is considered successful as long as the
                                          parent resource accepts it partially. For
                                          example, Gateway listeners can restrict
                                          which Routes can attach to them by Route
                                          kind, namespace, or hostname. If 1 of 2
                                          Gateway listeners accept attachment from
                                          the referencing Route, the Route MUST be
                                          considered successfully attached. If no
                                          Gateway listeners accept attachment from
                                          this Route, the Route MUST be considered
                                          detached from the Gateway. \n Support: Extended
                                          \n <gateway:experimental>"
                                        format: int32
                                        maximum: 65535
                                        minimum: 1
                                        type: integer
                                      sectionName:
                                        description: "SectionName is the name of a
                                          section within the target resource. In the
                                          following resources, SectionName is interpreted
                                          as the following: \n * Gateway: Listener
                                          Name. When both Port (experimental) and
                                          SectionName are specified, the name and
                                          port of the selected listener must match
                                          both specified values. \n Implementations
                                          MAY choose to support attaching Routes to
                                          other resources. If that is the case, they
                                          MUST clearly document how SectionName is
                                          interpreted. \n When unspecified (empty
                                          string), this will reference the entire
                                          resource. For the purpose of status, an
                                          attachment is considered successful if at
                                          least one section in the parent resource
                                          accepts it. For example, Gateway listeners
                                          can restrict which Routes can attach to
                                          them by Route kind, namespace, or hostname.
                                          If 1 of 2 Gateway listeners accept attachment
                                          from the referencing Route, the Route MUST
                                          be considered successfully attached. If
                                          no Gateway listeners accept attachment from
                                          this Route, the Route MUST be considered
                                          detached from the Gateway. \n Support: Core"
                                        maxLength: 253
                                        minLength: 1
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                serviceType:
                                  description: Optional service type for Kubernetes
                                    solver service. Supported values are NodePort
                                    or ClusterIP. If unset, defaults to NodePort.
                                  type: string
                              type: object
                            ingress:
                              description: The ingress based HTTP01 challenge solver
                                will solve challenges by creating or modifying Ingress
                                resources in order to route requests for '/.well-known/acme-challenge/XYZ'
                                to 'challenge solver' pods that are provisioned by
                                cert-manager for each Challenge to be completed.
                              properties:
                                class:
                                  description: This field configures the annotation
                                    `kubernetes.io/ingress.class` when creating Ingress
                                    resources to solve ACME challenges that use this
                                    challenge solver. Only one of `class`, `name`
                                    or `ingressClassName` may be specified.
                                  type: string
                                ingressClassName:
                                  description: This field configures the field `ingressClassName`
                                    on the created Ingress resources used to solve
                                    ACME challenges that use this challenge solver.
                                    This is the recommended way of configuring the
                                    ingress class. Only one of `class`, `name` or
                                    `ingressClassName` may be specified.
                                  type: string
                                ingressTemplate:
                                  description: Optional ingress template used to configure
                                    the ACME challenge solver ingress used for HTTP01
                                    challenges.
                                  properties:
                                    metadata:
                                      description: ObjectMeta overrides for the ingress
                                        used to solve HTTP01 challenges. Only the
                                        'labels' and 'annotations' fields may be set.
                                        If labels or annotations overlap with in-built
                                        values, the values here will override the
                                        in-built values.
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          description: Annotations that should be
                                            added to the created ACME HTTP01 solver
                                            ingress.
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          description: Labels that should be added
                                            to the created ACME HTTP01 solver ingress.
                                          type: object
                                      type: object
                                  type: object
                                name:
                                  description: The name of the ingress resource that
                                    should have ACME challenge solving routes inserted
                                    into it in order to solve HTTP01 challenges. This
                                    is typically used in conjunction with ingress
                                    controllers like ingress-gce, which maintains
                                    a 1:1 mapping between external IPs and ingress
                                    resources. Only one of `class`, `name` or `ingressClassName`
                                    may be specified.
                                  type: string
                                podTemplate:
                                  description: Optional pod template used to configure
                                    the ACME challenge solver pods used for HTTP01
                                    challenges.
                                  properties:
                                    metadata:
                                      description: ObjectMeta overrides for the pod
                                        used to solve HTTP01 challenges. Only the
                                        'labels' and 'annotations' fields may be set.
                                        If labels or annotations overlap with in-built
                                        values, the values here will override the
                                        in-built values.
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          description: Annotations that should be
                                            added to the create ACME HTTP01 solver
                                            pods.
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          description: Labels that should be added
                                            to the created ACME HTTP01 solver pods.
                                          type: object
                                      type: object
                                    spec:
                                      description: PodSpec defines overrides for the
                                        HTTP01 challenge solver pod. Check ACMEChallengeSolverHTTP01IngressPodSpec
                                        to find out currently supported fields. All
                                        other fields will be ignored.
                                      properties:
                                        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.
                                                    The node that is most preferred
                                                    is the one with the greatest sum
                                                    of weights, i.e. for each node
                                                    that meets all of the scheduling
                                                    requirements (resource request,
                                                    requiredDuringScheduling affinity
                                                    expressions, etc.), compute a
                                                    sum by iterating through the elements
                                                    of this field and adding "weight"
                                                    to the sum if the node matches
                                                    the corresponding matchExpressions;
                                                    the node(s) with the highest sum
                                                    are the most preferred.
                                                  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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              required:
                                                              - key
                                                              - operator
                                                              type: object
                                                            type: array
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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. If the affinity requirements
                                                    specified by this field cease
                                                    to be met at some point during
                                                    pod execution (e.g. due to an
                                                    update), the system may or may
                                                    not try to eventually evict the
                                                    pod from its 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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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.
                                                                    If the operator
                                                                    is Gt or Lt, the
                                                                    values array must
                                                                    have a single
                                                                    element, which
                                                                    will be interpreted
                                                                    as an integer.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              required:
                                                              - key
                                                              - operator
                                                              type: object
                                                            type: array
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      type: array
                                                  required:
                                                  - nodeSelectorTerms
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              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.
                                                    The node that is most preferred
                                                    is the one with the greatest sum
                                                    of weights, i.e. for each node
                                                    that meets all of the scheduling
                                                    requirements (resource request,
                                                    requiredDuringScheduling affinity
                                                    expressions, etc.), compute a
                                                    sum by iterating through the elements
                                                    of this field and adding "weight"
                                                    to the sum if the node has pods
                                                    which matches the corresponding
                                                    podAffinityTerm; the node(s) with
                                                    the highest sum are the most preferred.
                                                  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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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. null selector
                                                              and null or empty namespaces
                                                              list means "this pod's
                                                              namespace". An empty
                                                              selector ({}) matches
                                                              all namespaces.
                                                            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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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.
                                                              null or empty namespaces
                                                              list and null namespaceSelector
                                                              means "this pod's namespace".
                                                            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 with key topologyKey
                                                              matches that of any
                                                              node on which any of
                                                              the selected pods is
                                                              running. Empty topologyKey
                                                              is not allowed.
                                                            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. If the affinity requirements
                                                    specified by this field cease
                                                    to be met at some point during
                                                    pod execution (e.g. due to a pod
                                                    label update), the system may
                                                    or may not try to eventually evict
                                                    the pod from its node. When there
                                                    are multiple elements, the lists
                                                    of nodes corresponding to each
                                                    podAffinityTerm are intersected,
                                                    i.e. all terms must be satisfied.
                                                  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 running
                                                      on a node whose value of the
                                                      label with key <topologyKey>
                                                      matches that of any node on
                                                      which a pod of the set of pods
                                                      is running
                                                    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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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. null selector and
                                                          null or empty namespaces
                                                          list means "this pod's namespace".
                                                          An empty selector ({}) matches
                                                          all namespaces.
                                                        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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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.
                                                          null or empty namespaces
                                                          list and null namespaceSelector
                                                          means "this pod's namespace".
                                                        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 with key topologyKey
                                                          matches that of any node
                                                          on which any of the selected
                                                          pods is running. Empty topologyKey
                                                          is not allowed.
                                                        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. The node that is
                                                    most preferred is the one with
                                                    the greatest sum of weights, i.e.
                                                    for each node that meets all of
                                                    the scheduling requirements (resource
                                                    request, requiredDuringScheduling
                                                    anti-affinity expressions, etc.),
                                                    compute a sum by iterating through
                                                    the elements of this field and
                                                    adding "weight" to the sum if
                                                    the node has pods which matches
                                                    the corresponding podAffinityTerm;
                                                    the node(s) with the highest sum
                                                    are the most preferred.
                                                  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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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. null selector
                                                              and null or empty namespaces
                                                              list means "this pod's
                                                              namespace". An empty
                                                              selector ({}) matches
                                                              all namespaces.
                                                            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.
                                                                        This array
                                                                        is replaced
                                                                        during a strategic
                                                                        merge patch.
                                                                      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. A single
                                                                  {key,value} in the
                                                                  matchLabels map
                                                                  is equivalent to
                                                                  an element of matchExpressions,
                                                                  whose key field
                                                                  is "key", the operator
                                                                  is "In", and the
                                                                  values array contains
                                                                  only "value". The
                                                                  requirements are
                                                                  ANDed.
                                                                type: object
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          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.
                                                              null or empty namespaces
                                                              list and null namespaceSelector
                                                              means "this pod's namespace".
                                                            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 with key topologyKey
                                                              matches that of any
                                                              node on which any of
                                                              the selected pods is
                                                              running. Empty topologyKey
                                                              is not allowed.
                                                            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. If the anti-affinity
                                                    requirements specified by this
                                                    field cease to be met at some
                                                    point during pod execution (e.g.
                                                    due to a pod label update), the
                                                    system may or may not try to eventually
                                                    evict the pod from its node. When
                                                    there are multiple elements, the
                                                    lists of nodes corresponding to
                                                    each podAffinityTerm are intersected,
                                                    i.e. all terms must be satisfied.
                                                  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 running
                                                      on a node whose value of the
                                                      label with key <topologyKey>
                                                      matches that of any node on
                                                      which a pod of the set of pods
                                                      is running
                                                    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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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. null selector and
                                                          null or empty namespaces
                                                          list means "this pod's namespace".
                                                          An empty selector ({}) matches
                                                          all namespaces.
                                                        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.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  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. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      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.
                                                          null or empty namespaces
                                                          list and null namespaceSelector
                                                          means "this pod's namespace".
                                                        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 with key topologyKey
                                                          matches that of any node
                                                          on which any of the selected
                                                          pods is running. Empty topologyKey
                                                          is not allowed.
                                                        type: string
                                                    required:
                                                    - topologyKey
                                                    type: object
                                                  type: array
                                              type: object
                                          type: object
                                        imagePullSecrets:
                                          description: If specified, the pod's imagePullSecrets
                                          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
                                            x-kubernetes-map-type: atomic
                                          type: array
                                        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.io/docs/concepts/configuration/assign-pod-node/'
                                          type: object
                                        priorityClassName:
                                          description: If specified, the pod's priorityClassName.
                                          type: string
                                        serviceAccountName:
                                          description: If specified, the pod's service
                                            account
                                          type: string
                                        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. By default,
                                                  it is not set, which means tolerate
                                                  the taint forever (do not evict).
                                                  Zero and negative values will be
                                                  treated as 0 (evict immediately)
                                                  by the system.
                                                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
                                      type: object
                                  type: object
                                serviceType:
                                  description: Optional service type for Kubernetes
                                    solver service. Supported values are NodePort
                                    or ClusterIP. If unset, defaults to NodePort.
                                  type: string
                              type: object
                          type: object
                        selector:
                          description: Selector selects a set of DNSNames on the Certificate
                            resource that should be solved using this challenge solver.
                            If not specified, the solver will be treated as the 'default'
                            solver with the lowest priority, i.e. if any other solver
                            has a more specific match, it will be used instead.
                          properties:
                            dnsNames:
                              description: List of DNSNames that this solver will
                                be used to solve. If specified and a match is found,
                                a dnsNames selector will take precedence over a dnsZones
                                selector. If multiple solvers match with the same
                                dnsNames value, the solver with the most matching
                                labels in matchLabels will be selected. If neither
                                has more matches, the solver defined earlier in the
                                list will be selected.
                              items:
                                type: string
                              type: array
                            dnsZones:
                              description: List of DNSZones that this solver will
                                be used to solve. The most specific DNS zone match
                                specified here will take precedence over other DNS
                                zone matches, so a solver specifying sys.example.com
                                will be selected over one specifying example.com for
                                the domain www.sys.example.com. If multiple solvers
                                match with the same dnsZones value, the solver with
                                the most matching labels in matchLabels will be selected.
                                If neither has more matches, the solver defined earlier
                                in the list will be selected.
                              items:
                                type: string
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              description: A label selector that is used to refine
                                the set of certificate's that this challenge solver
                                will apply to.
                              type: object
                          type: object
                      type: object
                    type: array
                required:
                - privateKeySecretRef
                - server
                type: object
              ca:
                description: CA configures this issuer to sign certificates using
                  a signing CA keypair stored in a Secret resource. This is used to
                  build internal PKIs that are managed by cert-manager.
                properties:
                  crlDistributionPoints:
                    description: The CRL distribution points is an X.509 v3 certificate
                      extension which identifies the location of the CRL from which
                      the revocation of this certificate can be checked. If not set,
                      certificates will be issued without distribution points set.
                    items:
                      type: string
                    type: array
                  ocspServers:
                    description: The OCSP server list is an X.509 v3 extension that
                      defines a list of URLs of OCSP responders. The OCSP responders
                      can be queried for the revocation status of an issued certificate.
                      If not set, the certificate will be issued with no OCSP servers
                      set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
                    items:
                      type: string
                    type: array
                  secretName:
                    description: SecretName is the name of the secret used to sign
                      Certificates issued by this Issuer.
                    type: string
                required:
                - secretName
                type: object
              selfSigned:
                description: SelfSigned configures this issuer to 'self sign' certificates
                  using the private key used to create the CertificateRequest object.
                properties:
                  crlDistributionPoints:
                    description: The CRL distribution points is an X.509 v3 certificate
                      extension which identifies the location of the CRL from which
                      the revocation of this certificate can be checked. If not set
                      certificate will be issued without CDP. Values are strings.
                    items:
                      type: string
                    type: array
                type: object
              vault:
                description: Vault configures this issuer to sign certificates using
                  a HashiCorp Vault PKI backend.
                properties:
                  auth:
                    description: Auth configures how cert-manager authenticates with
                      the Vault server.
                    properties:
                      appRole:
                        description: AppRole authenticates with Vault using the App
                          Role auth mechanism, with the role and secret stored in
                          a Kubernetes Secret resource.
                        properties:
                          path:
                            description: 'Path where the App Role authentication backend
                              is mounted in Vault, e.g: "approle"'
                            type: string
                          roleId:
                            description: RoleID configured in the App Role authentication
                              backend when setting up the authentication backend in
                              Vault.
                            type: string
                          secretRef:
                            description: Reference to a key in a Secret that contains
                              the App Role secret used to authenticate with Vault.
                              The `key` field must be specified and denotes which
                              entry within the Secret resource is used as the app
                              role secret.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - path
                        - roleId
                        - secretRef
                        type: object
                      kubernetes:
                        description: Kubernetes authenticates with Vault by passing
                          the ServiceAccount token stored in the named Secret resource
                          to the Vault server.
                        properties:
                          mountPath:
                            description: The Vault mountPath here is the mount path
                              to use when authenticating with Vault. For example,
                              setting a value to `/v1/auth/foo`, will use the path
                              `/v1/auth/foo/login` to authenticate with Vault. If
                              unspecified, the default value "/v1/auth/kubernetes"
                              will be used.
                            type: string
                          role:
                            description: A required field containing the Vault Role
                              to assume. A Role binds a Kubernetes ServiceAccount
                              with a set of Vault policies.
                            type: string
                          secretRef:
                            description: The required Secret field containing a Kubernetes
                              ServiceAccount JWT used for authenticating with Vault.
                              Use of 'ambient credentials' is not supported.
                            properties:
                              key:
                                description: The key of the entry in the Secret resource's
                                  `data` field to be used. Some instances of this
                                  field may be defaulted, in others it may be required.
                                type: string
                              name:
                                description: 'Name of the resource being referred
                                  to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                            required:
                            - name
                            type: object
                          serviceAccountRef:
                            description: A reference to a service account that will
                              be used to request a bound token (also known as "projected
                              token"). Compared to using "secretRef", using this field
                              means that you don't rely on statically bound tokens.
                              To use this field, you must configure an RBAC rule to
                              let cert-manager request a token.
                            properties:
                              name:
                                description: Name of the ServiceAccount used to request
                                  a token.
                                type: string
                            required:
                            - name
                            type: object
                        required:
                        - role
                        type: object
                      tokenSecretRef:
                        description: TokenSecretRef authenticates with Vault by presenting
                          a token.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                    type: object
                  caBundle:
                    description: Base64-encoded bundle of PEM CAs which will be used
                      to validate the certificate chain presented by Vault. Only used
                      if using HTTPS to connect to Vault and ignored for HTTP connections.
                      Mutually exclusive with CABundleSecretRef. If neither CABundle
                      nor CABundleSecretRef are defined, the certificate bundle in
                      the cert-manager controller container is used to validate the
                      TLS connection.
                    format: byte
                    type: string
                  caBundleSecretRef:
                    description: Reference to a Secret containing a bundle of PEM-encoded
                      CAs to use when verifying the certificate chain presented by
                      Vault when using HTTPS. Mutually exclusive with CABundle. If
                      neither CABundle nor CABundleSecretRef are defined, the certificate
                      bundle in the cert-manager controller container is used to validate
                      the TLS connection. If no key for the Secret is specified, cert-manager
                      will default to 'ca.crt'.
                    properties:
                      key:
                        description: The key of the entry in the Secret resource's
                          `data` field to be used. Some instances of this field may
                          be defaulted, in others it may be required.
                        type: string
                      name:
                        description: 'Name of the resource being referred to. More
                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                    required:
                    - name
                    type: object
                  namespace:
                    description: 'Name of the vault namespace. Namespaces is a set
                      of features within Vault Enterprise that allows Vault environments
                      to support Secure Multi-tenancy. e.g: "ns1" More about namespaces
                      can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
                    type: string
                  path:
                    description: 'Path is the mount path of the Vault PKI backend''s
                      `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
                    type: string
                  server:
                    description: 'Server is the connection address for the Vault server,
                      e.g: "https://vault.example.com:8200".'
                    type: string
                required:
                - auth
                - path
                - server
                type: object
              venafi:
                description: Venafi configures this issuer to sign certificates using
                  a Venafi TPP or Venafi Cloud policy zone.
                properties:
                  cloud:
                    description: Cloud specifies the Venafi cloud configuration settings.
                      Only one of TPP or Cloud may be specified.
                    properties:
                      apiTokenSecretRef:
                        description: APITokenSecretRef is a secret key selector for
                          the Venafi Cloud API token.
                        properties:
                          key:
                            description: The key of the entry in the Secret resource's
                              `data` field to be used. Some instances of this field
                              may be defaulted, in others it may be required.
                            type: string
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                      url:
                        description: URL is the base URL for Venafi Cloud. Defaults
                          to "https://api.venafi.cloud/v1".
                        type: string
                    required:
                    - apiTokenSecretRef
                    type: object
                  tpp:
                    description: TPP specifies Trust Protection Platform configuration
                      settings. Only one of TPP or Cloud may be specified.
                    properties:
                      caBundle:
                        description: Base64-encoded bundle of PEM CAs which will be
                          used to validate the certificate chain presented by the
                          TPP server. Only used if using HTTPS; ignored for HTTP.
                          If undefined, the certificate bundle in the cert-manager
                          controller container is used to validate the chain.
                        format: byte
                        type: string
                      credentialsRef:
                        description: CredentialsRef is a reference to a Secret containing
                          the username and password for the TPP server. The secret
                          must contain two keys, 'username' and 'password'.
                        properties:
                          name:
                            description: 'Name of the resource being referred to.
                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                        required:
                        - name
                        type: object
                      url:
                        description: 'URL is the base URL for the vedsdk endpoint
                          of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
                        type: string
                    required:
                    - credentialsRef
                    - url
                    type: object
                  zone:
                    description: Zone is the Venafi Policy Zone to use for this issuer.
                      All requests made to the Venafi platform will be restricted
                      by the named zone policy. This field is required.
                    type: string
                required:
                - zone
                type: object
            type: object
          status:
            description: Status of the Issuer. This is set and managed automatically.
            properties:
              acme:
                description: ACME specific status options. This field should only
                  be set if the Issuer is configured to use an ACME server to issue
                  certificates.
                properties:
                  lastPrivateKeyHash:
                    description: LastPrivateKeyHash is a hash of the private key associated
                      with the latest registered ACME account, in order to track changes
                      made to registered account associated with the Issuer
                    type: string
                  lastRegisteredEmail:
                    description: LastRegisteredEmail is the email associated with
                      the latest registered ACME account, in order to track changes
                      made to registered account associated with the  Issuer
                    type: string
                  uri:
                    description: URI is the unique account identifier, which can also
                      be used to retrieve account details from the CA
                    type: string
                type: object
              conditions:
                description: List of status conditions to indicate the status of a
                  CertificateRequest. Known condition types are `Ready`.
                items:
                  description: IssuerCondition contains condition information for
                    an Issuer.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the timestamp corresponding
                        to the last status change of this condition.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable description of the
                        details of the last transition, complementing reason.
                      type: string
                    observedGeneration:
                      description: If set, this represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the Issuer.
                      format: int64
                      type: integer
                    reason:
                      description: Reason is a brief machine readable explanation
                        for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of (`True`, `False`,
                        `Unknown`).
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: Type of the condition, known values are (`Ready`).
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    release: istio
  name: istiooperators.install.istio.io
spec:
  conversion:
    strategy: None
  group: install.istio.io
  names:
    kind: IstioOperator
    listKind: IstioOperatorList
    plural: istiooperators
    shortNames:
    - iop
    - io
    singular: istiooperator
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Istio control plane revision
      jsonPath: .spec.revision
      name: Revision
      type: string
    - description: IOP current state
      jsonPath: .status.status
      name: Status
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        type: object
        x-kubernetes-preserve-unknown-fields: true
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: metrics.autoscaling.internal.knative.dev
spec:
  group: autoscaling.internal.knative.dev
  names:
    categories:
    - knative-internal
    - autoscaling
    kind: Metric
    plural: metrics
    singular: metric
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Metric represents a resource to configure the metric collector
          with.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec holds the desired state of the Metric (from the client).
            properties:
              panicWindow:
                description: PanicWindow is the aggregation window for metrics where
                  quick reactions are needed.
                format: int64
                type: integer
              scrapeTarget:
                description: ScrapeTarget is the K8s service that publishes the metric
                  endpoint.
                type: string
              stableWindow:
                description: StableWindow is the aggregation window for metrics in
                  a stable state.
                format: int64
                type: integer
            required:
            - panicWindow
            - scrapeTarget
            - stableWindow
            type: object
          status:
            description: Status communicates the observed state of the Metric (from
              the controller).
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: mpijobs.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: MPIJob
    listKind: MPIJobList
    plural: mpijobs
    singular: mpijob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[-1:].type
      name: State
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              cleanPodPolicy:
                description: CleanPodPolicy defines the policy that whether to kill
                  pods after the job completes. Defaults to None.
                type: string
              mainContainer:
                description: MainContainer specifies name of the main container which
                  executes the MPI code.
                type: string
              mpiReplicaSpecs:
                additionalProperties:
                  description: ReplicaSpec is a description of the replica
                  properties:
                    replicas:
                      description: Replicas is the desired number of replicas of the
                        given template. If unspecified, defaults to 1.
                      format: int32
                      type: integer
                    restartPolicy:
                      description: Restart policy for all replicas within the job.
                        One of Always, OnFailure, Never and ExitCode. Default to Never.
                      type: string
                    template:
                      description: Template is the object that describes the pod that
                        will be created for this replica. RestartPolicy in PodTemplateSpec
                        will be overide by RestartPolicy in ReplicaSpec
                      properties:
                        metadata:
                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'Specification of the desired behavior of the
                            pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                          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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to an update), the
                                        system may or may not try to eventually evict
                                        the pod from its 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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to a pod label update),
                                        the system may or may not try to eventually
                                        evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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. The node that is most
                                        preferred is the one with the greatest sum
                                        of weights, i.e.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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. If the anti-affinity requirements specified
                                        by this field cease to be met at some point
                                        during pod execution (e.g. due to a pod label
                                        update), the system may or may not try to
                                        eventually evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.
                                    Resolution options given in Options will override
                                    those that appear in the base DNSPolicy.
                                  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'. DNS parameters
                                given in DNSConfig will be merged with the policy
                                selected with DNSPolicy. To have DNS options set along
                                with hostNetwork, you have to specify DNS policy explicitly
                                to 'ClusterFirstWithHostNet'.
                              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.
                                This list cannot be specified when creating a pod,
                                and it cannot be modified by updating the pod spec.
                                In order to add an ephemeral container to an existing
                                pod, use the pod's ephemeralcontainers subresource.
                              items:
                                description: An EphemeralContainer is a temporary
                                  container that you may add to an existing Pod for
                                  user-initiated activities such as debugging. Ephemeral
                                  containers have no resource or scheduling guarantees,
                                  and they will not be restarted when they exit or
                                  when a Pod is removed or restarted. The kubelet
                                  may evict a Pod if an ephemeral container causes
                                  the Pod to exceed its resource allocation.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      image''s CMD is used if this is not provided.
                                      Variable references $(VAR_NAME) are expanded
                                      using the container''s environment. If a variable
                                      cannot be resolved, the reference in the input
                                      string will be unchanged. Double $$ are reduced
                                      to a single $, which allows for escaping the
                                      $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                                      produce the string literal "$(VAR_NAME)".'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The image''s ENTRYPOINT is used if
                                      this is not provided. Variable references $(VAR_NAME)
                                      are expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container 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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: Resources are not allowed for ephemeral
                                      containers. Ephemeral containers use spare resources
                                      already allocated to the pod.
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. If not set
                                      then the ephemeral container uses the namespaces
                                      configured in the Pod spec. \n The container
                                      runtime must implement support for this feature."
                                    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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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. Subpath mounts are not allowed for
                                      ephemeral containers. 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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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
                            hostUsers:
                              description: 'Use the host''s user namespace. Optional:
                                Default to true. If set to true or not present, the
                                pod will be run in the host user namespace, useful
                                for when the pod needs a feature only available to
                                the host user namespace, such as loading a kernel
                                module with CAP_SYS_MODULE. When set to false, a new
                                userns is created for the pod.'
                              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.
                                If specified, these secrets will be passed to individual
                                puller implementations for them to use. More info:
                                https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                              items:
                                description: LocalObjectReference contains enough
                                  information to let you locate the referenced object
                                  inside the same namespace.
                                properties:
                                  name:
                                    description: 'Name of the referent. 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
                                x-kubernetes-map-type: atomic
                              type: array
                            initContainers:
                              description: List of initialization containers belonging
                                to the pod. Init containers are executed in order
                                prior to containers being started. If any init container
                                fails, the pod is considered to have failed and is
                                handled according to its restartPolicy. The name for
                                an init container or normal container must be unique
                                among all containers.
                              items:
                                description: A single application container that you
                                  want to run within a pod.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.io/docs/concepts/configuration/assign-pod-node/'
                              type: object
                              x-kubernetes-map-type: atomic
                            os:
                              description: "Specifies the OS of the containers in
                                the pod. Some pod and container fields are restricted
                                if this is set. \n If the OS field is set to linux,
                                the following fields must be unset: -securityContext.windowsOptions
                                \n If the OS field is set to windows, following fields
                                must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers
                                - spec.securityContext.seLinuxOptions - spec.securityContext."
                              properties:
                                name:
                                  description: 'Name is the name of the operating
                                    system. The currently supported values are linux
                                    and windows. Additional value may be defined in
                                    future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
                                    Clients should expect to handle additional values
                                    and treat unrecognized values in this field as
                                    os: null'
                                  type: string
                              required:
                              - name
                              type: object
                            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. If the RuntimeClass
                                admission controller is enabled, overhead must not
                                be set in Pod create requests. The RuntimeClass admission
                                controller will reject Pod create requests which have
                                the overhead already set.
                              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. The admission controller
                                populates this field from PriorityClassName. The higher
                                the value, the higher the priority.
                              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.
                                Any other name must be defined by creating a PriorityClass
                                object with that name. If not specified, the pod priority
                                will be default or zero if there is no default.
                              type: string
                            readinessGates:
                              description: 'If specified, all readiness gates will
                                be evaluated for pod readiness. A pod is ready when
                                all its containers are ready AND all conditions specified
                                in the readiness gates have status equal to "True"
                                More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates'
                              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
                            resourceClaims:
                              description: "ResourceClaims defines which ResourceClaims
                                must be allocated and reserved before the Pod is allowed
                                to start. The resources will be made available to
                                those containers which consume them by name. \n This
                                is an alpha field and requires enabling the DynamicResourceAllocation
                                feature gate. \n This field is immutable."
                              items:
                                description: PodResourceClaim references exactly one
                                  ResourceClaim through a ClaimSource. It adds a name
                                  to it that uniquely identifies the ResourceClaim
                                  inside the Pod. Containers that need access to the
                                  ResourceClaim reference it with this name.
                                properties:
                                  name:
                                    description: Name uniquely identifies this resource
                                      claim inside the pod. This must be a DNS_LABEL.
                                    type: string
                                  source:
                                    description: Source describes where to find the
                                      ResourceClaim.
                                    properties:
                                      resourceClaimName:
                                        description: ResourceClaimName is the name
                                          of a ResourceClaim object in the same namespace
                                          as this pod.
                                        type: string
                                      resourceClaimTemplateName:
                                        description: "ResourceClaimTemplateName is
                                          the name of a ResourceClaimTemplate object
                                          in the same namespace as this pod. \n The
                                          template will be used to create a new ResourceClaim,
                                          which will be bound to this pod. When this
                                          pod is deleted, the ResourceClaim will also
                                          be deleted. The name of the ResourceClaim
                                          will be <pod name>-<resource name>, where
                                          <resource name> is the PodResourceClaim.Name."
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            restartPolicy:
                              description: 'Restart policy for all containers within
                                the pod. One of Always, OnFailure, Never. In some
                                contexts, only a subset of those values may be permitted.
                                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. If unset
                                or empty, the "legacy" RuntimeClass will be used,
                                which is an implicit class with an empty definition
                                that uses the default runtime handler. More info:
                                https://git.k8s.'
                              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
                            schedulingGates:
                              description: "SchedulingGates is an opaque list of values
                                that if specified will block scheduling the pod. If
                                schedulingGates is not empty, the pod will stay in
                                the SchedulingGated state and the scheduler will not
                                attempt to schedule the pod. \n SchedulingGates can
                                only be set at pod creation time, and be removed only
                                afterwards. \n This is a beta feature enabled by the
                                PodSchedulingReadiness feature gate."
                              items:
                                description: PodSchedulingGate is associated to a
                                  Pod to guard its scheduling.
                                properties:
                                  name:
                                    description: Name of the scheduling gate. Each
                                      scheduling gate must have a unique name field.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            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. The setgid bit
                                    is set (new files created in the volume will be
                                    owned by FSGroup) 3."
                                  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). It will have
                                    no effect on ephemeral volume types such as: secret,
                                    configmaps and emptydir. Valid values are "OnRootMismatch"
                                    and "Always". If not specified, "Always" is used.'
                                  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.  If set in
                                    both SecurityContext and PodSecurityContext, the
                                    value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in SecurityContext.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence for that container.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.  If
                                    set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. Note that this field cannot be set
                                    when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      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, the fsGroup (if specified),
                                    and group memberships defined in the container
                                    image for the uid of the container process. If
                                    unspecified, no additional groups are 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.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.
                                    If set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is linux.
                                  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. Setting this field without the
                                        feature flag will result in errors when validating
                                        the Pod.
                                      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.
                                        If set in both SecurityContext and PodSecurityContext,
                                        the value specified in SecurityContext takes
                                        precedence.
                                      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). In Linux containers, this means setting
                                the FQDN in the hostname field of the kernel (the
                                nodename field of struct utsname).
                              type: boolean
                            shareProcessNamespace:
                              description: 'Share a single process namespace between
                                all of the containers in a pod. When this is set containers
                                will be able to view and signal processes from other
                                containers in the same pod, and the first process
                                in each container will not be assigned PID 1. HostPID
                                and ShareProcessNamespace cannot both be set. Optional:
                                Default to false.'
                              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. The value
                                zero indicates stop immediately via the kill signal
                                (no opportunity to shut down). If this value is nil,
                                the default grace period will be used instead.
                              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. By default, it
                                      is not set, which means tolerate the taint forever
                                      (do not evict). Zero and negative values will
                                      be treated as 0 (evict immediately) by the system.
                                    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. This
                                                array is replaced during a strategic
                                                merge patch.
                                              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. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: MatchLabelKeys is a set of pod label
                                      keys to select the pods over which spreading
                                      will be calculated. The keys are used to lookup
                                      values from the incoming pod labels, those key-value
                                      labels are ANDed with labelSelector to select
                                      the group of existing pods over which spreading
                                      will be calculated for the incoming pod. The
                                      same key is forbidden to exist in both MatchLabelKeys
                                      and LabelSelector.
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  maxSkew:
                                    description: MaxSkew describes the degree to which
                                      pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
                                      it is the maximum permitted difference between
                                      the number of matching pods in the target topology
                                      and the global minimum. The global minimum is
                                      the minimum number of matching pods in an eligible
                                      domain or zero if the number of eligible domains
                                      is less than MinDomains.
                                    format: int32
                                    type: integer
                                  minDomains:
                                    description: MinDomains indicates a minimum number
                                      of eligible domains. When the number of eligible
                                      domains with matching topology keys is less
                                      than minDomains, Pod Topology Spread treats
                                      "global minimum" as 0, and then the calculation
                                      of Skew is performed. And when the number of
                                      eligible domains with matching topology keys
                                      equals or greater than minDomains, this value
                                      has no effect on scheduling.
                                    format: int32
                                    type: integer
                                  nodeAffinityPolicy:
                                    description: "NodeAffinityPolicy indicates how
                                      we will treat Pod's nodeAffinity/nodeSelector
                                      when calculating pod topology spread skew. Options
                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector
                                      are included in the calculations. - Ignore:
                                      nodeAffinity/nodeSelector are ignored. All nodes
                                      are included in the calculations. \n If this
                                      value is nil, the behavior is equivalent to
                                      the Honor policy."
                                    type: string
                                  nodeTaintsPolicy:
                                    description: "NodeTaintsPolicy indicates how we
                                      will treat node taints when calculating pod
                                      topology spread skew. Options are: - Honor:
                                      nodes without taints, along with tainted nodes
                                      for which the incoming pod has a toleration,
                                      are included. - Ignore: node taints are ignored.
                                      All nodes are included. \n If this value is
                                      nil, the behavior is equivalent to the Ignore
                                      policy."
                                    type: string
                                  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.
                                      We consider each <key, value> as a "bucket",
                                      and try to put balanced number of pods into
                                      each bucket. We define a domain as a particular
                                      instance of a 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. - ScheduleAnyway
                                      tells the scheduler to schedule the pod in any
                                      location, but giving higher precedence to topologies
                                      that would help reduce the skew.
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty).'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly value true will force
                                          the readOnly setting in VolumeMounts. More
                                          info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                        type: boolean
                                      volumeID:
                                        description: 'volumeID is 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: 'cachingMode is the Host Caching
                                          mode: None, Read Only, Read Write.'
                                        type: string
                                      diskName:
                                        description: diskName is the Name of the data
                                          disk in the blob storage
                                        type: string
                                      diskURI:
                                        description: diskURI is the URI of data disk
                                          in the blob storage
                                        type: string
                                      fsType:
                                        description: fsType is 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: 'kind expected values are 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: readOnly 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: readOnly defaults to false (read/write).
                                          ReadOnly here will force the ReadOnly setting
                                          in VolumeMounts.
                                        type: boolean
                                      secretName:
                                        description: secretName is the  name of secret
                                          that contains Azure Storage Account Name
                                          and Key
                                        type: string
                                      shareName:
                                        description: shareName is the azure 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: 'monitors is 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: 'path is Optional: Used as the
                                          mounted root, rather than the full Ceph
                                          tree, default is /'
                                        type: string
                                      readOnly:
                                        description: 'readOnly is 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: 'secretFile is 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://examples.k8s.io/mysql-cinder-pd/README.md'
                                        type: string
                                      readOnly:
                                        description: 'readOnly 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      volumeID:
                                        description: 'volumeID 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items if unspecified, each key-value
                                          pair in the Data field of the referenced
                                          ConfigMap will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional specify whether the
                                          ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: fsType to mount. Ex. "ext4",
                                          "xfs", "ntfs". If not provided, the empty
                                          value is passed to the associated CSI driver
                                          which will determine the default filesystem
                                          to apply.
                                        type: string
                                      nodePublishSecretRef:
                                        description: nodePublishSecretRef is a reference
                                          to the secret object containing sensitive
                                          information to pass to the CSI driver to
                                          complete the CSI NodePublishVolume and NodeUnpublishVolume
                                          calls. This field is optional, and  may
                                          be empty if no secret is required. If the
                                          secret object contains more than one secret,
                                          all secret references are passed.
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      readOnly:
                                        description: readOnly 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. Must be an octal value
                                          between 0000 and 0777 or a decimal value
                                          between 0 and 511. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        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
                                              x-kubernetes-map-type: atomic
                                            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. YAML accepts both octal and
                                                decimal values, JSON requires decimal
                                                values for mode bits. If not specified,
                                                the volume defaultMode will be used.'
                                              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
                                              x-kubernetes-map-type: atomic
                                          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: 'medium represents what type
                                          of storage medium should back this directory.
                                          The default is "" which means to use the
                                          node''s default medium. Must be an empty
                                          string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                        type: string
                                      sizeLimit:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'sizeLimit is the total amount
                                          of local storage required for this EmptyDir
                                          volume. The size limit is also applicable
                                          for memory medium. The maximum usage on
                                          memory medium EmptyDir would be the minimum
                                          value between the SizeLimit specified here
                                          and the sum of memory limits of all containers
                                          in a pod. The default is nil which means
                                          that the limit is undefined. More info:
                                          https://kubernetes.'
                                        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.  The
                                          name of the PVC will be `<pod name>-<volume
                                          name>` where `<volume name>` is the name
                                          from the `PodSpec.Volumes` array entry.
                                        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.
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              finalizers:
                                                items:
                                                  type: string
                                                type: array
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              name:
                                                type: string
                                              namespace:
                                                type: string
                                            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: 'dataSource field can
                                                  be used to specify either: * An
                                                  existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                                  * An existing PVC (PersistentVolumeClaim)
                                                  If the provisioner or an external
                                                  controller can support the specified
                                                  data source, it will create a new
                                                  volume based on the contents of
                                                  the specified data source.'
                                                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
                                                x-kubernetes-map-type: atomic
                                              dataSourceRef:
                                                description: dataSourceRef specifies
                                                  the object from which to populate
                                                  the volume with data, if a non-empty
                                                  volume is desired. This may be any
                                                  object from a non-empty API group
                                                  (non core object) or a PersistentVolumeClaim
                                                  object. When this field is specified,
                                                  volume binding will only succeed
                                                  if the type of the specified object
                                                  matches some installed volume populator
                                                  or dynamic provisioner.
                                                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
                                                  namespace:
                                                    description: Namespace is the
                                                      namespace of resource being
                                                      referenced Note that when a
                                                      namespace is specified, a gateway.networking.k8s.io/ReferenceGrant
                                                      object is required in the referent
                                                      namespace to allow that namespace's
                                                      owner to accept the reference.
                                                      See the ReferenceGrant documentation
                                                      for details. (Alpha) This field
                                                      requires the CrossNamespaceVolumeDataSource
                                                      feature gate to be enabled.
                                                    type: string
                                                required:
                                                - kind
                                                - name
                                                type: object
                                              resources:
                                                description: 'resources represents
                                                  the minimum resources the volume
                                                  should have. If RecoverVolumeExpansionFailure
                                                  feature is enabled users are allowed
                                                  to specify resource requirements
                                                  that are lower than previous value
                                                  but must still be higher than capacity
                                                  recorded in the status field of
                                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                                properties:
                                                  claims:
                                                    description: "Claims lists the
                                                      names of resources, defined
                                                      in spec.resourceClaims, that
                                                      are used by this container.
                                                      \n This is an alpha field and
                                                      requires enabling the DynamicResourceAllocation
                                                      feature gate. \n This field
                                                      is immutable. It can only be
                                                      set for containers."
                                                    items:
                                                      description: ResourceClaim references
                                                        one entry in PodSpec.ResourceClaims.
                                                      properties:
                                                        name:
                                                          description: Name must match
                                                            the name of one entry
                                                            in pod.spec.resourceClaims
                                                            of the Pod where this
                                                            field is used. It makes
                                                            that resource available
                                                            inside a container.
                                                          type: string
                                                      required:
                                                      - name
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-map-keys:
                                                    - name
                                                    x-kubernetes-list-type: map
                                                  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. Requests cannot exceed
                                                      Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                    type: object
                                                type: object
                                              selector:
                                                description: selector is 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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              storageClassName:
                                                description: 'storageClassName is
                                                  the 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Ex. "ext4",
                                          "xfs", "ntfs". Implicitly inferred to be
                                          "ext4" if unspecified. TODO: how do we prevent
                                          errors in the filesystem from compromising
                                          the machine'
                                        type: string
                                      lun:
                                        description: 'lun is Optional: FC target lun
                                          number'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly is Optional: Defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      targetWWNs:
                                        description: 'targetWWNs is Optional: FC target
                                          worldwide names (WWNs)'
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        description: 'wwids 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: fsType is the 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: 'options is Optional: this field
                                          holds extra command options if any.'
                                        type: object
                                      readOnly:
                                        description: 'readOnly is Optional: defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      secretRef:
                                        description: 'secretRef is Optional: secretRef
                                          is reference to the secret object containing
                                          sensitive information to pass to the plugin
                                          scripts. This may be empty if no secret
                                          object is specified. If the secret object
                                          contains more than one secret, all secrets
                                          are passed to the plugin scripts.'
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    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: datasetName is Name of the dataset
                                          stored as metadata -> name on the dataset
                                          for Flocker should be considered as deprecated
                                        type: string
                                      datasetUUID:
                                        description: datasetUUID is the 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: 'fsType is filesystem type of
                                          the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        format: int32
                                        type: integer
                                      pdName:
                                        description: 'pdName is unique name of the
                                          PD resource in GCE. Used to identify the
                                          disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          ReadOnly setting in VolumeMounts. Defaults
                                          to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    description: 'gitRepo represents a git repository
                                      at a particular revision. DEPRECATED: GitRepo
                                      is deprecated. To provision a container with
                                      a git repo, mount an EmptyDir into an InitContainer
                                      that clones the repo using git, then mount the
                                      EmptyDir into the Pod''s container.'
                                    properties:
                                      directory:
                                        description: directory is the target directory
                                          name. Must not contain or start with '..'.  If
                                          '.' is supplied, the volume directory will
                                          be the git repository.  Otherwise, if specified,
                                          the volume will contain the git repository
                                          in the subdirectory with the given name.
                                        type: string
                                      repository:
                                        description: repository is the URL
                                        type: string
                                      revision:
                                        description: revision is the 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: 'endpoints is the endpoint name
                                          that details Glusterfs topology. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      path:
                                        description: 'path is the Glusterfs volume
                                          path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          Glusterfs volume to be mounted with read-only
                                          permissions. Defaults to false. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    description: 'hostPath represents a pre-existing
                                      file or directory on the host machine that is
                                      directly exposed to the container. This is generally
                                      used for system agents or other privileged things
                                      that are allowed to see the host machine. Most
                                      containers will NOT need this. More info: https://kubernetes.'
                                    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: chapAuthDiscovery defines whether
                                          support iSCSI Discovery CHAP authentication
                                        type: boolean
                                      chapAuthSession:
                                        description: chapAuthSession defines whether
                                          support iSCSI Session CHAP authentication
                                        type: boolean
                                      fsType:
                                        description: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      initiatorName:
                                        description: initiatorName is the 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: iqn is the target iSCSI Qualified
                                          Name.
                                        type: string
                                      iscsiInterface:
                                        description: iscsiInterface is the interface
                                          Name that uses an iSCSI transport. Defaults
                                          to 'default' (tcp).
                                        type: string
                                      lun:
                                        description: lun represents iSCSI Target Lun
                                          number.
                                        format: int32
                                        type: integer
                                      portals:
                                        description: portals is the 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: secretRef is the 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
                                        x-kubernetes-map-type: atomic
                                      targetPortal:
                                        description: targetPortal is 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: 'name of the volume. 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: readOnly 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: fsType is the 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: pdID is the 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: readOnly 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: projected items for all in one resources
                                      secrets, configmaps, and downward API
                                    properties:
                                      defaultMode:
                                        description: defaultMode are the 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. YAML accepts both octal and decimal
                                          values, JSON requires decimal values for
                                          mode bits. Directories within the path are
                                          not affected by this setting.
                                        format: int32
                                        type: integer
                                      sources:
                                        description: sources is the list of volume
                                          projections
                                        items:
                                          description: Projection that may be projected
                                            along with other supported volume types
                                          properties:
                                            configMap:
                                              description: configMap information about
                                                the configMap data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced ConfigMap
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional specify whether
                                                    the ConfigMap or its keys must
                                                    be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            downwardAPI:
                                              description: downwardAPI 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
                                                        x-kubernetes-map-type: atomic
                                                      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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        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
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              description: secret information about
                                                the secret data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced Secret
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional field specify
                                                    whether the Secret or its key
                                                    must be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            serviceAccountToken:
                                              description: serviceAccountToken is
                                                information about the serviceAccountToken
                                                data to project
                                              properties:
                                                audience:
                                                  description: audience is the intended
                                                    audience of the token. A recipient
                                                    of a token must identify itself
                                                    with an identifier specified in
                                                    the audience of the token, and
                                                    otherwise should reject the token.
                                                    The audience defaults to the identifier
                                                    of the apiserver.
                                                  type: string
                                                expirationSeconds:
                                                  description: expirationSeconds is
                                                    the requested duration of validity
                                                    of the service account token.
                                                    As the token approaches expiration,
                                                    the kubelet volume plugin will
                                                    proactively rotate the service
                                                    account token. The kubelet will
                                                    start trying to rotate the token
                                                    if the token is older than 80
                                                    percent of its time to live or
                                                    if the token is older than 24
                                                    hours.Defaults to 1 hour and must
                                                    be at least 10 minutes.
                                                  format: int64
                                                  type: integer
                                                path:
                                                  description: path is the path relative
                                                    to the mount point of the file
                                                    to project the token into.
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      image:
                                        description: 'image is 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: 'monitors is 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: 'pool is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: fsType is the 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: gateway is the host address of
                                          the ScaleIO API Gateway.
                                        type: string
                                      protectionDomain:
                                        description: protectionDomain is the name
                                          of the ScaleIO Protection Domain for the
                                          configured storage.
                                        type: string
                                      readOnly:
                                        description: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      sslEnabled:
                                        description: sslEnabled Flag enable/disable
                                          SSL communication with Gateway, default
                                          false
                                        type: boolean
                                      storageMode:
                                        description: storageMode indicates whether
                                          the storage for a volume should be ThickProvisioned
                                          or ThinProvisioned. Default is ThinProvisioned.
                                        type: string
                                      storagePool:
                                        description: storagePool is the ScaleIO Storage
                                          Pool associated with the protection domain.
                                        type: string
                                      system:
                                        description: system is the name of the storage
                                          system as configured in ScaleIO.
                                        type: string
                                      volumeName:
                                        description: volumeName is 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items If unspecified, each key-value
                                          pair in the Data field of the referenced
                                          Secret will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional field specify whether
                                          the Secret or its keys must be defined
                                        type: boolean
                                      secretName:
                                        description: 'secretName is the 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: fsType is the 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: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      volumeName:
                                        description: volumeName is the human-readable
                                          name of the StorageOS volume.  Volume names
                                          are only unique within a namespace.
                                        type: string
                                      volumeNamespace:
                                        description: volumeNamespace specifies the
                                          scope of the volume within StorageOS.  If
                                          no namespace is specified then the Pod's
                                          namespace will be used.  This allows the
                                          Kubernetes name scoping to be mirrored within
                                          StorageOS for tighter integration. Set VolumeName
                                          to any name to override the default behaviour.
                                          Set to "default" if you are not using namespaces
                                          within StorageOS.
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    description: vsphereVolume represents a vSphere
                                      volume attached and mounted on kubelets host
                                      machine
                                    properties:
                                      fsType:
                                        description: fsType is 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: storagePolicyID is the storage
                                          Policy Based Management (SPBM) profile ID
                                          associated with the StoragePolicyName.
                                        type: string
                                      storagePolicyName:
                                        description: storagePolicyName is the storage
                                          Policy Based Management (SPBM) profile name.
                                        type: string
                                      volumePath:
                                        description: volumePath is the path that identifies
                                          vSphere volume vmdk
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  type: object
                description: '`MPIReplicaSpecs` contains maps from `MPIReplicaType`
                  to `ReplicaSpec` that specify the MPI replicas to run.'
                type: object
              runPolicy:
                description: '`RunPolicy` encapsulates various runtime policies of
                  the distributed training job, for example how to clean up resources
                  and how long the job can stay active.'
                properties:
                  activeDeadlineSeconds:
                    description: Specifies the duration in seconds relative to the
                      startTime that the job may be active before the system tries
                      to terminate it; value must be positive integer.
                    format: int64
                    type: integer
                  backoffLimit:
                    description: Optional number of retries before marking this job
                      failed.
                    format: int32
                    type: integer
                  cleanPodPolicy:
                    description: CleanPodPolicy defines the policy to kill pods after
                      the job completes. Default to None.
                    type: string
                  schedulingPolicy:
                    description: SchedulingPolicy defines the policy related to scheduling,
                      e.g. gang-scheduling
                    properties:
                      minAvailable:
                        format: int32
                        type: integer
                      minResources:
                        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
                        type: object
                      priorityClass:
                        type: string
                      queue:
                        type: string
                      scheduleTimeoutSeconds:
                        format: int32
                        type: integer
                    type: object
                  suspend:
                    default: false
                    description: suspend specifies whether the Job controller should
                      create Pods or not. If a Job is created with suspend set to
                      true, no Pods are created by the Job controller. If a Job is
                      suspended after creation (i.e. the flag goes from false to true),
                      the Job controller will delete all active Pods and PodGroups
                      associated with this Job. Users must design their workload to
                      gracefully handle this.
                    type: boolean
                  ttlSecondsAfterFinished:
                    description: TTLSecondsAfterFinished is the TTL to clean up jobs.
                      It may take extra ReconcilePeriod seconds for the cleanup, since
                      reconcile gets called periodically. Default to infinite.
                    format: int32
                    type: integer
                type: object
              slotsPerWorker:
                description: Specifies the number of slots per worker used in hostfile.
                  Defaults to 1.
                format: int32
                type: integer
            required:
            - mpiReplicaSpecs
            type: object
          status:
            description: JobStatus represents the current observed state of the training
              Job.
            properties:
              completionTime:
                description: Represents time when the job was completed. It is not
                  guaranteed to be set in happens-before order across separate operations.
                  It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              conditions:
                description: Conditions is an array of current observed job conditions.
                items:
                  description: JobCondition describes the state of the job at a certain
                    point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of job condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              lastReconcileTime:
                description: Represents last time when the job was reconciled. It
                  is not guaranteed to be set in happens-before order across separate
                  operations. It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              replicaStatuses:
                additionalProperties:
                  description: ReplicaStatus represents the current observed state
                    of the replica.
                  properties:
                    active:
                      description: The number of actively running pods.
                      format: int32
                      type: integer
                    failed:
                      description: The number of pods which reached phase Failed.
                      format: int32
                      type: integer
                    labelSelector:
                      description: 'Deprecated: Use Selector instead'
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    selector:
                      description: A Selector is a label query over a set of resources.
                        The result of matchLabels and matchExpressions are ANDed.
                        An empty Selector matches all objects. A null Selector matches
                        no objects.
                      type: string
                    succeeded:
                      description: The number of pods which reached phase Succeeded.
                      format: int32
                      type: integer
                  type: object
                description: ReplicaStatuses is map of ReplicaType and ReplicaStatus,
                  specifies the status of each replica.
                type: object
              startTime:
                description: Represents time when the job was acknowledged by the
                  job controller. It is not guaranteed to be set in happens-before
                  order across separate operations. It is represented in RFC3339 form
                  and is in UTC.
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: mxjobs.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: MXJob
    listKind: MXJobList
    plural: mxjobs
    singular: mxjob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: State
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: MXJob is the Schema for the mxjobs API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: MXJobSpec defines the desired state of MXJob
            properties:
              jobMode:
                description: JobMode specify the kind of MXjob to do. Different mode
                  may have different MXReplicaSpecs request
                type: string
              mxReplicaSpecs:
                additionalProperties:
                  description: ReplicaSpec is a description of the replica
                  properties:
                    replicas:
                      description: Replicas is the desired number of replicas of the
                        given template. If unspecified, defaults to 1.
                      format: int32
                      type: integer
                    restartPolicy:
                      description: Restart policy for all replicas within the job.
                        One of Always, OnFailure, Never and ExitCode. Default to Never.
                      type: string
                    template:
                      description: Template is the object that describes the pod that
                        will be created for this replica. RestartPolicy in PodTemplateSpec
                        will be overide by RestartPolicy in ReplicaSpec
                      properties:
                        metadata:
                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'Specification of the desired behavior of the
                            pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                          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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to an update), the
                                        system may or may not try to eventually evict
                                        the pod from its 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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to a pod label update),
                                        the system may or may not try to eventually
                                        evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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. The node that is most
                                        preferred is the one with the greatest sum
                                        of weights, i.e.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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. If the anti-affinity requirements specified
                                        by this field cease to be met at some point
                                        during pod execution (e.g. due to a pod label
                                        update), the system may or may not try to
                                        eventually evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.
                                    Resolution options given in Options will override
                                    those that appear in the base DNSPolicy.
                                  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'. DNS parameters
                                given in DNSConfig will be merged with the policy
                                selected with DNSPolicy. To have DNS options set along
                                with hostNetwork, you have to specify DNS policy explicitly
                                to 'ClusterFirstWithHostNet'.
                              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.
                                This list cannot be specified when creating a pod,
                                and it cannot be modified by updating the pod spec.
                                In order to add an ephemeral container to an existing
                                pod, use the pod's ephemeralcontainers subresource.
                              items:
                                description: An EphemeralContainer is a temporary
                                  container that you may add to an existing Pod for
                                  user-initiated activities such as debugging. Ephemeral
                                  containers have no resource or scheduling guarantees,
                                  and they will not be restarted when they exit or
                                  when a Pod is removed or restarted. The kubelet
                                  may evict a Pod if an ephemeral container causes
                                  the Pod to exceed its resource allocation.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      image''s CMD is used if this is not provided.
                                      Variable references $(VAR_NAME) are expanded
                                      using the container''s environment. If a variable
                                      cannot be resolved, the reference in the input
                                      string will be unchanged. Double $$ are reduced
                                      to a single $, which allows for escaping the
                                      $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                                      produce the string literal "$(VAR_NAME)".'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The image''s ENTRYPOINT is used if
                                      this is not provided. Variable references $(VAR_NAME)
                                      are expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container 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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: Resources are not allowed for ephemeral
                                      containers. Ephemeral containers use spare resources
                                      already allocated to the pod.
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. If not set
                                      then the ephemeral container uses the namespaces
                                      configured in the Pod spec. \n The container
                                      runtime must implement support for this feature."
                                    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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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. Subpath mounts are not allowed for
                                      ephemeral containers. 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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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
                            hostUsers:
                              description: 'Use the host''s user namespace. Optional:
                                Default to true. If set to true or not present, the
                                pod will be run in the host user namespace, useful
                                for when the pod needs a feature only available to
                                the host user namespace, such as loading a kernel
                                module with CAP_SYS_MODULE. When set to false, a new
                                userns is created for the pod.'
                              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.
                                If specified, these secrets will be passed to individual
                                puller implementations for them to use. More info:
                                https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                              items:
                                description: LocalObjectReference contains enough
                                  information to let you locate the referenced object
                                  inside the same namespace.
                                properties:
                                  name:
                                    description: 'Name of the referent. 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
                                x-kubernetes-map-type: atomic
                              type: array
                            initContainers:
                              description: List of initialization containers belonging
                                to the pod. Init containers are executed in order
                                prior to containers being started. If any init container
                                fails, the pod is considered to have failed and is
                                handled according to its restartPolicy. The name for
                                an init container or normal container must be unique
                                among all containers.
                              items:
                                description: A single application container that you
                                  want to run within a pod.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.io/docs/concepts/configuration/assign-pod-node/'
                              type: object
                              x-kubernetes-map-type: atomic
                            os:
                              description: "Specifies the OS of the containers in
                                the pod. Some pod and container fields are restricted
                                if this is set. \n If the OS field is set to linux,
                                the following fields must be unset: -securityContext.windowsOptions
                                \n If the OS field is set to windows, following fields
                                must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers
                                - spec.securityContext.seLinuxOptions - spec.securityContext."
                              properties:
                                name:
                                  description: 'Name is the name of the operating
                                    system. The currently supported values are linux
                                    and windows. Additional value may be defined in
                                    future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
                                    Clients should expect to handle additional values
                                    and treat unrecognized values in this field as
                                    os: null'
                                  type: string
                              required:
                              - name
                              type: object
                            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. If the RuntimeClass
                                admission controller is enabled, overhead must not
                                be set in Pod create requests. The RuntimeClass admission
                                controller will reject Pod create requests which have
                                the overhead already set.
                              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. The admission controller
                                populates this field from PriorityClassName. The higher
                                the value, the higher the priority.
                              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.
                                Any other name must be defined by creating a PriorityClass
                                object with that name. If not specified, the pod priority
                                will be default or zero if there is no default.
                              type: string
                            readinessGates:
                              description: 'If specified, all readiness gates will
                                be evaluated for pod readiness. A pod is ready when
                                all its containers are ready AND all conditions specified
                                in the readiness gates have status equal to "True"
                                More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates'
                              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
                            resourceClaims:
                              description: "ResourceClaims defines which ResourceClaims
                                must be allocated and reserved before the Pod is allowed
                                to start. The resources will be made available to
                                those containers which consume them by name. \n This
                                is an alpha field and requires enabling the DynamicResourceAllocation
                                feature gate. \n This field is immutable."
                              items:
                                description: PodResourceClaim references exactly one
                                  ResourceClaim through a ClaimSource. It adds a name
                                  to it that uniquely identifies the ResourceClaim
                                  inside the Pod. Containers that need access to the
                                  ResourceClaim reference it with this name.
                                properties:
                                  name:
                                    description: Name uniquely identifies this resource
                                      claim inside the pod. This must be a DNS_LABEL.
                                    type: string
                                  source:
                                    description: Source describes where to find the
                                      ResourceClaim.
                                    properties:
                                      resourceClaimName:
                                        description: ResourceClaimName is the name
                                          of a ResourceClaim object in the same namespace
                                          as this pod.
                                        type: string
                                      resourceClaimTemplateName:
                                        description: "ResourceClaimTemplateName is
                                          the name of a ResourceClaimTemplate object
                                          in the same namespace as this pod. \n The
                                          template will be used to create a new ResourceClaim,
                                          which will be bound to this pod. When this
                                          pod is deleted, the ResourceClaim will also
                                          be deleted. The name of the ResourceClaim
                                          will be <pod name>-<resource name>, where
                                          <resource name> is the PodResourceClaim.Name."
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            restartPolicy:
                              description: 'Restart policy for all containers within
                                the pod. One of Always, OnFailure, Never. In some
                                contexts, only a subset of those values may be permitted.
                                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. If unset
                                or empty, the "legacy" RuntimeClass will be used,
                                which is an implicit class with an empty definition
                                that uses the default runtime handler. More info:
                                https://git.k8s.'
                              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
                            schedulingGates:
                              description: "SchedulingGates is an opaque list of values
                                that if specified will block scheduling the pod. If
                                schedulingGates is not empty, the pod will stay in
                                the SchedulingGated state and the scheduler will not
                                attempt to schedule the pod. \n SchedulingGates can
                                only be set at pod creation time, and be removed only
                                afterwards. \n This is a beta feature enabled by the
                                PodSchedulingReadiness feature gate."
                              items:
                                description: PodSchedulingGate is associated to a
                                  Pod to guard its scheduling.
                                properties:
                                  name:
                                    description: Name of the scheduling gate. Each
                                      scheduling gate must have a unique name field.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            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. The setgid bit
                                    is set (new files created in the volume will be
                                    owned by FSGroup) 3."
                                  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). It will have
                                    no effect on ephemeral volume types such as: secret,
                                    configmaps and emptydir. Valid values are "OnRootMismatch"
                                    and "Always". If not specified, "Always" is used.'
                                  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.  If set in
                                    both SecurityContext and PodSecurityContext, the
                                    value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in SecurityContext.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence for that container.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.  If
                                    set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. Note that this field cannot be set
                                    when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      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, the fsGroup (if specified),
                                    and group memberships defined in the container
                                    image for the uid of the container process. If
                                    unspecified, no additional groups are 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.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.
                                    If set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is linux.
                                  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. Setting this field without the
                                        feature flag will result in errors when validating
                                        the Pod.
                                      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.
                                        If set in both SecurityContext and PodSecurityContext,
                                        the value specified in SecurityContext takes
                                        precedence.
                                      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). In Linux containers, this means setting
                                the FQDN in the hostname field of the kernel (the
                                nodename field of struct utsname).
                              type: boolean
                            shareProcessNamespace:
                              description: 'Share a single process namespace between
                                all of the containers in a pod. When this is set containers
                                will be able to view and signal processes from other
                                containers in the same pod, and the first process
                                in each container will not be assigned PID 1. HostPID
                                and ShareProcessNamespace cannot both be set. Optional:
                                Default to false.'
                              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. The value
                                zero indicates stop immediately via the kill signal
                                (no opportunity to shut down). If this value is nil,
                                the default grace period will be used instead.
                              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. By default, it
                                      is not set, which means tolerate the taint forever
                                      (do not evict). Zero and negative values will
                                      be treated as 0 (evict immediately) by the system.
                                    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. This
                                                array is replaced during a strategic
                                                merge patch.
                                              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. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: MatchLabelKeys is a set of pod label
                                      keys to select the pods over which spreading
                                      will be calculated. The keys are used to lookup
                                      values from the incoming pod labels, those key-value
                                      labels are ANDed with labelSelector to select
                                      the group of existing pods over which spreading
                                      will be calculated for the incoming pod. The
                                      same key is forbidden to exist in both MatchLabelKeys
                                      and LabelSelector.
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  maxSkew:
                                    description: MaxSkew describes the degree to which
                                      pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
                                      it is the maximum permitted difference between
                                      the number of matching pods in the target topology
                                      and the global minimum. The global minimum is
                                      the minimum number of matching pods in an eligible
                                      domain or zero if the number of eligible domains
                                      is less than MinDomains.
                                    format: int32
                                    type: integer
                                  minDomains:
                                    description: MinDomains indicates a minimum number
                                      of eligible domains. When the number of eligible
                                      domains with matching topology keys is less
                                      than minDomains, Pod Topology Spread treats
                                      "global minimum" as 0, and then the calculation
                                      of Skew is performed. And when the number of
                                      eligible domains with matching topology keys
                                      equals or greater than minDomains, this value
                                      has no effect on scheduling.
                                    format: int32
                                    type: integer
                                  nodeAffinityPolicy:
                                    description: "NodeAffinityPolicy indicates how
                                      we will treat Pod's nodeAffinity/nodeSelector
                                      when calculating pod topology spread skew. Options
                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector
                                      are included in the calculations. - Ignore:
                                      nodeAffinity/nodeSelector are ignored. All nodes
                                      are included in the calculations. \n If this
                                      value is nil, the behavior is equivalent to
                                      the Honor policy."
                                    type: string
                                  nodeTaintsPolicy:
                                    description: "NodeTaintsPolicy indicates how we
                                      will treat node taints when calculating pod
                                      topology spread skew. Options are: - Honor:
                                      nodes without taints, along with tainted nodes
                                      for which the incoming pod has a toleration,
                                      are included. - Ignore: node taints are ignored.
                                      All nodes are included. \n If this value is
                                      nil, the behavior is equivalent to the Ignore
                                      policy."
                                    type: string
                                  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.
                                      We consider each <key, value> as a "bucket",
                                      and try to put balanced number of pods into
                                      each bucket. We define a domain as a particular
                                      instance of a 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. - ScheduleAnyway
                                      tells the scheduler to schedule the pod in any
                                      location, but giving higher precedence to topologies
                                      that would help reduce the skew.
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty).'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly value true will force
                                          the readOnly setting in VolumeMounts. More
                                          info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                        type: boolean
                                      volumeID:
                                        description: 'volumeID is 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: 'cachingMode is the Host Caching
                                          mode: None, Read Only, Read Write.'
                                        type: string
                                      diskName:
                                        description: diskName is the Name of the data
                                          disk in the blob storage
                                        type: string
                                      diskURI:
                                        description: diskURI is the URI of data disk
                                          in the blob storage
                                        type: string
                                      fsType:
                                        description: fsType is 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: 'kind expected values are 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: readOnly 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: readOnly defaults to false (read/write).
                                          ReadOnly here will force the ReadOnly setting
                                          in VolumeMounts.
                                        type: boolean
                                      secretName:
                                        description: secretName is the  name of secret
                                          that contains Azure Storage Account Name
                                          and Key
                                        type: string
                                      shareName:
                                        description: shareName is the azure 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: 'monitors is 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: 'path is Optional: Used as the
                                          mounted root, rather than the full Ceph
                                          tree, default is /'
                                        type: string
                                      readOnly:
                                        description: 'readOnly is 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: 'secretFile is 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://examples.k8s.io/mysql-cinder-pd/README.md'
                                        type: string
                                      readOnly:
                                        description: 'readOnly 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      volumeID:
                                        description: 'volumeID 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items if unspecified, each key-value
                                          pair in the Data field of the referenced
                                          ConfigMap will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional specify whether the
                                          ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: fsType to mount. Ex. "ext4",
                                          "xfs", "ntfs". If not provided, the empty
                                          value is passed to the associated CSI driver
                                          which will determine the default filesystem
                                          to apply.
                                        type: string
                                      nodePublishSecretRef:
                                        description: nodePublishSecretRef is a reference
                                          to the secret object containing sensitive
                                          information to pass to the CSI driver to
                                          complete the CSI NodePublishVolume and NodeUnpublishVolume
                                          calls. This field is optional, and  may
                                          be empty if no secret is required. If the
                                          secret object contains more than one secret,
                                          all secret references are passed.
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      readOnly:
                                        description: readOnly 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. Must be an octal value
                                          between 0000 and 0777 or a decimal value
                                          between 0 and 511. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        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
                                              x-kubernetes-map-type: atomic
                                            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. YAML accepts both octal and
                                                decimal values, JSON requires decimal
                                                values for mode bits. If not specified,
                                                the volume defaultMode will be used.'
                                              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
                                              x-kubernetes-map-type: atomic
                                          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: 'medium represents what type
                                          of storage medium should back this directory.
                                          The default is "" which means to use the
                                          node''s default medium. Must be an empty
                                          string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                        type: string
                                      sizeLimit:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'sizeLimit is the total amount
                                          of local storage required for this EmptyDir
                                          volume. The size limit is also applicable
                                          for memory medium. The maximum usage on
                                          memory medium EmptyDir would be the minimum
                                          value between the SizeLimit specified here
                                          and the sum of memory limits of all containers
                                          in a pod. The default is nil which means
                                          that the limit is undefined. More info:
                                          https://kubernetes.'
                                        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.  The
                                          name of the PVC will be `<pod name>-<volume
                                          name>` where `<volume name>` is the name
                                          from the `PodSpec.Volumes` array entry.
                                        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.
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              finalizers:
                                                items:
                                                  type: string
                                                type: array
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              name:
                                                type: string
                                              namespace:
                                                type: string
                                            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: 'dataSource field can
                                                  be used to specify either: * An
                                                  existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                                  * An existing PVC (PersistentVolumeClaim)
                                                  If the provisioner or an external
                                                  controller can support the specified
                                                  data source, it will create a new
                                                  volume based on the contents of
                                                  the specified data source.'
                                                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
                                                x-kubernetes-map-type: atomic
                                              dataSourceRef:
                                                description: dataSourceRef specifies
                                                  the object from which to populate
                                                  the volume with data, if a non-empty
                                                  volume is desired. This may be any
                                                  object from a non-empty API group
                                                  (non core object) or a PersistentVolumeClaim
                                                  object. When this field is specified,
                                                  volume binding will only succeed
                                                  if the type of the specified object
                                                  matches some installed volume populator
                                                  or dynamic provisioner.
                                                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
                                                  namespace:
                                                    description: Namespace is the
                                                      namespace of resource being
                                                      referenced Note that when a
                                                      namespace is specified, a gateway.networking.k8s.io/ReferenceGrant
                                                      object is required in the referent
                                                      namespace to allow that namespace's
                                                      owner to accept the reference.
                                                      See the ReferenceGrant documentation
                                                      for details. (Alpha) This field
                                                      requires the CrossNamespaceVolumeDataSource
                                                      feature gate to be enabled.
                                                    type: string
                                                required:
                                                - kind
                                                - name
                                                type: object
                                              resources:
                                                description: 'resources represents
                                                  the minimum resources the volume
                                                  should have. If RecoverVolumeExpansionFailure
                                                  feature is enabled users are allowed
                                                  to specify resource requirements
                                                  that are lower than previous value
                                                  but must still be higher than capacity
                                                  recorded in the status field of
                                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                                properties:
                                                  claims:
                                                    description: "Claims lists the
                                                      names of resources, defined
                                                      in spec.resourceClaims, that
                                                      are used by this container.
                                                      \n This is an alpha field and
                                                      requires enabling the DynamicResourceAllocation
                                                      feature gate. \n This field
                                                      is immutable. It can only be
                                                      set for containers."
                                                    items:
                                                      description: ResourceClaim references
                                                        one entry in PodSpec.ResourceClaims.
                                                      properties:
                                                        name:
                                                          description: Name must match
                                                            the name of one entry
                                                            in pod.spec.resourceClaims
                                                            of the Pod where this
                                                            field is used. It makes
                                                            that resource available
                                                            inside a container.
                                                          type: string
                                                      required:
                                                      - name
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-map-keys:
                                                    - name
                                                    x-kubernetes-list-type: map
                                                  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. Requests cannot exceed
                                                      Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                    type: object
                                                type: object
                                              selector:
                                                description: selector is 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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              storageClassName:
                                                description: 'storageClassName is
                                                  the 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Ex. "ext4",
                                          "xfs", "ntfs". Implicitly inferred to be
                                          "ext4" if unspecified. TODO: how do we prevent
                                          errors in the filesystem from compromising
                                          the machine'
                                        type: string
                                      lun:
                                        description: 'lun is Optional: FC target lun
                                          number'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly is Optional: Defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      targetWWNs:
                                        description: 'targetWWNs is Optional: FC target
                                          worldwide names (WWNs)'
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        description: 'wwids 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: fsType is the 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: 'options is Optional: this field
                                          holds extra command options if any.'
                                        type: object
                                      readOnly:
                                        description: 'readOnly is Optional: defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      secretRef:
                                        description: 'secretRef is Optional: secretRef
                                          is reference to the secret object containing
                                          sensitive information to pass to the plugin
                                          scripts. This may be empty if no secret
                                          object is specified. If the secret object
                                          contains more than one secret, all secrets
                                          are passed to the plugin scripts.'
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    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: datasetName is Name of the dataset
                                          stored as metadata -> name on the dataset
                                          for Flocker should be considered as deprecated
                                        type: string
                                      datasetUUID:
                                        description: datasetUUID is the 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: 'fsType is filesystem type of
                                          the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        format: int32
                                        type: integer
                                      pdName:
                                        description: 'pdName is unique name of the
                                          PD resource in GCE. Used to identify the
                                          disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          ReadOnly setting in VolumeMounts. Defaults
                                          to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    description: 'gitRepo represents a git repository
                                      at a particular revision. DEPRECATED: GitRepo
                                      is deprecated. To provision a container with
                                      a git repo, mount an EmptyDir into an InitContainer
                                      that clones the repo using git, then mount the
                                      EmptyDir into the Pod''s container.'
                                    properties:
                                      directory:
                                        description: directory is the target directory
                                          name. Must not contain or start with '..'.  If
                                          '.' is supplied, the volume directory will
                                          be the git repository.  Otherwise, if specified,
                                          the volume will contain the git repository
                                          in the subdirectory with the given name.
                                        type: string
                                      repository:
                                        description: repository is the URL
                                        type: string
                                      revision:
                                        description: revision is the 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: 'endpoints is the endpoint name
                                          that details Glusterfs topology. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      path:
                                        description: 'path is the Glusterfs volume
                                          path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          Glusterfs volume to be mounted with read-only
                                          permissions. Defaults to false. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    description: 'hostPath represents a pre-existing
                                      file or directory on the host machine that is
                                      directly exposed to the container. This is generally
                                      used for system agents or other privileged things
                                      that are allowed to see the host machine. Most
                                      containers will NOT need this. More info: https://kubernetes.'
                                    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: chapAuthDiscovery defines whether
                                          support iSCSI Discovery CHAP authentication
                                        type: boolean
                                      chapAuthSession:
                                        description: chapAuthSession defines whether
                                          support iSCSI Session CHAP authentication
                                        type: boolean
                                      fsType:
                                        description: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      initiatorName:
                                        description: initiatorName is the 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: iqn is the target iSCSI Qualified
                                          Name.
                                        type: string
                                      iscsiInterface:
                                        description: iscsiInterface is the interface
                                          Name that uses an iSCSI transport. Defaults
                                          to 'default' (tcp).
                                        type: string
                                      lun:
                                        description: lun represents iSCSI Target Lun
                                          number.
                                        format: int32
                                        type: integer
                                      portals:
                                        description: portals is the 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: secretRef is the 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
                                        x-kubernetes-map-type: atomic
                                      targetPortal:
                                        description: targetPortal is 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: 'name of the volume. 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: readOnly 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: fsType is the 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: pdID is the 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: readOnly 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: projected items for all in one resources
                                      secrets, configmaps, and downward API
                                    properties:
                                      defaultMode:
                                        description: defaultMode are the 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. YAML accepts both octal and decimal
                                          values, JSON requires decimal values for
                                          mode bits. Directories within the path are
                                          not affected by this setting.
                                        format: int32
                                        type: integer
                                      sources:
                                        description: sources is the list of volume
                                          projections
                                        items:
                                          description: Projection that may be projected
                                            along with other supported volume types
                                          properties:
                                            configMap:
                                              description: configMap information about
                                                the configMap data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced ConfigMap
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional specify whether
                                                    the ConfigMap or its keys must
                                                    be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            downwardAPI:
                                              description: downwardAPI 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
                                                        x-kubernetes-map-type: atomic
                                                      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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        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
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              description: secret information about
                                                the secret data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced Secret
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional field specify
                                                    whether the Secret or its key
                                                    must be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            serviceAccountToken:
                                              description: serviceAccountToken is
                                                information about the serviceAccountToken
                                                data to project
                                              properties:
                                                audience:
                                                  description: audience is the intended
                                                    audience of the token. A recipient
                                                    of a token must identify itself
                                                    with an identifier specified in
                                                    the audience of the token, and
                                                    otherwise should reject the token.
                                                    The audience defaults to the identifier
                                                    of the apiserver.
                                                  type: string
                                                expirationSeconds:
                                                  description: expirationSeconds is
                                                    the requested duration of validity
                                                    of the service account token.
                                                    As the token approaches expiration,
                                                    the kubelet volume plugin will
                                                    proactively rotate the service
                                                    account token. The kubelet will
                                                    start trying to rotate the token
                                                    if the token is older than 80
                                                    percent of its time to live or
                                                    if the token is older than 24
                                                    hours.Defaults to 1 hour and must
                                                    be at least 10 minutes.
                                                  format: int64
                                                  type: integer
                                                path:
                                                  description: path is the path relative
                                                    to the mount point of the file
                                                    to project the token into.
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      image:
                                        description: 'image is 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: 'monitors is 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: 'pool is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: fsType is the 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: gateway is the host address of
                                          the ScaleIO API Gateway.
                                        type: string
                                      protectionDomain:
                                        description: protectionDomain is the name
                                          of the ScaleIO Protection Domain for the
                                          configured storage.
                                        type: string
                                      readOnly:
                                        description: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      sslEnabled:
                                        description: sslEnabled Flag enable/disable
                                          SSL communication with Gateway, default
                                          false
                                        type: boolean
                                      storageMode:
                                        description: storageMode indicates whether
                                          the storage for a volume should be ThickProvisioned
                                          or ThinProvisioned. Default is ThinProvisioned.
                                        type: string
                                      storagePool:
                                        description: storagePool is the ScaleIO Storage
                                          Pool associated with the protection domain.
                                        type: string
                                      system:
                                        description: system is the name of the storage
                                          system as configured in ScaleIO.
                                        type: string
                                      volumeName:
                                        description: volumeName is 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items If unspecified, each key-value
                                          pair in the Data field of the referenced
                                          Secret will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional field specify whether
                                          the Secret or its keys must be defined
                                        type: boolean
                                      secretName:
                                        description: 'secretName is the 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: fsType is the 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: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      volumeName:
                                        description: volumeName is the human-readable
                                          name of the StorageOS volume.  Volume names
                                          are only unique within a namespace.
                                        type: string
                                      volumeNamespace:
                                        description: volumeNamespace specifies the
                                          scope of the volume within StorageOS.  If
                                          no namespace is specified then the Pod's
                                          namespace will be used.  This allows the
                                          Kubernetes name scoping to be mirrored within
                                          StorageOS for tighter integration. Set VolumeName
                                          to any name to override the default behaviour.
                                          Set to "default" if you are not using namespaces
                                          within StorageOS.
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    description: vsphereVolume represents a vSphere
                                      volume attached and mounted on kubelets host
                                      machine
                                    properties:
                                      fsType:
                                        description: fsType is 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: storagePolicyID is the storage
                                          Policy Based Management (SPBM) profile ID
                                          associated with the StoragePolicyName.
                                        type: string
                                      storagePolicyName:
                                        description: storagePolicyName is the storage
                                          Policy Based Management (SPBM) profile name.
                                        type: string
                                      volumePath:
                                        description: volumePath is the path that identifies
                                          vSphere volume vmdk
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  type: object
                description: 'MXReplicaSpecs is map of ReplicaType and ReplicaSpec
                  specifies the MX replicas to run. For example, { "Scheduler": ReplicaSpec,
                  "Server": ReplicaSpec, "Worker": ReplicaSpec, }'
                type: object
              runPolicy:
                description: RunPolicy encapsulates various runtime policies of the
                  distributed training job, for example how to clean up resources
                  and how long the job can stay active.
                properties:
                  activeDeadlineSeconds:
                    description: Specifies the duration in seconds relative to the
                      startTime that the job may be active before the system tries
                      to terminate it; value must be positive integer.
                    format: int64
                    type: integer
                  backoffLimit:
                    description: Optional number of retries before marking this job
                      failed.
                    format: int32
                    type: integer
                  cleanPodPolicy:
                    description: CleanPodPolicy defines the policy to kill pods after
                      the job completes. Default to None.
                    type: string
                  schedulingPolicy:
                    description: SchedulingPolicy defines the policy related to scheduling,
                      e.g. gang-scheduling
                    properties:
                      minAvailable:
                        format: int32
                        type: integer
                      minResources:
                        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
                        type: object
                      priorityClass:
                        type: string
                      queue:
                        type: string
                      scheduleTimeoutSeconds:
                        format: int32
                        type: integer
                    type: object
                  suspend:
                    default: false
                    description: suspend specifies whether the Job controller should
                      create Pods or not. If a Job is created with suspend set to
                      true, no Pods are created by the Job controller. If a Job is
                      suspended after creation (i.e. the flag goes from false to true),
                      the Job controller will delete all active Pods and PodGroups
                      associated with this Job. Users must design their workload to
                      gracefully handle this.
                    type: boolean
                  ttlSecondsAfterFinished:
                    description: TTLSecondsAfterFinished is the TTL to clean up jobs.
                      It may take extra ReconcilePeriod seconds for the cleanup, since
                      reconcile gets called periodically. Default to infinite.
                    format: int32
                    type: integer
                type: object
            required:
            - jobMode
            - mxReplicaSpecs
            type: object
          status:
            description: JobStatus represents the current observed state of the training
              Job.
            properties:
              completionTime:
                description: Represents time when the job was completed. It is not
                  guaranteed to be set in happens-before order across separate operations.
                  It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              conditions:
                description: Conditions is an array of current observed job conditions.
                items:
                  description: JobCondition describes the state of the job at a certain
                    point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of job condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              lastReconcileTime:
                description: Represents last time when the job was reconciled. It
                  is not guaranteed to be set in happens-before order across separate
                  operations. It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              replicaStatuses:
                additionalProperties:
                  description: ReplicaStatus represents the current observed state
                    of the replica.
                  properties:
                    active:
                      description: The number of actively running pods.
                      format: int32
                      type: integer
                    failed:
                      description: The number of pods which reached phase Failed.
                      format: int32
                      type: integer
                    labelSelector:
                      description: 'Deprecated: Use Selector instead'
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    selector:
                      description: A Selector is a label query over a set of resources.
                        The result of matchLabels and matchExpressions are ANDed.
                        An empty Selector matches all objects. A null Selector matches
                        no objects.
                      type: string
                    succeeded:
                      description: The number of pods which reached phase Succeeded.
                      format: int32
                      type: integer
                  type: object
                description: ReplicaStatuses is map of ReplicaType and ReplicaStatus,
                  specifies the status of each replica.
                type: object
              startTime:
                description: Represents time when the job was acknowledged by the
                  job controller. It is not guaranteed to be set in happens-before
                  order across separate operations. It is represented in RFC3339 form
                  and is in UTC.
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebooks.kubeflow.org
spec:
  conversion:
    strategy: None
  group: kubeflow.org
  names:
    kind: Notebook
    listKind: NotebookList
    plural: notebooks
    singular: notebook
  preserveUnknownFields: false
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              template:
                properties:
                  spec:
                    properties:
                      activeDeadlineSeconds:
                        format: int64
                        type: integer
                      affinity:
                        properties:
                          nodeAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    preference:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - preference
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                properties:
                                  nodeSelectorTerms:
                                    items:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    type: array
                                required:
                                - nodeSelectorTerms
                                type: object
                            type: object
                          podAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                          podAntiAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                        type: object
                      automountServiceAccountToken:
                        type: boolean
                      containers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      dnsConfig:
                        properties:
                          nameservers:
                            items:
                              type: string
                            type: array
                          options:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              type: object
                            type: array
                          searches:
                            items:
                              type: string
                            type: array
                        type: object
                      dnsPolicy:
                        type: string
                      enableServiceLinks:
                        type: boolean
                      ephemeralContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            targetContainerName:
                              type: string
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      hostAliases:
                        items:
                          properties:
                            hostnames:
                              items:
                                type: string
                              type: array
                            ip:
                              type: string
                          type: object
                        type: array
                      hostIPC:
                        type: boolean
                      hostNetwork:
                        type: boolean
                      hostPID:
                        type: boolean
                      hostname:
                        type: string
                      imagePullSecrets:
                        items:
                          properties:
                            name:
                              type: string
                          type: object
                        type: array
                      initContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      nodeName:
                        type: string
                      nodeSelector:
                        additionalProperties:
                          type: string
                        type: object
                        x-kubernetes-map-type: atomic
                      os:
                        properties:
                          name:
                            type: string
                        required:
                        - name
                        type: object
                      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
                        type: object
                      preemptionPolicy:
                        type: string
                      priority:
                        format: int32
                        type: integer
                      priorityClassName:
                        type: string
                      readinessGates:
                        items:
                          properties:
                            conditionType:
                              type: string
                          required:
                          - conditionType
                          type: object
                        type: array
                      restartPolicy:
                        type: string
                      runtimeClassName:
                        type: string
                      schedulerName:
                        type: string
                      securityContext:
                        properties:
                          fsGroup:
                            format: int64
                            type: integer
                          fsGroupChangePolicy:
                            type: string
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          supplementalGroups:
                            items:
                              format: int64
                              type: integer
                            type: array
                          sysctls:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      serviceAccount:
                        type: string
                      serviceAccountName:
                        type: string
                      setHostnameAsFQDN:
                        type: boolean
                      shareProcessNamespace:
                        type: boolean
                      subdomain:
                        type: string
                      terminationGracePeriodSeconds:
                        format: int64
                        type: integer
                      tolerations:
                        items:
                          properties:
                            effect:
                              type: string
                            key:
                              type: string
                            operator:
                              type: string
                            tolerationSeconds:
                              format: int64
                              type: integer
                            value:
                              type: string
                          type: object
                        type: array
                      topologySpreadConstraints:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            maxSkew:
                              format: int32
                              type: integer
                            topologyKey:
                              type: string
                            whenUnsatisfiable:
                              type: string
                          required:
                          - maxSkew
                          - topologyKey
                          - whenUnsatisfiable
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - topologyKey
                        - whenUnsatisfiable
                        x-kubernetes-list-type: map
                      volumes:
                        items:
                          properties:
                            awsElasticBlockStore:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            azureDisk:
                              properties:
                                cachingMode:
                                  type: string
                                diskName:
                                  type: string
                                diskURI:
                                  type: string
                                fsType:
                                  type: string
                                kind:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - diskName
                              - diskURI
                              type: object
                            azureFile:
                              properties:
                                readOnly:
                                  type: boolean
                                secretName:
                                  type: string
                                shareName:
                                  type: string
                              required:
                              - secretName
                              - shareName
                              type: object
                            cephfs:
                              properties:
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretFile:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                user:
                                  type: string
                              required:
                              - monitors
                              type: object
                            cinder:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            configMap:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            csi:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                nodePublishSecretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                volumeAttributes:
                                  additionalProperties:
                                    type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            downwardAPI:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                    required:
                                    - path
                                    type: object
                                  type: array
                              type: object
                            emptyDir:
                              properties:
                                medium:
                                  type: string
                                sizeLimit:
                                  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
                              type: object
                            ephemeral:
                              properties:
                                volumeClaimTemplate:
                                  properties:
                                    metadata:
                                      type: object
                                    spec:
                                      properties:
                                        accessModes:
                                          items:
                                            type: string
                                          type: array
                                        dataSource:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        dataSourceRef:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        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
                                              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
                                              type: object
                                          type: object
                                        selector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        storageClassName:
                                          type: string
                                        volumeMode:
                                          type: string
                                        volumeName:
                                          type: string
                                      type: object
                                  required:
                                  - spec
                                  type: object
                              type: object
                            fc:
                              properties:
                                fsType:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                targetWWNs:
                                  items:
                                    type: string
                                  type: array
                                wwids:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            flexVolume:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                options:
                                  additionalProperties:
                                    type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            flocker:
                              properties:
                                datasetName:
                                  type: string
                                datasetUUID:
                                  type: string
                              type: object
                            gcePersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                pdName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - pdName
                              type: object
                            gitRepo:
                              properties:
                                directory:
                                  type: string
                                repository:
                                  type: string
                                revision:
                                  type: string
                              required:
                              - repository
                              type: object
                            glusterfs:
                              properties:
                                endpoints:
                                  type: string
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - endpoints
                              - path
                              type: object
                            hostPath:
                              properties:
                                path:
                                  type: string
                                type:
                                  type: string
                              required:
                              - path
                              type: object
                            iscsi:
                              properties:
                                chapAuthDiscovery:
                                  type: boolean
                                chapAuthSession:
                                  type: boolean
                                fsType:
                                  type: string
                                initiatorName:
                                  type: string
                                iqn:
                                  type: string
                                iscsiInterface:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                portals:
                                  items:
                                    type: string
                                  type: array
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                targetPortal:
                                  type: string
                              required:
                              - iqn
                              - lun
                              - targetPortal
                              type: object
                            name:
                              type: string
                            nfs:
                              properties:
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                server:
                                  type: string
                              required:
                              - path
                              - server
                              type: object
                            persistentVolumeClaim:
                              properties:
                                claimName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - claimName
                              type: object
                            photonPersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                pdID:
                                  type: string
                              required:
                              - pdID
                              type: object
                            portworxVolume:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            projected:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                sources:
                                  items:
                                    properties:
                                      configMap:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                      downwardAPI:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                fieldRef:
                                                  properties:
                                                    apiVersion:
                                                      type: string
                                                    fieldPath:
                                                      type: string
                                                  required:
                                                  - fieldPath
                                                  type: object
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                                resourceFieldRef:
                                                  properties:
                                                    containerName:
                                                      type: string
                                                    divisor:
                                                      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
                                                    resource:
                                                      type: string
                                                  required:
                                                  - resource
                                                  type: object
                                              required:
                                              - path
                                              type: object
                                            type: array
                                        type: object
                                      secret:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                      serviceAccountToken:
                                        properties:
                                          audience:
                                            type: string
                                          expirationSeconds:
                                            format: int64
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                    type: object
                                  type: array
                              type: object
                            quobyte:
                              properties:
                                group:
                                  type: string
                                readOnly:
                                  type: boolean
                                registry:
                                  type: string
                                tenant:
                                  type: string
                                user:
                                  type: string
                                volume:
                                  type: string
                              required:
                              - registry
                              - volume
                              type: object
                            rbd:
                              properties:
                                fsType:
                                  type: string
                                image:
                                  type: string
                                keyring:
                                  type: string
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                pool:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                user:
                                  type: string
                              required:
                              - image
                              - monitors
                              type: object
                            scaleIO:
                              properties:
                                fsType:
                                  type: string
                                gateway:
                                  type: string
                                protectionDomain:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                sslEnabled:
                                  type: boolean
                                storageMode:
                                  type: string
                                storagePool:
                                  type: string
                                system:
                                  type: string
                                volumeName:
                                  type: string
                              required:
                              - gateway
                              - secretRef
                              - system
                              type: object
                            secret:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                optional:
                                  type: boolean
                                secretName:
                                  type: string
                              type: object
                            storageos:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                volumeName:
                                  type: string
                                volumeNamespace:
                                  type: string
                              type: object
                            vsphereVolume:
                              properties:
                                fsType:
                                  type: string
                                storagePolicyID:
                                  type: string
                                storagePolicyName:
                                  type: string
                                volumePath:
                                  type: string
                              required:
                              - volumePath
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                type: object
            type: object
          status:
            properties:
              conditions:
                items:
                  properties:
                    lastProbeTime:
                      format: date-time
                      type: string
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              containerState:
                properties:
                  running:
                    properties:
                      startedAt:
                        format: date-time
                        type: string
                    type: object
                  terminated:
                    properties:
                      containerID:
                        type: string
                      exitCode:
                        format: int32
                        type: integer
                      finishedAt:
                        format: date-time
                        type: string
                      message:
                        type: string
                      reason:
                        type: string
                      signal:
                        format: int32
                        type: integer
                      startedAt:
                        format: date-time
                        type: string
                    required:
                    - exitCode
                    type: object
                  waiting:
                    properties:
                      message:
                        type: string
                      reason:
                        type: string
                    type: object
                type: object
              readyReplicas:
                format: int32
                type: integer
            required:
            - conditions
            - containerState
            - readyReplicas
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              template:
                properties:
                  spec:
                    properties:
                      activeDeadlineSeconds:
                        format: int64
                        type: integer
                      affinity:
                        properties:
                          nodeAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    preference:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - preference
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                properties:
                                  nodeSelectorTerms:
                                    items:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    type: array
                                required:
                                - nodeSelectorTerms
                                type: object
                            type: object
                          podAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                          podAntiAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                        type: object
                      automountServiceAccountToken:
                        type: boolean
                      containers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      dnsConfig:
                        properties:
                          nameservers:
                            items:
                              type: string
                            type: array
                          options:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              type: object
                            type: array
                          searches:
                            items:
                              type: string
                            type: array
                        type: object
                      dnsPolicy:
                        type: string
                      enableServiceLinks:
                        type: boolean
                      ephemeralContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            targetContainerName:
                              type: string
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      hostAliases:
                        items:
                          properties:
                            hostnames:
                              items:
                                type: string
                              type: array
                            ip:
                              type: string
                          type: object
                        type: array
                      hostIPC:
                        type: boolean
                      hostNetwork:
                        type: boolean
                      hostPID:
                        type: boolean
                      hostname:
                        type: string
                      imagePullSecrets:
                        items:
                          properties:
                            name:
                              type: string
                          type: object
                        type: array
                      initContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      nodeName:
                        type: string
                      nodeSelector:
                        additionalProperties:
                          type: string
                        type: object
                        x-kubernetes-map-type: atomic
                      os:
                        properties:
                          name:
                            type: string
                        required:
                        - name
                        type: object
                      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
                        type: object
                      preemptionPolicy:
                        type: string
                      priority:
                        format: int32
                        type: integer
                      priorityClassName:
                        type: string
                      readinessGates:
                        items:
                          properties:
                            conditionType:
                              type: string
                          required:
                          - conditionType
                          type: object
                        type: array
                      restartPolicy:
                        type: string
                      runtimeClassName:
                        type: string
                      schedulerName:
                        type: string
                      securityContext:
                        properties:
                          fsGroup:
                            format: int64
                            type: integer
                          fsGroupChangePolicy:
                            type: string
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          supplementalGroups:
                            items:
                              format: int64
                              type: integer
                            type: array
                          sysctls:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      serviceAccount:
                        type: string
                      serviceAccountName:
                        type: string
                      setHostnameAsFQDN:
                        type: boolean
                      shareProcessNamespace:
                        type: boolean
                      subdomain:
                        type: string
                      terminationGracePeriodSeconds:
                        format: int64
                        type: integer
                      tolerations:
                        items:
                          properties:
                            effect:
                              type: string
                            key:
                              type: string
                            operator:
                              type: string
                            tolerationSeconds:
                              format: int64
                              type: integer
                            value:
                              type: string
                          type: object
                        type: array
                      topologySpreadConstraints:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            maxSkew:
                              format: int32
                              type: integer
                            topologyKey:
                              type: string
                            whenUnsatisfiable:
                              type: string
                          required:
                          - maxSkew
                          - topologyKey
                          - whenUnsatisfiable
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - topologyKey
                        - whenUnsatisfiable
                        x-kubernetes-list-type: map
                      volumes:
                        items:
                          properties:
                            awsElasticBlockStore:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            azureDisk:
                              properties:
                                cachingMode:
                                  type: string
                                diskName:
                                  type: string
                                diskURI:
                                  type: string
                                fsType:
                                  type: string
                                kind:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - diskName
                              - diskURI
                              type: object
                            azureFile:
                              properties:
                                readOnly:
                                  type: boolean
                                secretName:
                                  type: string
                                shareName:
                                  type: string
                              required:
                              - secretName
                              - shareName
                              type: object
                            cephfs:
                              properties:
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretFile:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                user:
                                  type: string
                              required:
                              - monitors
                              type: object
                            cinder:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            configMap:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            csi:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                nodePublishSecretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                volumeAttributes:
                                  additionalProperties:
                                    type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            downwardAPI:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                    required:
                                    - path
                                    type: object
                                  type: array
                              type: object
                            emptyDir:
                              properties:
                                medium:
                                  type: string
                                sizeLimit:
                                  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
                              type: object
                            ephemeral:
                              properties:
                                volumeClaimTemplate:
                                  properties:
                                    metadata:
                                      type: object
                                    spec:
                                      properties:
                                        accessModes:
                                          items:
                                            type: string
                                          type: array
                                        dataSource:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        dataSourceRef:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        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
                                              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
                                              type: object
                                          type: object
                                        selector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        storageClassName:
                                          type: string
                                        volumeMode:
                                          type: string
                                        volumeName:
                                          type: string
                                      type: object
                                  required:
                                  - spec
                                  type: object
                              type: object
                            fc:
                              properties:
                                fsType:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                targetWWNs:
                                  items:
                                    type: string
                                  type: array
                                wwids:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            flexVolume:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                options:
                                  additionalProperties:
                                    type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            flocker:
                              properties:
                                datasetName:
                                  type: string
                                datasetUUID:
                                  type: string
                              type: object
                            gcePersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                pdName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - pdName
                              type: object
                            gitRepo:
                              properties:
                                directory:
                                  type: string
                                repository:
                                  type: string
                                revision:
                                  type: string
                              required:
                              - repository
                              type: object
                            glusterfs:
                              properties:
                                endpoints:
                                  type: string
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - endpoints
                              - path
                              type: object
                            hostPath:
                              properties:
                                path:
                                  type: string
                                type:
                                  type: string
                              required:
                              - path
                              type: object
                            iscsi:
                              properties:
                                chapAuthDiscovery:
                                  type: boolean
                                chapAuthSession:
                                  type: boolean
                                fsType:
                                  type: string
                                initiatorName:
                                  type: string
                                iqn:
                                  type: string
                                iscsiInterface:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                portals:
                                  items:
                                    type: string
                                  type: array
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                targetPortal:
                                  type: string
                              required:
                              - iqn
                              - lun
                              - targetPortal
                              type: object
                            name:
                              type: string
                            nfs:
                              properties:
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                server:
                                  type: string
                              required:
                              - path
                              - server
                              type: object
                            persistentVolumeClaim:
                              properties:
                                claimName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - claimName
                              type: object
                            photonPersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                pdID:
                                  type: string
                              required:
                              - pdID
                              type: object
                            portworxVolume:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            projected:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                sources:
                                  items:
                                    properties:
                                      configMap:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                      downwardAPI:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                fieldRef:
                                                  properties:
                                                    apiVersion:
                                                      type: string
                                                    fieldPath:
                                                      type: string
                                                  required:
                                                  - fieldPath
                                                  type: object
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                                resourceFieldRef:
                                                  properties:
                                                    containerName:
                                                      type: string
                                                    divisor:
                                                      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
                                                    resource:
                                                      type: string
                                                  required:
                                                  - resource
                                                  type: object
                                              required:
                                              - path
                                              type: object
                                            type: array
                                        type: object
                                      secret:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                      serviceAccountToken:
                                        properties:
                                          audience:
                                            type: string
                                          expirationSeconds:
                                            format: int64
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                    type: object
                                  type: array
                              type: object
                            quobyte:
                              properties:
                                group:
                                  type: string
                                readOnly:
                                  type: boolean
                                registry:
                                  type: string
                                tenant:
                                  type: string
                                user:
                                  type: string
                                volume:
                                  type: string
                              required:
                              - registry
                              - volume
                              type: object
                            rbd:
                              properties:
                                fsType:
                                  type: string
                                image:
                                  type: string
                                keyring:
                                  type: string
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                pool:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                user:
                                  type: string
                              required:
                              - image
                              - monitors
                              type: object
                            scaleIO:
                              properties:
                                fsType:
                                  type: string
                                gateway:
                                  type: string
                                protectionDomain:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                sslEnabled:
                                  type: boolean
                                storageMode:
                                  type: string
                                storagePool:
                                  type: string
                                system:
                                  type: string
                                volumeName:
                                  type: string
                              required:
                              - gateway
                              - secretRef
                              - system
                              type: object
                            secret:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                optional:
                                  type: boolean
                                secretName:
                                  type: string
                              type: object
                            storageos:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                volumeName:
                                  type: string
                                volumeNamespace:
                                  type: string
                              type: object
                            vsphereVolume:
                              properties:
                                fsType:
                                  type: string
                                storagePolicyID:
                                  type: string
                                storagePolicyName:
                                  type: string
                                volumePath:
                                  type: string
                              required:
                              - volumePath
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                type: object
            type: object
          status:
            properties:
              conditions:
                items:
                  properties:
                    lastProbeTime:
                      format: date-time
                      type: string
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              containerState:
                properties:
                  running:
                    properties:
                      startedAt:
                        format: date-time
                        type: string
                    type: object
                  terminated:
                    properties:
                      containerID:
                        type: string
                      exitCode:
                        format: int32
                        type: integer
                      finishedAt:
                        format: date-time
                        type: string
                      message:
                        type: string
                      reason:
                        type: string
                      signal:
                        format: int32
                        type: integer
                      startedAt:
                        format: date-time
                        type: string
                    required:
                    - exitCode
                    type: object
                  waiting:
                    properties:
                      message:
                        type: string
                      reason:
                        type: string
                    type: object
                type: object
              readyReplicas:
                format: int32
                type: integer
            required:
            - conditions
            - containerState
            - readyReplicas
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              template:
                properties:
                  spec:
                    properties:
                      activeDeadlineSeconds:
                        format: int64
                        type: integer
                      affinity:
                        properties:
                          nodeAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    preference:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - preference
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                properties:
                                  nodeSelectorTerms:
                                    items:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                      type: object
                                    type: array
                                required:
                                - nodeSelectorTerms
                                type: object
                            type: object
                          podAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                          podAntiAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                            type: object
                        type: object
                      automountServiceAccountToken:
                        type: boolean
                      containers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      dnsConfig:
                        properties:
                          nameservers:
                            items:
                              type: string
                            type: array
                          options:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              type: object
                            type: array
                          searches:
                            items:
                              type: string
                            type: array
                        type: object
                      dnsPolicy:
                        type: string
                      enableServiceLinks:
                        type: boolean
                      ephemeralContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            targetContainerName:
                              type: string
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      hostAliases:
                        items:
                          properties:
                            hostnames:
                              items:
                                type: string
                              type: array
                            ip:
                              type: string
                          type: object
                        type: array
                      hostIPC:
                        type: boolean
                      hostNetwork:
                        type: boolean
                      hostPID:
                        type: boolean
                      hostname:
                        type: string
                      imagePullSecrets:
                        items:
                          properties:
                            name:
                              type: string
                          type: object
                        type: array
                      initContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                            command:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                type: object
                              type: array
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            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
                                  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
                                  type: object
                              type: object
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      nodeName:
                        type: string
                      nodeSelector:
                        additionalProperties:
                          type: string
                        type: object
                        x-kubernetes-map-type: atomic
                      os:
                        properties:
                          name:
                            type: string
                        required:
                        - name
                        type: object
                      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
                        type: object
                      preemptionPolicy:
                        type: string
                      priority:
                        format: int32
                        type: integer
                      priorityClassName:
                        type: string
                      readinessGates:
                        items:
                          properties:
                            conditionType:
                              type: string
                          required:
                          - conditionType
                          type: object
                        type: array
                      restartPolicy:
                        type: string
                      runtimeClassName:
                        type: string
                      schedulerName:
                        type: string
                      securityContext:
                        properties:
                          fsGroup:
                            format: int64
                            type: integer
                          fsGroupChangePolicy:
                            type: string
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          supplementalGroups:
                            items:
                              format: int64
                              type: integer
                            type: array
                          sysctls:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      serviceAccount:
                        type: string
                      serviceAccountName:
                        type: string
                      setHostnameAsFQDN:
                        type: boolean
                      shareProcessNamespace:
                        type: boolean
                      subdomain:
                        type: string
                      terminationGracePeriodSeconds:
                        format: int64
                        type: integer
                      tolerations:
                        items:
                          properties:
                            effect:
                              type: string
                            key:
                              type: string
                            operator:
                              type: string
                            tolerationSeconds:
                              format: int64
                              type: integer
                            value:
                              type: string
                          type: object
                        type: array
                      topologySpreadConstraints:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            maxSkew:
                              format: int32
                              type: integer
                            topologyKey:
                              type: string
                            whenUnsatisfiable:
                              type: string
                          required:
                          - maxSkew
                          - topologyKey
                          - whenUnsatisfiable
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - topologyKey
                        - whenUnsatisfiable
                        x-kubernetes-list-type: map
                      volumes:
                        items:
                          properties:
                            awsElasticBlockStore:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            azureDisk:
                              properties:
                                cachingMode:
                                  type: string
                                diskName:
                                  type: string
                                diskURI:
                                  type: string
                                fsType:
                                  type: string
                                kind:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - diskName
                              - diskURI
                              type: object
                            azureFile:
                              properties:
                                readOnly:
                                  type: boolean
                                secretName:
                                  type: string
                                shareName:
                                  type: string
                              required:
                              - secretName
                              - shareName
                              type: object
                            cephfs:
                              properties:
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretFile:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                user:
                                  type: string
                              required:
                              - monitors
                              type: object
                            cinder:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            configMap:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                            csi:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                nodePublishSecretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                volumeAttributes:
                                  additionalProperties:
                                    type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            downwardAPI:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            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
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                    required:
                                    - path
                                    type: object
                                  type: array
                              type: object
                            emptyDir:
                              properties:
                                medium:
                                  type: string
                                sizeLimit:
                                  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
                              type: object
                            ephemeral:
                              properties:
                                volumeClaimTemplate:
                                  properties:
                                    metadata:
                                      type: object
                                    spec:
                                      properties:
                                        accessModes:
                                          items:
                                            type: string
                                          type: array
                                        dataSource:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        dataSourceRef:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        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
                                              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
                                              type: object
                                          type: object
                                        selector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        storageClassName:
                                          type: string
                                        volumeMode:
                                          type: string
                                        volumeName:
                                          type: string
                                      type: object
                                  required:
                                  - spec
                                  type: object
                              type: object
                            fc:
                              properties:
                                fsType:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                targetWWNs:
                                  items:
                                    type: string
                                  type: array
                                wwids:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            flexVolume:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                options:
                                  additionalProperties:
                                    type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            flocker:
                              properties:
                                datasetName:
                                  type: string
                                datasetUUID:
                                  type: string
                              type: object
                            gcePersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                pdName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - pdName
                              type: object
                            gitRepo:
                              properties:
                                directory:
                                  type: string
                                repository:
                                  type: string
                                revision:
                                  type: string
                              required:
                              - repository
                              type: object
                            glusterfs:
                              properties:
                                endpoints:
                                  type: string
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - endpoints
                              - path
                              type: object
                            hostPath:
                              properties:
                                path:
                                  type: string
                                type:
                                  type: string
                              required:
                              - path
                              type: object
                            iscsi:
                              properties:
                                chapAuthDiscovery:
                                  type: boolean
                                chapAuthSession:
                                  type: boolean
                                fsType:
                                  type: string
                                initiatorName:
                                  type: string
                                iqn:
                                  type: string
                                iscsiInterface:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                portals:
                                  items:
                                    type: string
                                  type: array
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                targetPortal:
                                  type: string
                              required:
                              - iqn
                              - lun
                              - targetPortal
                              type: object
                            name:
                              type: string
                            nfs:
                              properties:
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                server:
                                  type: string
                              required:
                              - path
                              - server
                              type: object
                            persistentVolumeClaim:
                              properties:
                                claimName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - claimName
                              type: object
                            photonPersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                pdID:
                                  type: string
                              required:
                              - pdID
                              type: object
                            portworxVolume:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            projected:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                sources:
                                  items:
                                    properties:
                                      configMap:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                      downwardAPI:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                fieldRef:
                                                  properties:
                                                    apiVersion:
                                                      type: string
                                                    fieldPath:
                                                      type: string
                                                  required:
                                                  - fieldPath
                                                  type: object
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                                resourceFieldRef:
                                                  properties:
                                                    containerName:
                                                      type: string
                                                    divisor:
                                                      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
                                                    resource:
                                                      type: string
                                                  required:
                                                  - resource
                                                  type: object
                                              required:
                                              - path
                                              type: object
                                            type: array
                                        type: object
                                      secret:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                      serviceAccountToken:
                                        properties:
                                          audience:
                                            type: string
                                          expirationSeconds:
                                            format: int64
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                    type: object
                                  type: array
                              type: object
                            quobyte:
                              properties:
                                group:
                                  type: string
                                readOnly:
                                  type: boolean
                                registry:
                                  type: string
                                tenant:
                                  type: string
                                user:
                                  type: string
                                volume:
                                  type: string
                              required:
                              - registry
                              - volume
                              type: object
                            rbd:
                              properties:
                                fsType:
                                  type: string
                                image:
                                  type: string
                                keyring:
                                  type: string
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                pool:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                user:
                                  type: string
                              required:
                              - image
                              - monitors
                              type: object
                            scaleIO:
                              properties:
                                fsType:
                                  type: string
                                gateway:
                                  type: string
                                protectionDomain:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                sslEnabled:
                                  type: boolean
                                storageMode:
                                  type: string
                                storagePool:
                                  type: string
                                system:
                                  type: string
                                volumeName:
                                  type: string
                              required:
                              - gateway
                              - secretRef
                              - system
                              type: object
                            secret:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                optional:
                                  type: boolean
                                secretName:
                                  type: string
                              type: object
                            storageos:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      type: string
                                  type: object
                                volumeName:
                                  type: string
                                volumeNamespace:
                                  type: string
                              type: object
                            vsphereVolume:
                              properties:
                                fsType:
                                  type: string
                                storagePolicyID:
                                  type: string
                                storagePolicyName:
                                  type: string
                                volumePath:
                                  type: string
                              required:
                              - volumePath
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                type: object
            type: object
          status:
            properties:
              conditions:
                items:
                  properties:
                    lastProbeTime:
                      format: date-time
                      type: string
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              containerState:
                properties:
                  running:
                    properties:
                      startedAt:
                        format: date-time
                        type: string
                    type: object
                  terminated:
                    properties:
                      containerID:
                        type: string
                      exitCode:
                        format: int32
                        type: integer
                      finishedAt:
                        format: date-time
                        type: string
                      message:
                        type: string
                      reason:
                        type: string
                      signal:
                        format: int32
                        type: integer
                      startedAt:
                        format: date-time
                        type: string
                    required:
                    - exitCode
                    type: object
                  waiting:
                    properties:
                      message:
                        type: string
                      reason:
                        type: string
                    type: object
                type: object
              readyReplicas:
                format: int32
                type: integer
            required:
            - conditions
            - containerState
            - readyReplicas
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: orders.acme.cert-manager.io
spec:
  group: acme.cert-manager.io
  names:
    categories:
    - cert-manager
    - cert-manager-acme
    kind: Order
    listKind: OrderList
    plural: orders
    singular: order
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.state
      name: State
      type: string
    - jsonPath: .spec.issuerRef.name
      name: Issuer
      priority: 1
      type: string
    - jsonPath: .status.reason
      name: Reason
      priority: 1
      type: string
    - description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Order is a type to represent an Order with an ACME server
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              commonName:
                description: CommonName is the common name as specified on the DER
                  encoded CSR. If specified, this value must also be present in `dnsNames`
                  or `ipAddresses`. This field must match the corresponding field
                  on the DER encoded CSR.
                type: string
              dnsNames:
                description: DNSNames is a list of DNS names that should be included
                  as part of the Order validation process. This field must match the
                  corresponding field on the DER encoded CSR.
                items:
                  type: string
                type: array
              duration:
                description: Duration is the duration for the not after date for the
                  requested certificate. this is set on order creation as pe the ACME
                  spec.
                type: string
              ipAddresses:
                description: IPAddresses is a list of IP addresses that should be
                  included as part of the Order validation process. This field must
                  match the corresponding field on the DER encoded CSR.
                items:
                  type: string
                type: array
              issuerRef:
                description: IssuerRef references a properly configured ACME-type
                  Issuer which should be used to create this Order. If the Issuer
                  does not exist, processing will be retried. If the Issuer is not
                  an 'ACME' Issuer, an error will be returned and the Order will be
                  marked as failed.
                properties:
                  group:
                    description: Group of the resource being referred to.
                    type: string
                  kind:
                    description: Kind of the resource being referred to.
                    type: string
                  name:
                    description: Name of the resource being referred to.
                    type: string
                required:
                - name
                type: object
              request:
                description: Certificate signing request bytes in DER encoding. This
                  will be used when finalizing the order. This field must be set on
                  the order.
                format: byte
                type: string
            required:
            - issuerRef
            - request
            type: object
          status:
            properties:
              authorizations:
                description: Authorizations contains data returned from the ACME server
                  on what authorizations must be completed in order to validate the
                  DNS names specified on the Order.
                items:
                  description: ACMEAuthorization contains data returned from the ACME
                    server on an authorization that must be completed in order validate
                    a DNS name on an ACME Order resource.
                  properties:
                    challenges:
                      description: Challenges specifies the challenge types offered
                        by the ACME server. One of these challenge types will be selected
                        when validating the DNS name and an appropriate Challenge
                        resource will be created to perform the ACME challenge process.
                      items:
                        description: Challenge specifies a challenge offered by the
                          ACME server for an Order. An appropriate Challenge resource
                          can be created to perform the ACME challenge process.
                        properties:
                          token:
                            description: Token is the token that must be presented
                              for this challenge. This is used to compute the 'key'
                              that must also be presented.
                            type: string
                          type:
                            description: Type is the type of challenge being offered,
                              e.g. 'http-01', 'dns-01', 'tls-sni-01', etc. This is
                              the raw value retrieved from the ACME server. Only 'http-01'
                              and 'dns-01' are supported by cert-manager, other values
                              will be ignored.
                            type: string
                          url:
                            description: URL is the URL of this challenge. It can
                              be used to retrieve additional metadata about the Challenge
                              from the ACME server.
                            type: string
                        required:
                        - token
                        - type
                        - url
                        type: object
                      type: array
                    identifier:
                      description: Identifier is the DNS name to be validated as part
                        of this authorization
                      type: string
                    initialState:
                      description: InitialState is the initial state of the ACME authorization
                        when first fetched from the ACME server. If an Authorization
                        is already 'valid', the Order controller will not create a
                        Challenge resource for the authorization. This will occur
                        when working with an ACME server that enables 'authz reuse'
                        (such as Let's Encrypt's production endpoint). If not set
                        and 'identifier' is set, the state is assumed to be pending
                        and a Challenge will be created.
                      enum:
                      - valid
                      - ready
                      - pending
                      - processing
                      - invalid
                      - expired
                      - errored
                      type: string
                    url:
                      description: URL is the URL of the Authorization that must be
                        completed
                      type: string
                    wildcard:
                      description: Wildcard will be true if this authorization is
                        for a wildcard DNS name. If this is true, the identifier will
                        be the *non-wildcard* version of the DNS name. For example,
                        if '*.example.com' is the DNS name being validated, this field
                        will be 'true' and the 'identifier' field will be 'example.com'.
                      type: boolean
                  required:
                  - url
                  type: object
                type: array
              certificate:
                description: Certificate is a copy of the PEM encoded certificate
                  for this Order. This field will be populated after the order has
                  been successfully finalized with the ACME server, and the order
                  has transitioned to the 'valid' state.
                format: byte
                type: string
              failureTime:
                description: FailureTime stores the time that this order failed. This
                  is used to influence garbage collection and back-off.
                format: date-time
                type: string
              finalizeURL:
                description: FinalizeURL of the Order. This is used to obtain certificates
                  for this order once it has been completed.
                type: string
              reason:
                description: Reason optionally provides more information about a why
                  the order is in the current state.
                type: string
              state:
                description: State contains the current state of this Order resource.
                  States 'success' and 'expired' are 'final'
                enum:
                - valid
                - ready
                - pending
                - processing
                - invalid
                - expired
                - errored
                type: string
              url:
                description: URL of the Order. This will initially be empty when the
                  resource is first created. The Order controller will populate this
                  field when the Order is first processed. This field will be immutable
                  after it is initially set.
                type: string
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: paddlejobs.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: PaddleJob
    listKind: PaddleJobList
    plural: paddlejobs
    singular: paddlejob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: State
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: PaddleJob Represents a PaddleJob resource.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Specification of the desired state of the PaddleJob.
            properties:
              elasticPolicy:
                description: ElasticPolicy holds the elastic policy for paddle job.
                properties:
                  maxReplicas:
                    description: upper limit for the number of pods that can be set
                      by the autoscaler; cannot be smaller than MinReplicas, defaults
                      to null.
                    format: int32
                    type: integer
                  maxRestarts:
                    description: MaxRestarts is the limit for restart times of pods
                      in elastic mode.
                    format: int32
                    type: integer
                  metrics:
                    description: Metrics contains the specifications which are used
                      to calculate the desired replica count (the maximum replica
                      count across all metrics will be used).  The desired replica
                      count is calculated with multiplying the ratio between the target
                      value and the current value by the current number of pods. Ergo,
                      metrics used must decrease as the pod count is increased, and
                      vice-versa.
                    items:
                      description: MetricSpec specifies how to scale based on a single
                        metric (only `type` and one other matching field should be
                        set at once).
                      properties:
                        containerResource:
                          description: containerResource refers to a resource metric
                            (such as those specified in requests and limits) known
                            to Kubernetes describing a single container in each pod
                            of the current scale target (e.g. CPU or memory). Such
                            metrics are built in to Kubernetes, and have special scaling
                            options on top of those available to normal per-pod metrics
                            using the "pods" source.
                          properties:
                            container:
                              description: container is the name of the container
                                in the pods of the scaling target
                              type: string
                            name:
                              description: name is the name of the resource in question.
                              type: string
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - container
                          - name
                          - target
                          type: object
                        external:
                          description: external refers to a global metric that is
                            not associated with any Kubernetes object. It allows autoscaling
                            based on information coming from components running outside
                            of cluster (for example length of queue in cloud messaging
                            service, or QPS from loadbalancer running outside of cluster).
                          properties:
                            metric:
                              description: metric identifies the target metric by
                                name and selector
                              properties:
                                name:
                                  description: name is the name of the given metric
                                  type: string
                                selector:
                                  description: selector is the string-encoded form
                                    of a standard kubernetes label selector for the
                                    given metric When set, it is passed as an additional
                                    parameter to the metrics server for more specific
                                    metrics scoping. When unset, just the metricName
                                    will be used to gather metrics.
                                  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. This
                                              array is replaced during a strategic
                                              merge patch.
                                            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. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - name
                              type: object
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - metric
                          - target
                          type: object
                        object:
                          description: object refers to a metric describing a single
                            kubernetes object (for example, hits-per-second on an
                            Ingress object).
                          properties:
                            describedObject:
                              description: describedObject specifies the descriptions
                                of a object,such as kind,name apiVersion
                              properties:
                                apiVersion:
                                  description: apiVersion is the API version of the
                                    referent
                                  type: string
                                kind:
                                  description: 'kind is the kind of the referent;
                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                  type: string
                                name:
                                  description: 'name is the name of the referent;
                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              required:
                              - kind
                              - name
                              type: object
                            metric:
                              description: metric identifies the target metric by
                                name and selector
                              properties:
                                name:
                                  description: name is the name of the given metric
                                  type: string
                                selector:
                                  description: selector is the string-encoded form
                                    of a standard kubernetes label selector for the
                                    given metric When set, it is passed as an additional
                                    parameter to the metrics server for more specific
                                    metrics scoping. When unset, just the metricName
                                    will be used to gather metrics.
                                  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. This
                                              array is replaced during a strategic
                                              merge patch.
                                            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. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - name
                              type: object
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - describedObject
                          - metric
                          - target
                          type: object
                        pods:
                          description: pods refers to a metric describing each pod
                            in the current scale target (for example, transactions-processed-per-second).  The
                            values will be averaged together before being compared
                            to the target value.
                          properties:
                            metric:
                              description: metric identifies the target metric by
                                name and selector
                              properties:
                                name:
                                  description: name is the name of the given metric
                                  type: string
                                selector:
                                  description: selector is the string-encoded form
                                    of a standard kubernetes label selector for the
                                    given metric When set, it is passed as an additional
                                    parameter to the metrics server for more specific
                                    metrics scoping. When unset, just the metricName
                                    will be used to gather metrics.
                                  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. This
                                              array is replaced during a strategic
                                              merge patch.
                                            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. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - name
                              type: object
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - metric
                          - target
                          type: object
                        resource:
                          description: resource refers to a resource metric (such
                            as those specified in requests and limits) known to Kubernetes
                            describing each pod in the current scale target (e.g.
                            CPU or memory). Such metrics are built in to Kubernetes,
                            and have special scaling options on top of those available
                            to normal per-pod metrics using the "pods" source.
                          properties:
                            name:
                              description: name is the name of the resource in question.
                              type: string
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - name
                          - target
                          type: object
                        type:
                          description: 'type is the type of metric source.  It should
                            be one of "ContainerResource", "External", "Object", "Pods"
                            or "Resource", each mapping to a matching field in the
                            object. Note: "ContainerResource" type is available on
                            when the feature-gate HPAContainerMetrics is enabled'
                          type: string
                      required:
                      - type
                      type: object
                    type: array
                  minReplicas:
                    description: minReplicas is the lower limit for the number of
                      replicas to which the training job can scale down.  It defaults
                      to null.
                    format: int32
                    type: integer
                type: object
              paddleReplicaSpecs:
                additionalProperties:
                  description: ReplicaSpec is a description of the replica
                  properties:
                    replicas:
                      description: Replicas is the desired number of replicas of the
                        given template. If unspecified, defaults to 1.
                      format: int32
                      type: integer
                    restartPolicy:
                      description: Restart policy for all replicas within the job.
                        One of Always, OnFailure, Never and ExitCode. Default to Never.
                      type: string
                    template:
                      description: Template is the object that describes the pod that
                        will be created for this replica. RestartPolicy in PodTemplateSpec
                        will be overide by RestartPolicy in ReplicaSpec
                      properties:
                        metadata:
                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'Specification of the desired behavior of the
                            pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                          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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to an update), the
                                        system may or may not try to eventually evict
                                        the pod from its 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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to a pod label update),
                                        the system may or may not try to eventually
                                        evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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. The node that is most
                                        preferred is the one with the greatest sum
                                        of weights, i.e.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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. If the anti-affinity requirements specified
                                        by this field cease to be met at some point
                                        during pod execution (e.g. due to a pod label
                                        update), the system may or may not try to
                                        eventually evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.
                                    Resolution options given in Options will override
                                    those that appear in the base DNSPolicy.
                                  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'. DNS parameters
                                given in DNSConfig will be merged with the policy
                                selected with DNSPolicy. To have DNS options set along
                                with hostNetwork, you have to specify DNS policy explicitly
                                to 'ClusterFirstWithHostNet'.
                              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.
                                This list cannot be specified when creating a pod,
                                and it cannot be modified by updating the pod spec.
                                In order to add an ephemeral container to an existing
                                pod, use the pod's ephemeralcontainers subresource.
                              items:
                                description: An EphemeralContainer is a temporary
                                  container that you may add to an existing Pod for
                                  user-initiated activities such as debugging. Ephemeral
                                  containers have no resource or scheduling guarantees,
                                  and they will not be restarted when they exit or
                                  when a Pod is removed or restarted. The kubelet
                                  may evict a Pod if an ephemeral container causes
                                  the Pod to exceed its resource allocation.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      image''s CMD is used if this is not provided.
                                      Variable references $(VAR_NAME) are expanded
                                      using the container''s environment. If a variable
                                      cannot be resolved, the reference in the input
                                      string will be unchanged. Double $$ are reduced
                                      to a single $, which allows for escaping the
                                      $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                                      produce the string literal "$(VAR_NAME)".'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The image''s ENTRYPOINT is used if
                                      this is not provided. Variable references $(VAR_NAME)
                                      are expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container 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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: Resources are not allowed for ephemeral
                                      containers. Ephemeral containers use spare resources
                                      already allocated to the pod.
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. If not set
                                      then the ephemeral container uses the namespaces
                                      configured in the Pod spec. \n The container
                                      runtime must implement support for this feature."
                                    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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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. Subpath mounts are not allowed for
                                      ephemeral containers. 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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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
                            hostUsers:
                              description: 'Use the host''s user namespace. Optional:
                                Default to true. If set to true or not present, the
                                pod will be run in the host user namespace, useful
                                for when the pod needs a feature only available to
                                the host user namespace, such as loading a kernel
                                module with CAP_SYS_MODULE. When set to false, a new
                                userns is created for the pod.'
                              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.
                                If specified, these secrets will be passed to individual
                                puller implementations for them to use. More info:
                                https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                              items:
                                description: LocalObjectReference contains enough
                                  information to let you locate the referenced object
                                  inside the same namespace.
                                properties:
                                  name:
                                    description: 'Name of the referent. 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
                                x-kubernetes-map-type: atomic
                              type: array
                            initContainers:
                              description: List of initialization containers belonging
                                to the pod. Init containers are executed in order
                                prior to containers being started. If any init container
                                fails, the pod is considered to have failed and is
                                handled according to its restartPolicy. The name for
                                an init container or normal container must be unique
                                among all containers.
                              items:
                                description: A single application container that you
                                  want to run within a pod.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.io/docs/concepts/configuration/assign-pod-node/'
                              type: object
                              x-kubernetes-map-type: atomic
                            os:
                              description: "Specifies the OS of the containers in
                                the pod. Some pod and container fields are restricted
                                if this is set. \n If the OS field is set to linux,
                                the following fields must be unset: -securityContext.windowsOptions
                                \n If the OS field is set to windows, following fields
                                must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers
                                - spec.securityContext.seLinuxOptions - spec.securityContext."
                              properties:
                                name:
                                  description: 'Name is the name of the operating
                                    system. The currently supported values are linux
                                    and windows. Additional value may be defined in
                                    future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
                                    Clients should expect to handle additional values
                                    and treat unrecognized values in this field as
                                    os: null'
                                  type: string
                              required:
                              - name
                              type: object
                            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. If the RuntimeClass
                                admission controller is enabled, overhead must not
                                be set in Pod create requests. The RuntimeClass admission
                                controller will reject Pod create requests which have
                                the overhead already set.
                              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. The admission controller
                                populates this field from PriorityClassName. The higher
                                the value, the higher the priority.
                              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.
                                Any other name must be defined by creating a PriorityClass
                                object with that name. If not specified, the pod priority
                                will be default or zero if there is no default.
                              type: string
                            readinessGates:
                              description: 'If specified, all readiness gates will
                                be evaluated for pod readiness. A pod is ready when
                                all its containers are ready AND all conditions specified
                                in the readiness gates have status equal to "True"
                                More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates'
                              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
                            resourceClaims:
                              description: "ResourceClaims defines which ResourceClaims
                                must be allocated and reserved before the Pod is allowed
                                to start. The resources will be made available to
                                those containers which consume them by name. \n This
                                is an alpha field and requires enabling the DynamicResourceAllocation
                                feature gate. \n This field is immutable."
                              items:
                                description: PodResourceClaim references exactly one
                                  ResourceClaim through a ClaimSource. It adds a name
                                  to it that uniquely identifies the ResourceClaim
                                  inside the Pod. Containers that need access to the
                                  ResourceClaim reference it with this name.
                                properties:
                                  name:
                                    description: Name uniquely identifies this resource
                                      claim inside the pod. This must be a DNS_LABEL.
                                    type: string
                                  source:
                                    description: Source describes where to find the
                                      ResourceClaim.
                                    properties:
                                      resourceClaimName:
                                        description: ResourceClaimName is the name
                                          of a ResourceClaim object in the same namespace
                                          as this pod.
                                        type: string
                                      resourceClaimTemplateName:
                                        description: "ResourceClaimTemplateName is
                                          the name of a ResourceClaimTemplate object
                                          in the same namespace as this pod. \n The
                                          template will be used to create a new ResourceClaim,
                                          which will be bound to this pod. When this
                                          pod is deleted, the ResourceClaim will also
                                          be deleted. The name of the ResourceClaim
                                          will be <pod name>-<resource name>, where
                                          <resource name> is the PodResourceClaim.Name."
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            restartPolicy:
                              description: 'Restart policy for all containers within
                                the pod. One of Always, OnFailure, Never. In some
                                contexts, only a subset of those values may be permitted.
                                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. If unset
                                or empty, the "legacy" RuntimeClass will be used,
                                which is an implicit class with an empty definition
                                that uses the default runtime handler. More info:
                                https://git.k8s.'
                              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
                            schedulingGates:
                              description: "SchedulingGates is an opaque list of values
                                that if specified will block scheduling the pod. If
                                schedulingGates is not empty, the pod will stay in
                                the SchedulingGated state and the scheduler will not
                                attempt to schedule the pod. \n SchedulingGates can
                                only be set at pod creation time, and be removed only
                                afterwards. \n This is a beta feature enabled by the
                                PodSchedulingReadiness feature gate."
                              items:
                                description: PodSchedulingGate is associated to a
                                  Pod to guard its scheduling.
                                properties:
                                  name:
                                    description: Name of the scheduling gate. Each
                                      scheduling gate must have a unique name field.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            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. The setgid bit
                                    is set (new files created in the volume will be
                                    owned by FSGroup) 3."
                                  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). It will have
                                    no effect on ephemeral volume types such as: secret,
                                    configmaps and emptydir. Valid values are "OnRootMismatch"
                                    and "Always". If not specified, "Always" is used.'
                                  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.  If set in
                                    both SecurityContext and PodSecurityContext, the
                                    value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in SecurityContext.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence for that container.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.  If
                                    set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. Note that this field cannot be set
                                    when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      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, the fsGroup (if specified),
                                    and group memberships defined in the container
                                    image for the uid of the container process. If
                                    unspecified, no additional groups are 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.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.
                                    If set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is linux.
                                  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. Setting this field without the
                                        feature flag will result in errors when validating
                                        the Pod.
                                      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.
                                        If set in both SecurityContext and PodSecurityContext,
                                        the value specified in SecurityContext takes
                                        precedence.
                                      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). In Linux containers, this means setting
                                the FQDN in the hostname field of the kernel (the
                                nodename field of struct utsname).
                              type: boolean
                            shareProcessNamespace:
                              description: 'Share a single process namespace between
                                all of the containers in a pod. When this is set containers
                                will be able to view and signal processes from other
                                containers in the same pod, and the first process
                                in each container will not be assigned PID 1. HostPID
                                and ShareProcessNamespace cannot both be set. Optional:
                                Default to false.'
                              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. The value
                                zero indicates stop immediately via the kill signal
                                (no opportunity to shut down). If this value is nil,
                                the default grace period will be used instead.
                              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. By default, it
                                      is not set, which means tolerate the taint forever
                                      (do not evict). Zero and negative values will
                                      be treated as 0 (evict immediately) by the system.
                                    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. This
                                                array is replaced during a strategic
                                                merge patch.
                                              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. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: MatchLabelKeys is a set of pod label
                                      keys to select the pods over which spreading
                                      will be calculated. The keys are used to lookup
                                      values from the incoming pod labels, those key-value
                                      labels are ANDed with labelSelector to select
                                      the group of existing pods over which spreading
                                      will be calculated for the incoming pod. The
                                      same key is forbidden to exist in both MatchLabelKeys
                                      and LabelSelector.
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  maxSkew:
                                    description: MaxSkew describes the degree to which
                                      pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
                                      it is the maximum permitted difference between
                                      the number of matching pods in the target topology
                                      and the global minimum. The global minimum is
                                      the minimum number of matching pods in an eligible
                                      domain or zero if the number of eligible domains
                                      is less than MinDomains.
                                    format: int32
                                    type: integer
                                  minDomains:
                                    description: MinDomains indicates a minimum number
                                      of eligible domains. When the number of eligible
                                      domains with matching topology keys is less
                                      than minDomains, Pod Topology Spread treats
                                      "global minimum" as 0, and then the calculation
                                      of Skew is performed. And when the number of
                                      eligible domains with matching topology keys
                                      equals or greater than minDomains, this value
                                      has no effect on scheduling.
                                    format: int32
                                    type: integer
                                  nodeAffinityPolicy:
                                    description: "NodeAffinityPolicy indicates how
                                      we will treat Pod's nodeAffinity/nodeSelector
                                      when calculating pod topology spread skew. Options
                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector
                                      are included in the calculations. - Ignore:
                                      nodeAffinity/nodeSelector are ignored. All nodes
                                      are included in the calculations. \n If this
                                      value is nil, the behavior is equivalent to
                                      the Honor policy."
                                    type: string
                                  nodeTaintsPolicy:
                                    description: "NodeTaintsPolicy indicates how we
                                      will treat node taints when calculating pod
                                      topology spread skew. Options are: - Honor:
                                      nodes without taints, along with tainted nodes
                                      for which the incoming pod has a toleration,
                                      are included. - Ignore: node taints are ignored.
                                      All nodes are included. \n If this value is
                                      nil, the behavior is equivalent to the Ignore
                                      policy."
                                    type: string
                                  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.
                                      We consider each <key, value> as a "bucket",
                                      and try to put balanced number of pods into
                                      each bucket. We define a domain as a particular
                                      instance of a 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. - ScheduleAnyway
                                      tells the scheduler to schedule the pod in any
                                      location, but giving higher precedence to topologies
                                      that would help reduce the skew.
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty).'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly value true will force
                                          the readOnly setting in VolumeMounts. More
                                          info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                        type: boolean
                                      volumeID:
                                        description: 'volumeID is 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: 'cachingMode is the Host Caching
                                          mode: None, Read Only, Read Write.'
                                        type: string
                                      diskName:
                                        description: diskName is the Name of the data
                                          disk in the blob storage
                                        type: string
                                      diskURI:
                                        description: diskURI is the URI of data disk
                                          in the blob storage
                                        type: string
                                      fsType:
                                        description: fsType is 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: 'kind expected values are 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: readOnly 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: readOnly defaults to false (read/write).
                                          ReadOnly here will force the ReadOnly setting
                                          in VolumeMounts.
                                        type: boolean
                                      secretName:
                                        description: secretName is the  name of secret
                                          that contains Azure Storage Account Name
                                          and Key
                                        type: string
                                      shareName:
                                        description: shareName is the azure 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: 'monitors is 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: 'path is Optional: Used as the
                                          mounted root, rather than the full Ceph
                                          tree, default is /'
                                        type: string
                                      readOnly:
                                        description: 'readOnly is 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: 'secretFile is 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://examples.k8s.io/mysql-cinder-pd/README.md'
                                        type: string
                                      readOnly:
                                        description: 'readOnly 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      volumeID:
                                        description: 'volumeID 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items if unspecified, each key-value
                                          pair in the Data field of the referenced
                                          ConfigMap will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional specify whether the
                                          ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: fsType to mount. Ex. "ext4",
                                          "xfs", "ntfs". If not provided, the empty
                                          value is passed to the associated CSI driver
                                          which will determine the default filesystem
                                          to apply.
                                        type: string
                                      nodePublishSecretRef:
                                        description: nodePublishSecretRef is a reference
                                          to the secret object containing sensitive
                                          information to pass to the CSI driver to
                                          complete the CSI NodePublishVolume and NodeUnpublishVolume
                                          calls. This field is optional, and  may
                                          be empty if no secret is required. If the
                                          secret object contains more than one secret,
                                          all secret references are passed.
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      readOnly:
                                        description: readOnly 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. Must be an octal value
                                          between 0000 and 0777 or a decimal value
                                          between 0 and 511. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        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
                                              x-kubernetes-map-type: atomic
                                            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. YAML accepts both octal and
                                                decimal values, JSON requires decimal
                                                values for mode bits. If not specified,
                                                the volume defaultMode will be used.'
                                              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
                                              x-kubernetes-map-type: atomic
                                          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: 'medium represents what type
                                          of storage medium should back this directory.
                                          The default is "" which means to use the
                                          node''s default medium. Must be an empty
                                          string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                        type: string
                                      sizeLimit:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'sizeLimit is the total amount
                                          of local storage required for this EmptyDir
                                          volume. The size limit is also applicable
                                          for memory medium. The maximum usage on
                                          memory medium EmptyDir would be the minimum
                                          value between the SizeLimit specified here
                                          and the sum of memory limits of all containers
                                          in a pod. The default is nil which means
                                          that the limit is undefined. More info:
                                          https://kubernetes.'
                                        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.  The
                                          name of the PVC will be `<pod name>-<volume
                                          name>` where `<volume name>` is the name
                                          from the `PodSpec.Volumes` array entry.
                                        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.
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              finalizers:
                                                items:
                                                  type: string
                                                type: array
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              name:
                                                type: string
                                              namespace:
                                                type: string
                                            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: 'dataSource field can
                                                  be used to specify either: * An
                                                  existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                                  * An existing PVC (PersistentVolumeClaim)
                                                  If the provisioner or an external
                                                  controller can support the specified
                                                  data source, it will create a new
                                                  volume based on the contents of
                                                  the specified data source.'
                                                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
                                                x-kubernetes-map-type: atomic
                                              dataSourceRef:
                                                description: dataSourceRef specifies
                                                  the object from which to populate
                                                  the volume with data, if a non-empty
                                                  volume is desired. This may be any
                                                  object from a non-empty API group
                                                  (non core object) or a PersistentVolumeClaim
                                                  object. When this field is specified,
                                                  volume binding will only succeed
                                                  if the type of the specified object
                                                  matches some installed volume populator
                                                  or dynamic provisioner.
                                                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
                                                  namespace:
                                                    description: Namespace is the
                                                      namespace of resource being
                                                      referenced Note that when a
                                                      namespace is specified, a gateway.networking.k8s.io/ReferenceGrant
                                                      object is required in the referent
                                                      namespace to allow that namespace's
                                                      owner to accept the reference.
                                                      See the ReferenceGrant documentation
                                                      for details. (Alpha) This field
                                                      requires the CrossNamespaceVolumeDataSource
                                                      feature gate to be enabled.
                                                    type: string
                                                required:
                                                - kind
                                                - name
                                                type: object
                                              resources:
                                                description: 'resources represents
                                                  the minimum resources the volume
                                                  should have. If RecoverVolumeExpansionFailure
                                                  feature is enabled users are allowed
                                                  to specify resource requirements
                                                  that are lower than previous value
                                                  but must still be higher than capacity
                                                  recorded in the status field of
                                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                                properties:
                                                  claims:
                                                    description: "Claims lists the
                                                      names of resources, defined
                                                      in spec.resourceClaims, that
                                                      are used by this container.
                                                      \n This is an alpha field and
                                                      requires enabling the DynamicResourceAllocation
                                                      feature gate. \n This field
                                                      is immutable. It can only be
                                                      set for containers."
                                                    items:
                                                      description: ResourceClaim references
                                                        one entry in PodSpec.ResourceClaims.
                                                      properties:
                                                        name:
                                                          description: Name must match
                                                            the name of one entry
                                                            in pod.spec.resourceClaims
                                                            of the Pod where this
                                                            field is used. It makes
                                                            that resource available
                                                            inside a container.
                                                          type: string
                                                      required:
                                                      - name
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-map-keys:
                                                    - name
                                                    x-kubernetes-list-type: map
                                                  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. Requests cannot exceed
                                                      Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                    type: object
                                                type: object
                                              selector:
                                                description: selector is 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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              storageClassName:
                                                description: 'storageClassName is
                                                  the 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Ex. "ext4",
                                          "xfs", "ntfs". Implicitly inferred to be
                                          "ext4" if unspecified. TODO: how do we prevent
                                          errors in the filesystem from compromising
                                          the machine'
                                        type: string
                                      lun:
                                        description: 'lun is Optional: FC target lun
                                          number'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly is Optional: Defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      targetWWNs:
                                        description: 'targetWWNs is Optional: FC target
                                          worldwide names (WWNs)'
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        description: 'wwids 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: fsType is the 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: 'options is Optional: this field
                                          holds extra command options if any.'
                                        type: object
                                      readOnly:
                                        description: 'readOnly is Optional: defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      secretRef:
                                        description: 'secretRef is Optional: secretRef
                                          is reference to the secret object containing
                                          sensitive information to pass to the plugin
                                          scripts. This may be empty if no secret
                                          object is specified. If the secret object
                                          contains more than one secret, all secrets
                                          are passed to the plugin scripts.'
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    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: datasetName is Name of the dataset
                                          stored as metadata -> name on the dataset
                                          for Flocker should be considered as deprecated
                                        type: string
                                      datasetUUID:
                                        description: datasetUUID is the 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: 'fsType is filesystem type of
                                          the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        format: int32
                                        type: integer
                                      pdName:
                                        description: 'pdName is unique name of the
                                          PD resource in GCE. Used to identify the
                                          disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          ReadOnly setting in VolumeMounts. Defaults
                                          to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    description: 'gitRepo represents a git repository
                                      at a particular revision. DEPRECATED: GitRepo
                                      is deprecated. To provision a container with
                                      a git repo, mount an EmptyDir into an InitContainer
                                      that clones the repo using git, then mount the
                                      EmptyDir into the Pod''s container.'
                                    properties:
                                      directory:
                                        description: directory is the target directory
                                          name. Must not contain or start with '..'.  If
                                          '.' is supplied, the volume directory will
                                          be the git repository.  Otherwise, if specified,
                                          the volume will contain the git repository
                                          in the subdirectory with the given name.
                                        type: string
                                      repository:
                                        description: repository is the URL
                                        type: string
                                      revision:
                                        description: revision is the 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: 'endpoints is the endpoint name
                                          that details Glusterfs topology. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      path:
                                        description: 'path is the Glusterfs volume
                                          path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          Glusterfs volume to be mounted with read-only
                                          permissions. Defaults to false. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    description: 'hostPath represents a pre-existing
                                      file or directory on the host machine that is
                                      directly exposed to the container. This is generally
                                      used for system agents or other privileged things
                                      that are allowed to see the host machine. Most
                                      containers will NOT need this. More info: https://kubernetes.'
                                    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: chapAuthDiscovery defines whether
                                          support iSCSI Discovery CHAP authentication
                                        type: boolean
                                      chapAuthSession:
                                        description: chapAuthSession defines whether
                                          support iSCSI Session CHAP authentication
                                        type: boolean
                                      fsType:
                                        description: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      initiatorName:
                                        description: initiatorName is the 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: iqn is the target iSCSI Qualified
                                          Name.
                                        type: string
                                      iscsiInterface:
                                        description: iscsiInterface is the interface
                                          Name that uses an iSCSI transport. Defaults
                                          to 'default' (tcp).
                                        type: string
                                      lun:
                                        description: lun represents iSCSI Target Lun
                                          number.
                                        format: int32
                                        type: integer
                                      portals:
                                        description: portals is the 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: secretRef is the 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
                                        x-kubernetes-map-type: atomic
                                      targetPortal:
                                        description: targetPortal is 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: 'name of the volume. 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: readOnly 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: fsType is the 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: pdID is the 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: readOnly 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: projected items for all in one resources
                                      secrets, configmaps, and downward API
                                    properties:
                                      defaultMode:
                                        description: defaultMode are the 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. YAML accepts both octal and decimal
                                          values, JSON requires decimal values for
                                          mode bits. Directories within the path are
                                          not affected by this setting.
                                        format: int32
                                        type: integer
                                      sources:
                                        description: sources is the list of volume
                                          projections
                                        items:
                                          description: Projection that may be projected
                                            along with other supported volume types
                                          properties:
                                            configMap:
                                              description: configMap information about
                                                the configMap data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced ConfigMap
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional specify whether
                                                    the ConfigMap or its keys must
                                                    be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            downwardAPI:
                                              description: downwardAPI 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
                                                        x-kubernetes-map-type: atomic
                                                      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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        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
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              description: secret information about
                                                the secret data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced Secret
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional field specify
                                                    whether the Secret or its key
                                                    must be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            serviceAccountToken:
                                              description: serviceAccountToken is
                                                information about the serviceAccountToken
                                                data to project
                                              properties:
                                                audience:
                                                  description: audience is the intended
                                                    audience of the token. A recipient
                                                    of a token must identify itself
                                                    with an identifier specified in
                                                    the audience of the token, and
                                                    otherwise should reject the token.
                                                    The audience defaults to the identifier
                                                    of the apiserver.
                                                  type: string
                                                expirationSeconds:
                                                  description: expirationSeconds is
                                                    the requested duration of validity
                                                    of the service account token.
                                                    As the token approaches expiration,
                                                    the kubelet volume plugin will
                                                    proactively rotate the service
                                                    account token. The kubelet will
                                                    start trying to rotate the token
                                                    if the token is older than 80
                                                    percent of its time to live or
                                                    if the token is older than 24
                                                    hours.Defaults to 1 hour and must
                                                    be at least 10 minutes.
                                                  format: int64
                                                  type: integer
                                                path:
                                                  description: path is the path relative
                                                    to the mount point of the file
                                                    to project the token into.
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      image:
                                        description: 'image is 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: 'monitors is 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: 'pool is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: fsType is the 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: gateway is the host address of
                                          the ScaleIO API Gateway.
                                        type: string
                                      protectionDomain:
                                        description: protectionDomain is the name
                                          of the ScaleIO Protection Domain for the
                                          configured storage.
                                        type: string
                                      readOnly:
                                        description: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      sslEnabled:
                                        description: sslEnabled Flag enable/disable
                                          SSL communication with Gateway, default
                                          false
                                        type: boolean
                                      storageMode:
                                        description: storageMode indicates whether
                                          the storage for a volume should be ThickProvisioned
                                          or ThinProvisioned. Default is ThinProvisioned.
                                        type: string
                                      storagePool:
                                        description: storagePool is the ScaleIO Storage
                                          Pool associated with the protection domain.
                                        type: string
                                      system:
                                        description: system is the name of the storage
                                          system as configured in ScaleIO.
                                        type: string
                                      volumeName:
                                        description: volumeName is 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items If unspecified, each key-value
                                          pair in the Data field of the referenced
                                          Secret will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional field specify whether
                                          the Secret or its keys must be defined
                                        type: boolean
                                      secretName:
                                        description: 'secretName is the 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: fsType is the 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: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      volumeName:
                                        description: volumeName is the human-readable
                                          name of the StorageOS volume.  Volume names
                                          are only unique within a namespace.
                                        type: string
                                      volumeNamespace:
                                        description: volumeNamespace specifies the
                                          scope of the volume within StorageOS.  If
                                          no namespace is specified then the Pod's
                                          namespace will be used.  This allows the
                                          Kubernetes name scoping to be mirrored within
                                          StorageOS for tighter integration. Set VolumeName
                                          to any name to override the default behaviour.
                                          Set to "default" if you are not using namespaces
                                          within StorageOS.
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    description: vsphereVolume represents a vSphere
                                      volume attached and mounted on kubelets host
                                      machine
                                    properties:
                                      fsType:
                                        description: fsType is 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: storagePolicyID is the storage
                                          Policy Based Management (SPBM) profile ID
                                          associated with the StoragePolicyName.
                                        type: string
                                      storagePolicyName:
                                        description: storagePolicyName is the storage
                                          Policy Based Management (SPBM) profile name.
                                        type: string
                                      volumePath:
                                        description: volumePath is the path that identifies
                                          vSphere volume vmdk
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  type: object
                description: 'A map of PaddleReplicaType (type) to ReplicaSpec (value).
                  Specifies the Paddle cluster configuration. For example, { "Master":
                  PaddleReplicaSpec, "Worker": PaddleReplicaSpec, }'
                type: object
              runPolicy:
                description: RunPolicy encapsulates various runtime policies of the
                  distributed training job, for example how to clean up resources
                  and how long the job can stay active.
                properties:
                  activeDeadlineSeconds:
                    description: Specifies the duration in seconds relative to the
                      startTime that the job may be active before the system tries
                      to terminate it; value must be positive integer.
                    format: int64
                    type: integer
                  backoffLimit:
                    description: Optional number of retries before marking this job
                      failed.
                    format: int32
                    type: integer
                  cleanPodPolicy:
                    description: CleanPodPolicy defines the policy to kill pods after
                      the job completes. Default to None.
                    type: string
                  schedulingPolicy:
                    description: SchedulingPolicy defines the policy related to scheduling,
                      e.g. gang-scheduling
                    properties:
                      minAvailable:
                        format: int32
                        type: integer
                      minResources:
                        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
                        type: object
                      priorityClass:
                        type: string
                      queue:
                        type: string
                      scheduleTimeoutSeconds:
                        format: int32
                        type: integer
                    type: object
                  suspend:
                    default: false
                    description: suspend specifies whether the Job controller should
                      create Pods or not. If a Job is created with suspend set to
                      true, no Pods are created by the Job controller. If a Job is
                      suspended after creation (i.e. the flag goes from false to true),
                      the Job controller will delete all active Pods and PodGroups
                      associated with this Job. Users must design their workload to
                      gracefully handle this.
                    type: boolean
                  ttlSecondsAfterFinished:
                    description: TTLSecondsAfterFinished is the TTL to clean up jobs.
                      It may take extra ReconcilePeriod seconds for the cleanup, since
                      reconcile gets called periodically. Default to infinite.
                    format: int32
                    type: integer
                type: object
            required:
            - paddleReplicaSpecs
            type: object
          status:
            description: Most recently observed status of the PaddleJob. Read-only
              (modified by the system).
            properties:
              completionTime:
                description: Represents time when the job was completed. It is not
                  guaranteed to be set in happens-before order across separate operations.
                  It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              conditions:
                description: Conditions is an array of current observed job conditions.
                items:
                  description: JobCondition describes the state of the job at a certain
                    point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of job condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              lastReconcileTime:
                description: Represents last time when the job was reconciled. It
                  is not guaranteed to be set in happens-before order across separate
                  operations. It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              replicaStatuses:
                additionalProperties:
                  description: ReplicaStatus represents the current observed state
                    of the replica.
                  properties:
                    active:
                      description: The number of actively running pods.
                      format: int32
                      type: integer
                    failed:
                      description: The number of pods which reached phase Failed.
                      format: int32
                      type: integer
                    labelSelector:
                      description: 'Deprecated: Use Selector instead'
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    selector:
                      description: A Selector is a label query over a set of resources.
                        The result of matchLabels and matchExpressions are ANDed.
                        An empty Selector matches all objects. A null Selector matches
                        no objects.
                      type: string
                    succeeded:
                      description: The number of pods which reached phase Succeeded.
                      format: int32
                      type: integer
                  type: object
                description: ReplicaStatuses is map of ReplicaType and ReplicaStatus,
                  specifies the status of each replica.
                type: object
              startTime:
                description: Represents time when the job was acknowledged by the
                  job controller. It is not guaranteed to be set in happens-before
                  order across separate operations. It is represented in RFC3339 form
                  and is in UTC.
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      scale:
        labelSelectorPath: .status.replicaStatuses.Worker.selector
        specReplicasPath: .spec.paddleReplicaSpecs.Worker.replicas
        statusReplicasPath: .status.replicaStatuses.Worker.active
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: parallels.flows.knative.dev
spec:
  group: flows.knative.dev
  names:
    categories:
    - all
    - knative
    - flows
    kind: Parallel
    plural: parallels
    singular: parallel
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.address.url
      name: URL
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: Parallel defines conditional branches that will be wired in series
          through Channels and Subscriptions.
        properties:
          spec:
            description: Spec defines the desired state of the Parallel.
            properties:
              branches:
                description: Branches is the list of Filter/Subscribers pairs.
                items:
                  properties:
                    delivery:
                      description: Delivery is the delivery specification for events
                        to the subscriber This includes things like retries, DLQ,
                        etc.
                      properties:
                        backoffDelay:
                          description: 'BackoffDelay is the delay before retrying.
                            More information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                            - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                            backoff delay is backoffDelay*<numberOfRetries>. For exponential
                            policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                          type: string
                        backoffPolicy:
                          description: BackoffPolicy is the retry backoff policy (linear,
                            exponential).
                          type: string
                        deadLetterSink:
                          description: DeadLetterSink is the sink receiving event
                            that could not be sent to a destination.
                          properties:
                            ref:
                              description: Ref points to an Addressable.
                              properties:
                                apiVersion:
                                  description: API version of the referent.
                                  type: string
                                kind:
                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                namespace:
                                  description: 'Namespace of the referent. More info:
                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                                    This is optional field, it gets defaulted to the
                                    object holding it if left out.'
                                  type: string
                              type: object
                            uri:
                              description: URI can be an absolute URL(non-empty scheme
                                and non-empty host) pointing to the target or a relative
                                URI. Relative URIs will be resolved using the base
                                URI retrieved from Ref.
                              type: string
                          type: object
                        retry:
                          description: Retry is the minimum number of retries the
                            sender should attempt when sending an event before moving
                            it to the dead letter sink.
                          format: int32
                          type: integer
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    filter:
                      description: Filter is the expression guarding the branch
                      properties:
                        ref:
                          description: Ref points to an Addressable.
                          properties:
                            apiVersion:
                              description: API version of the referent.
                              type: string
                            kind:
                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            namespace:
                              description: 'Namespace of the referent. More info:
                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                                This is optional field, it gets defaulted to the object
                                holding it if left out.'
                              type: string
                          type: object
                        uri:
                          description: URI can be an absolute URL(non-empty scheme
                            and non-empty host) pointing to the target or a relative
                            URI. Relative URIs will be resolved using the base URI
                            retrieved from Ref.
                          type: string
                      type: object
                    reply:
                      description: Reply is a Reference to where the result of Subscriber
                        of this case gets sent to. If not specified, sent the result
                        to the Parallel Reply
                      properties:
                        ref:
                          description: Ref points to an Addressable.
                          properties:
                            apiVersion:
                              description: API version of the referent.
                              type: string
                            kind:
                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            namespace:
                              description: 'Namespace of the referent. More info:
                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                                This is optional field, it gets defaulted to the object
                                holding it if left out.'
                              type: string
                          type: object
                        uri:
                          description: URI can be an absolute URL(non-empty scheme
                            and non-empty host) pointing to the target or a relative
                            URI. Relative URIs will be resolved using the base URI
                            retrieved from Ref.
                          type: string
                      type: object
                    subscriber:
                      description: Subscriber receiving the event when the filter
                        passes
                      properties:
                        ref:
                          description: Ref points to an Addressable.
                          properties:
                            apiVersion:
                              description: API version of the referent.
                              type: string
                            kind:
                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            namespace:
                              description: 'Namespace of the referent. More info:
                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                                This is optional field, it gets defaulted to the object
                                holding it if left out.'
                              type: string
                          type: object
                        uri:
                          description: URI can be an absolute URL(non-empty scheme
                            and non-empty host) pointing to the target or a relative
                            URI. Relative URIs will be resolved using the base URI
                            retrieved from Ref.
                          type: string
                      type: object
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              channelTemplate:
                description: ChannelTemplate specifies which Channel CRD to use. If
                  left unspecified, it is set to the default Channel CRD for the namespace
                  (or cluster, in case there are no defaults for the namespace).
                properties:
                  apiVersion:
                    description: 'APIVersion defines the versioned schema of this
                      representation of an object. Servers should convert recognized
                      schemas to the latest internal value, and may reject unrecognized
                      values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                    type: string
                  kind:
                    description: 'Kind is a string value representing the REST resource
                      this object represents. Servers may infer this from the endpoint
                      the client submits requests to. Cannot be updated. In CamelCase.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  spec:
                    description: Spec defines the Spec to use for each channel created.
                      Passed in verbatim to the Channel CRD as Spec section.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              reply:
                description: Reply is a Reference to where the result of a case Subscriber
                  gets sent to when the case does not have a Reply
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
            type: object
          status:
            description: Status represents the current state of the Parallel. This
              data may be out of date.
            properties:
              address:
                properties:
                  url:
                    type: string
                type: object
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              branchStatuses:
                description: BranchStatuses is an array of corresponding to branch
                  statuses. Matches the Spec.Branches array in the order.
                items:
                  properties:
                    filterChannelStatus:
                      description: FilterChannelStatus corresponds to the filter channel
                        status.
                      properties:
                        channel:
                          description: Channel is the reference to the underlying
                            channel.
                          properties:
                            apiVersion:
                              description: API version of the referent.
                              type: string
                            fieldPath:
                              description: 'If referring to a piece of an object instead
                                of an entire object, this string should contain a
                                valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                                For example, if the object reference is to a container
                                within a pod, this would take on a value like: "spec.containers{name}"
                                (where "name" refers to the name of the container
                                that triggered the event) or if no container name
                                is specified "spec.containers[2]" (container with
                                index 2 in this pod). This syntax is chosen only to
                                have some well-defined way of referencing a part of
                                an object.'
                              type: string
                            kind:
                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            namespace:
                              description: 'Namespace of the referent. More info:
                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                              type: string
                            resourceVersion:
                              description: 'Specific resourceVersion to which this
                                reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                              type: string
                            uid:
                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                              type: string
                          type: object
                        ready:
                          description: ReadyCondition indicates whether the Channel
                            is ready or not.
                          properties:
                            message:
                              description: A human readable message indicating details
                                about the transition.
                              type: string
                            reason:
                              description: The reason for the condition's last transition.
                              type: string
                            severity:
                              description: Severity with which to treat failures of
                                this type of condition. When this is not specified,
                                it defaults to Error.
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              type: string
                            type:
                              description: Type of condition.
                              type: string
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                      type: object
                    filterSubscriptionStatus:
                      description: FilterSubscriptionStatus corresponds to the filter
                        subscription status.
                      properties:
                        ready:
                          description: ReadyCondition indicates whether the Subscription
                            is ready or not.
                          properties:
                            message:
                              description: A human readable message indicating details
                                about the transition.
                              type: string
                            reason:
                              description: The reason for the condition's last transition.
                              type: string
                            severity:
                              description: Severity with which to treat failures of
                                this type of condition. When this is not specified,
                                it defaults to Error.
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              type: string
                            type:
                              description: Type of condition.
                              type: string
                          type: object
                        subscription:
                          description: Subscription is the reference to the underlying
                            Subscription.
                          properties:
                            apiVersion:
                              description: API version of the referent.
                              type: string
                            fieldPath:
                              description: 'If referring to a piece of an object instead
                                of an entire object, this string should contain a
                                valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                                For example, if the object reference is to a container
                                within a pod, this would take on a value like: "spec.containers{name}"
                                (where "name" refers to the name of the container
                                that triggered the event) or if no container name
                                is specified "spec.containers[2]" (container with
                                index 2 in this pod). This syntax is chosen only to
                                have some well-defined way of referencing a part of
                                an object.'
                              type: string
                            kind:
                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            namespace:
                              description: 'Namespace of the referent. More info:
                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                              type: string
                            resourceVersion:
                              description: 'Specific resourceVersion to which this
                                reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                              type: string
                            uid:
                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                              type: string
                          type: object
                      type: object
                    subscriberSubscriptionStatus:
                      description: SubscriptionStatus corresponds to the subscriber
                        subscription status.
                      properties:
                        ready:
                          description: ReadyCondition indicates whether the Subscription
                            is ready or not.
                          properties:
                            message:
                              description: A human readable message indicating details
                                about the transition.
                              type: string
                            reason:
                              description: The reason for the condition's last transition.
                              type: string
                            severity:
                              description: Severity with which to treat failures of
                                this type of condition. When this is not specified,
                                it defaults to Error.
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              type: string
                            type:
                              description: Type of condition.
                              type: string
                          type: object
                        subscription:
                          description: Subscription is the reference to the underlying
                            Subscription.
                          properties:
                            apiVersion:
                              description: API version of the referent.
                              type: string
                            fieldPath:
                              description: 'If referring to a piece of an object instead
                                of an entire object, this string should contain a
                                valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                                For example, if the object reference is to a container
                                within a pod, this would take on a value like: "spec.containers{name}"
                                (where "name" refers to the name of the container
                                that triggered the event) or if no container name
                                is specified "spec.containers[2]" (container with
                                index 2 in this pod). This syntax is chosen only to
                                have some well-defined way of referencing a part of
                                an object.'
                              type: string
                            kind:
                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                              type: string
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            namespace:
                              description: 'Namespace of the referent. More info:
                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                              type: string
                            resourceVersion:
                              description: 'Specific resourceVersion to which this
                                reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                              type: string
                            uid:
                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                              type: string
                          type: object
                      type: object
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  type: object
                type: array
              ingressChannelStatus:
                description: IngressChannelStatus corresponds to the ingress channel
                  status.
                properties:
                  channel:
                    description: Channel is the reference to the underlying channel.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      fieldPath:
                        description: 'If referring to a piece of an object instead
                          of an entire object, this string should contain a valid
                          JSON/Go field access statement, such as desiredState.manifest.containers[2].
                          For example, if the object reference is to a container within
                          a pod, this would take on a value like: "spec.containers{name}"
                          (where "name" refers to the name of the container that triggered
                          the event) or if no container name is specified "spec.containers[2]"
                          (container with index 2 in this pod). This syntax is chosen
                          only to have some well-defined way of referencing a part
                          of an object.'
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                        type: string
                      resourceVersion:
                        description: 'Specific resourceVersion to which this reference
                          is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                        type: string
                      uid:
                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                        type: string
                    type: object
                  ready:
                    description: ReadyCondition indicates whether the Channel is ready
                      or not.
                    properties:
                      message:
                        description: A human readable message indicating details about
                          the transition.
                        type: string
                      reason:
                        description: The reason for the condition's last transition.
                        type: string
                      severity:
                        description: Severity with which to treat failures of this
                          type of condition. When this is not specified, it defaults
                          to Error.
                        type: string
                      status:
                        description: Status of the condition, one of True, False,
                          Unknown.
                        type: string
                      type:
                        description: Type of condition.
                        type: string
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    istio: security
    release: istio
  name: peerauthentications.security.istio.io
spec:
  group: security.istio.io
  names:
    categories:
    - istio-io
    - security-istio-io
    kind: PeerAuthentication
    listKind: PeerAuthenticationList
    plural: peerauthentications
    shortNames:
    - pa
    singular: peerauthentication
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Defines the mTLS mode used for peer authentication.
      jsonPath: .spec.mtls.mode
      name: Mode
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: PeerAuthentication defines how traffic will be tunneled (or
              not) to the sidecar.
            properties:
              mtls:
                description: Mutual TLS settings for workload.
                properties:
                  mode:
                    description: Defines the mTLS mode used for peer authentication.
                    enum:
                    - UNSET
                    - DISABLE
                    - PERMISSIVE
                    - STRICT
                    type: string
                type: object
              portLevelMtls:
                additionalProperties:
                  properties:
                    mode:
                      description: Defines the mTLS mode used for peer authentication.
                      enum:
                      - UNSET
                      - DISABLE
                      - PERMISSIVE
                      - STRICT
                      type: string
                  type: object
                description: Port specific mutual TLS settings.
                type: object
              selector:
                description: The selector determines the workloads to apply the ChannelAuthentication
                  on.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    registry.knative.dev/eventTypes: |
      [
        { "type": "dev.knative.sources.ping" }
      ]
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/source: "true"
    eventing.knative.dev/source: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: pingsources.sources.knative.dev
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          name: eventing-webhook
          namespace: knative-eventing
      conversionReviewVersions:
      - v1
      - v1beta1
  group: sources.knative.dev
  names:
    categories:
    - all
    - knative
    - sources
    kind: PingSource
    plural: pingsources
    singular: pingsource
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.sinkUri
      name: Sink
      type: string
    - jsonPath: .spec.schedule
      name: Schedule
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1beta2
    schema:
      openAPIV3Schema:
        description: PingSource describes an event source with a fixed payload produced
          on a specified cron schedule.
        properties:
          spec:
            description: PingSourceSpec defines the desired state of the PingSource
              (from the client).
            properties:
              ceOverrides:
                description: CloudEventOverrides defines overrides to control the
                  output format and modifications of the event sent to the sink.
                properties:
                  extensions:
                    additionalProperties:
                      type: string
                    description: Extensions specify what attribute are added or overridden
                      on the outbound event. Each `Extensions` key-value pair are
                      set on the event as an attribute extension independently.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              contentType:
                description: ContentType is the media type of `data` or `dataBase64`.
                  Default is empty.
                type: string
              data:
                description: Data is data used as the body of the event posted to
                  the sink. Default is empty. Mutually exclusive with `dataBase64`.
                type: string
              dataBase64:
                description: DataBase64 is the base64-encoded string of the actual
                  event's body posted to the sink. Default is empty. Mutually exclusive
                  with `data`.
                type: string
              schedule:
                description: Schedule is the cron schedule. Defaults to `* * * * *`.
                type: string
              sink:
                description: Sink is a reference to an object that will resolve to
                  a uri to use as the sink.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
              timezone:
                description: 'Timezone modifies the actual time relative to the specified
                  timezone. Defaults to the system time zone. More general information
                  about time zones: https://www.iana.org/time-zones List of valid
                  timezone values: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'
                type: string
            type: object
          status:
            description: PingSourceStatus defines the observed state of PingSource
              (from the controller).
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              ceAttributes:
                description: CloudEventAttributes are the specific attributes that
                  the Source uses as part of its CloudEvents.
                items:
                  properties:
                    source:
                      description: Source is the CloudEvents source attribute.
                      type: string
                    type:
                      description: Type refers to the CloudEvent type attribute.
                      type: string
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the "Generation" of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              sinkUri:
                description: SinkURI is the current active sink URI that has been
                  configured for the Source.
                type: string
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .status.sinkUri
      name: Sink
      type: string
    - jsonPath: .spec.schedule
      name: Schedule
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: PingSource describes an event source with a fixed payload produced
          on a specified cron schedule.
        properties:
          spec:
            description: PingSourceSpec defines the desired state of the PingSource
              (from the client).
            properties:
              ceOverrides:
                description: CloudEventOverrides defines overrides to control the
                  output format and modifications of the event sent to the sink.
                properties:
                  extensions:
                    additionalProperties:
                      type: string
                    description: Extensions specify what attribute are added or overridden
                      on the outbound event. Each `Extensions` key-value pair are
                      set on the event as an attribute extension independently.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              contentType:
                description: ContentType is the media type of `data` or `dataBase64`.
                  Default is empty.
                type: string
              data:
                description: Data is data used as the body of the event posted to
                  the sink. Default is empty. Mutually exclusive with `dataBase64`.
                type: string
              dataBase64:
                description: DataBase64 is the base64-encoded string of the actual
                  event's body posted to the sink. Default is empty. Mutually exclusive
                  with `data`.
                type: string
              schedule:
                description: Schedule is the cron schedule. Defaults to `* * * * *`.
                type: string
              sink:
                description: Sink is a reference to an object that will resolve to
                  a uri to use as the sink.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
              timezone:
                description: 'Timezone modifies the actual time relative to the specified
                  timezone. Defaults to the system time zone. More general information
                  about time zones: https://www.iana.org/time-zones List of valid
                  timezone values: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'
                type: string
            type: object
          status:
            description: PingSourceStatus defines the observed state of PingSource
              (from the controller).
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              ceAttributes:
                description: CloudEventAttributes are the specific attributes that
                  the Source uses as part of its CloudEvents.
                items:
                  properties:
                    source:
                      description: Source is the CloudEvents source attribute.
                      type: string
                    type:
                      description: Type refers to the CloudEvent type attribute.
                      type: string
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the "Generation" of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              sinkUri:
                description: SinkURI is the current active sink URI that has been
                  configured for the Source.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: podautoscalers.autoscaling.internal.knative.dev
spec:
  group: autoscaling.internal.knative.dev
  names:
    categories:
    - knative-internal
    - autoscaling
    kind: PodAutoscaler
    plural: podautoscalers
    shortNames:
    - kpa
    - pa
    singular: podautoscaler
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.desiredScale
      name: DesiredScale
      type: integer
    - jsonPath: .status.actualScale
      name: ActualScale
      type: integer
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: 'PodAutoscaler is a Knative abstraction that encapsulates the
          interface by which Knative components instantiate autoscalers.  This definition
          is an abstraction that may be backed by multiple definitions.  For more
          information, see the Knative Pluggability presentation: https://docs.google.com/presentation/d/19vW9HFZ6Puxt31biNZF3uLRejDmu82rxJIk1cWmxF7w/edit'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec holds the desired state of the PodAutoscaler (from the
              client).
            properties:
              containerConcurrency:
                description: ContainerConcurrency specifies the maximum allowed in-flight
                  (concurrent) requests per container of the Revision. Defaults to
                  `0` which means unlimited concurrency.
                format: int64
                type: integer
              protocolType:
                description: The application-layer protocol. Matches `ProtocolType`
                  inferred from the revision spec.
                type: string
              reachability:
                description: Reachability specifies whether or not the `ScaleTargetRef`
                  can be reached (ie. has a route). Defaults to `ReachabilityUnknown`
                type: string
              scaleTargetRef:
                description: ScaleTargetRef defines the /scale-able resource that
                  this PodAutoscaler is responsible for quickly right-sizing.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
            required:
            - protocolType
            - scaleTargetRef
            type: object
          status:
            description: Status communicates the observed state of the PodAutoscaler
              (from the controller).
            properties:
              actualScale:
                description: ActualScale shows the actual number of replicas for the
                  revision.
                format: int32
                type: integer
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              desiredScale:
                description: DesiredScale shows the current desired number of replicas
                  for the revision.
                format: int32
                type: integer
              metricsServiceName:
                description: MetricsServiceName is the K8s Service name that provides
                  revision metrics. The service is managed by the PA object.
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              serviceName:
                description: ServiceName is the K8s Service name that serves the revision,
                  scaled by this PA. The service is created and owned by the ServerlessService
                  object owned by this PA.
                type: string
            required:
            - metricsServiceName
            - serviceName
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: poddefaults.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: PodDefault
    listKind: PodDefaultList
    plural: poddefaults
    singular: poddefault
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              annotations:
                additionalProperties:
                  type: string
                type: object
              args:
                items:
                  type: string
                type: array
              automountServiceAccountToken:
                type: boolean
              command:
                items:
                  type: string
                type: array
              desc:
                type: string
              env:
                items:
                  properties:
                    name:
                      type: string
                    value:
                      type: string
                    valueFrom:
                      properties:
                        configMapKeyRef:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        fieldRef:
                          properties:
                            apiVersion:
                              type: string
                            fieldPath:
                              type: string
                          required:
                          - fieldPath
                          type: object
                        resourceFieldRef:
                          properties:
                            containerName:
                              type: string
                            divisor:
                              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
                            resource:
                              type: string
                          required:
                          - resource
                          type: object
                        secretKeyRef:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      type: object
                  required:
                  - name
                  type: object
                type: array
              envFrom:
                items:
                  properties:
                    configMapRef:
                      properties:
                        name:
                          type: string
                        optional:
                          type: boolean
                      type: object
                    prefix:
                      type: string
                    secretRef:
                      properties:
                        name:
                          type: string
                        optional:
                          type: boolean
                      type: object
                  type: object
                type: array
              imagePullSecrets:
                items:
                  properties:
                    name:
                      type: string
                  type: object
                type: array
              initContainers:
                items:
                  properties:
                    args:
                      items:
                        type: string
                      type: array
                    command:
                      items:
                        type: string
                      type: array
                    env:
                      items:
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                          valueFrom:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                    envFrom:
                      items:
                        properties:
                          configMapRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                          prefix:
                            type: string
                          secretRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                        type: object
                      type: array
                    image:
                      type: string
                    imagePullPolicy:
                      type: string
                    lifecycle:
                      properties:
                        postStart:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                        preStop:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                      type: object
                    livenessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    name:
                      type: string
                    ports:
                      items:
                        properties:
                          containerPort:
                            format: int32
                            type: integer
                          hostIP:
                            type: string
                          hostPort:
                            format: int32
                            type: integer
                          name:
                            type: string
                          protocol:
                            default: TCP
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                      x-kubernetes-list-map-keys:
                      - containerPort
                      - protocol
                      x-kubernetes-list-type: map
                    readinessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    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
                          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
                          type: object
                      type: object
                    securityContext:
                      properties:
                        allowPrivilegeEscalation:
                          type: boolean
                        capabilities:
                          properties:
                            add:
                              items:
                                type: string
                              type: array
                            drop:
                              items:
                                type: string
                              type: array
                          type: object
                        privileged:
                          type: boolean
                        procMount:
                          type: string
                        readOnlyRootFilesystem:
                          type: boolean
                        runAsGroup:
                          format: int64
                          type: integer
                        runAsNonRoot:
                          type: boolean
                        runAsUser:
                          format: int64
                          type: integer
                        seLinuxOptions:
                          properties:
                            level:
                              type: string
                            role:
                              type: string
                            type:
                              type: string
                            user:
                              type: string
                          type: object
                        seccompProfile:
                          properties:
                            localhostProfile:
                              type: string
                            type:
                              type: string
                          required:
                          - type
                          type: object
                        windowsOptions:
                          properties:
                            gmsaCredentialSpec:
                              type: string
                            gmsaCredentialSpecName:
                              type: string
                            hostProcess:
                              type: boolean
                            runAsUserName:
                              type: string
                          type: object
                      type: object
                    startupProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    stdin:
                      type: boolean
                    stdinOnce:
                      type: boolean
                    terminationMessagePath:
                      type: string
                    terminationMessagePolicy:
                      type: string
                    tty:
                      type: boolean
                    volumeDevices:
                      items:
                        properties:
                          devicePath:
                            type: string
                          name:
                            type: string
                        required:
                        - devicePath
                        - name
                        type: object
                      type: array
                    volumeMounts:
                      items:
                        properties:
                          mountPath:
                            type: string
                          mountPropagation:
                            type: string
                          name:
                            type: string
                          readOnly:
                            type: boolean
                          subPath:
                            type: string
                          subPathExpr:
                            type: string
                        required:
                        - mountPath
                        - name
                        type: object
                      type: array
                    workingDir:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              labels:
                additionalProperties:
                  type: string
                type: object
              selector:
                properties:
                  matchExpressions:
                    items:
                      properties:
                        key:
                          type: string
                        operator:
                          type: string
                        values:
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              serviceAccountName:
                type: string
              sidecars:
                items:
                  properties:
                    args:
                      items:
                        type: string
                      type: array
                    command:
                      items:
                        type: string
                      type: array
                    env:
                      items:
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                          valueFrom:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                    envFrom:
                      items:
                        properties:
                          configMapRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                          prefix:
                            type: string
                          secretRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                        type: object
                      type: array
                    image:
                      type: string
                    imagePullPolicy:
                      type: string
                    lifecycle:
                      properties:
                        postStart:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                        preStop:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                      type: object
                    livenessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    name:
                      type: string
                    ports:
                      items:
                        properties:
                          containerPort:
                            format: int32
                            type: integer
                          hostIP:
                            type: string
                          hostPort:
                            format: int32
                            type: integer
                          name:
                            type: string
                          protocol:
                            default: TCP
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                      x-kubernetes-list-map-keys:
                      - containerPort
                      - protocol
                      x-kubernetes-list-type: map
                    readinessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    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
                          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
                          type: object
                      type: object
                    securityContext:
                      properties:
                        allowPrivilegeEscalation:
                          type: boolean
                        capabilities:
                          properties:
                            add:
                              items:
                                type: string
                              type: array
                            drop:
                              items:
                                type: string
                              type: array
                          type: object
                        privileged:
                          type: boolean
                        procMount:
                          type: string
                        readOnlyRootFilesystem:
                          type: boolean
                        runAsGroup:
                          format: int64
                          type: integer
                        runAsNonRoot:
                          type: boolean
                        runAsUser:
                          format: int64
                          type: integer
                        seLinuxOptions:
                          properties:
                            level:
                              type: string
                            role:
                              type: string
                            type:
                              type: string
                            user:
                              type: string
                          type: object
                        seccompProfile:
                          properties:
                            localhostProfile:
                              type: string
                            type:
                              type: string
                          required:
                          - type
                          type: object
                        windowsOptions:
                          properties:
                            gmsaCredentialSpec:
                              type: string
                            gmsaCredentialSpecName:
                              type: string
                            hostProcess:
                              type: boolean
                            runAsUserName:
                              type: string
                          type: object
                      type: object
                    startupProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    stdin:
                      type: boolean
                    stdinOnce:
                      type: boolean
                    terminationMessagePath:
                      type: string
                    terminationMessagePolicy:
                      type: string
                    tty:
                      type: boolean
                    volumeDevices:
                      items:
                        properties:
                          devicePath:
                            type: string
                          name:
                            type: string
                        required:
                        - devicePath
                        - name
                        type: object
                      type: array
                    volumeMounts:
                      items:
                        properties:
                          mountPath:
                            type: string
                          mountPropagation:
                            type: string
                          name:
                            type: string
                          readOnly:
                            type: boolean
                          subPath:
                            type: string
                          subPathExpr:
                            type: string
                        required:
                        - mountPath
                        - name
                        type: object
                      type: array
                    workingDir:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              tolerations:
                items:
                  properties:
                    effect:
                      type: string
                    key:
                      type: string
                    operator:
                      type: string
                    tolerationSeconds:
                      format: int64
                      type: integer
                    value:
                      type: string
                  type: object
                type: array
              volumeMounts:
                items:
                  properties:
                    mountPath:
                      type: string
                    mountPropagation:
                      type: string
                    name:
                      type: string
                    readOnly:
                      type: boolean
                    subPath:
                      type: string
                    subPathExpr:
                      type: string
                  required:
                  - mountPath
                  - name
                  type: object
                type: array
              volumes:
                items:
                  properties:
                    awsElasticBlockStore:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      properties:
                        cachingMode:
                          type: string
                        diskName:
                          type: string
                        diskURI:
                          type: string
                        fsType:
                          type: string
                        kind:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      properties:
                        readOnly:
                          type: boolean
                        secretName:
                          type: string
                        shareName:
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      properties:
                        monitors:
                          items:
                            type: string
                          type: array
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        secretFile:
                          type: string
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        user:
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        name:
                          type: string
                        optional:
                          type: boolean
                      type: object
                    csi:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        nodePublishSecretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        readOnly:
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                            required:
                            - path
                            type: object
                          type: array
                      type: object
                    emptyDir:
                      properties:
                        medium:
                          type: string
                        sizeLimit:
                          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
                      type: object
                    ephemeral:
                      properties:
                        volumeClaimTemplate:
                          properties:
                            metadata:
                              type: object
                            spec:
                              properties:
                                accessModes:
                                  items:
                                    type: string
                                  type: array
                                dataSource:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                dataSourceRef:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                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
                                      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
                                      type: object
                                  type: object
                                selector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                storageClassName:
                                  type: string
                                volumeMode:
                                  type: string
                                volumeName:
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      properties:
                        fsType:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        targetWWNs:
                          items:
                            type: string
                          type: array
                        wwids:
                          items:
                            type: string
                          type: array
                      type: object
                    flexVolume:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          type: object
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                      required:
                      - driver
                      type: object
                    flocker:
                      properties:
                        datasetName:
                          type: string
                        datasetUUID:
                          type: string
                      type: object
                    gcePersistentDisk:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        pdName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      properties:
                        directory:
                          type: string
                        repository:
                          type: string
                        revision:
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      properties:
                        endpoints:
                          type: string
                        path:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      properties:
                        path:
                          type: string
                        type:
                          type: string
                      required:
                      - path
                      type: object
                    iscsi:
                      properties:
                        chapAuthDiscovery:
                          type: boolean
                        chapAuthSession:
                          type: boolean
                        fsType:
                          type: string
                        initiatorName:
                          type: string
                        iqn:
                          type: string
                        iscsiInterface:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        portals:
                          items:
                            type: string
                          type: array
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        targetPortal:
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      type: string
                    nfs:
                      properties:
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        server:
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      properties:
                        claimName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      properties:
                        fsType:
                          type: string
                        pdID:
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        sources:
                          items:
                            properties:
                              configMap:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              downwardAPI:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        fieldRef:
                                          properties:
                                            apiVersion:
                                              type: string
                                            fieldPath:
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                        resourceFieldRef:
                                          properties:
                                            containerName:
                                              type: string
                                            divisor:
                                              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
                                            resource:
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                      required:
                                      - path
                                      type: object
                                    type: array
                                type: object
                              secret:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              serviceAccountToken:
                                properties:
                                  audience:
                                    type: string
                                  expirationSeconds:
                                    format: int64
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                      type: object
                    quobyte:
                      properties:
                        group:
                          type: string
                        readOnly:
                          type: boolean
                        registry:
                          type: string
                        tenant:
                          type: string
                        user:
                          type: string
                        volume:
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      properties:
                        fsType:
                          type: string
                        image:
                          type: string
                        keyring:
                          type: string
                        monitors:
                          items:
                            type: string
                          type: array
                        pool:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        user:
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      properties:
                        fsType:
                          type: string
                        gateway:
                          type: string
                        protectionDomain:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        sslEnabled:
                          type: boolean
                        storageMode:
                          type: string
                        storagePool:
                          type: string
                        system:
                          type: string
                        volumeName:
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        optional:
                          type: boolean
                        secretName:
                          type: string
                      type: object
                    storageos:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        volumeName:
                          type: string
                        volumeNamespace:
                          type: string
                      type: object
                    vsphereVolume:
                      properties:
                        fsType:
                          type: string
                        storagePolicyID:
                          type: string
                        storagePolicyName:
                          type: string
                        volumePath:
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
            required:
            - selector
            type: object
          status:
            type: object
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  labels:
    kustomize.component: profiles
  name: profiles.kubeflow.org
spec:
  conversion:
    strategy: None
  group: kubeflow.org
  names:
    kind: Profile
    listKind: ProfileList
    plural: profiles
    singular: profile
  preserveUnknownFields: false
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: Profile is the Schema for the profiles API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: ProfileSpec defines the desired state of Profile
            properties:
              owner:
                description: The profile owner
                properties:
                  apiGroup:
                    description: APIGroup holds the API group of the referenced subject.
                      Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io"
                      for User and Group subjects.
                    type: string
                  kind:
                    description: Kind of object being referenced. Values defined by
                      this API group are "User", "Group", and "ServiceAccount". If
                      the Authorizer does not recognized the kind value, the Authorizer
                      should report an error.
                    type: string
                  name:
                    description: Name of the object being referenced.
                    type: string
                  namespace:
                    description: Namespace of the referenced object.  If the object
                      kind is non-namespace, such as "User" or "Group", and this value
                      is not empty the Authorizer should report an error.
                    type: string
                required:
                - kind
                - name
                type: object
              plugins:
                items:
                  description: Plugin is for customize actions on different platform.
                  properties:
                    apiVersion:
                      description: 'APIVersion defines the versioned schema of this
                        representation of an object. Servers should convert recognized
                        schemas to the latest internal value, and may reject unrecognized
                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                      type: string
                    kind:
                      description: 'Kind is a string value representing the REST resource
                        this object represents. Servers may infer this from the endpoint
                        the client submits requests to. Cannot be updated. In CamelCase.
                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    spec:
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                  type: object
                type: array
              resourceQuotaSpec:
                description: Resourcequota that will be applied to target namespace
                properties:
                  hard:
                    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: 'hard is the set of desired hard limits for each
                      named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/'
                    type: object
                  scopeSelector:
                    description: scopeSelector is also a collection of filters like
                      scopes that must match each object tracked by a quota but expressed
                      using ScopeSelectorOperator in combination with possible values.
                      For a resource to match, both scopes AND scopeSelector (if specified
                      in spec), must be matched.
                    properties:
                      matchExpressions:
                        description: A list of scope selector requirements by scope
                          of the resources.
                        items:
                          description: A scoped-resource selector requirement is a
                            selector that contains values, a scope name, and an operator
                            that relates the scope name and values.
                          properties:
                            operator:
                              description: Represents a scope's relationship to a
                                set of values. Valid operators are In, NotIn, Exists,
                                DoesNotExist.
                              type: string
                            scopeName:
                              description: The name of the scope that the selector
                                applies to.
                              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. This array is replaced during
                                a strategic merge patch.
                              items:
                                type: string
                              type: array
                          required:
                          - operator
                          - scopeName
                          type: object
                        type: array
                    type: object
                  scopes:
                    description: A collection of filters that must match each object
                      tracked by a quota. If not specified, the quota matches all
                      objects.
                    items:
                      description: A ResourceQuotaScope defines a filter that must
                        match each object tracked by a quota
                      type: string
                    type: array
                type: object
            type: object
          status:
            description: ProfileStatus defines the observed state of Profile
            properties:
              conditions:
                items:
                  properties:
                    message:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Profile is the Schema for the profiles API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: ProfileSpec defines the desired state of Profile
            properties:
              owner:
                description: The profile owner
                properties:
                  apiGroup:
                    description: APIGroup holds the API group of the referenced subject.
                      Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io"
                      for User and Group subjects.
                    type: string
                  kind:
                    description: Kind of object being referenced. Values defined by
                      this API group are "User", "Group", and "ServiceAccount". If
                      the Authorizer does not recognized the kind value, the Authorizer
                      should report an error.
                    type: string
                  name:
                    description: Name of the object being referenced.
                    type: string
                  namespace:
                    description: Namespace of the referenced object.  If the object
                      kind is non-namespace, such as "User" or "Group", and this value
                      is not empty the Authorizer should report an error.
                    type: string
                required:
                - kind
                - name
                type: object
              plugins:
                items:
                  description: Plugin is for customize actions on different platform.
                  properties:
                    apiVersion:
                      description: 'APIVersion defines the versioned schema of this
                        representation of an object. Servers should convert recognized
                        schemas to the latest internal value, and may reject unrecognized
                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                      type: string
                    kind:
                      description: 'Kind is a string value representing the REST resource
                        this object represents. Servers may infer this from the endpoint
                        the client submits requests to. Cannot be updated. In CamelCase.
                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    spec:
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                  type: object
                type: array
              resourceQuotaSpec:
                description: Resourcequota that will be applied to target namespace
                properties:
                  hard:
                    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: 'hard is the set of desired hard limits for each
                      named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/'
                    type: object
                  scopeSelector:
                    description: scopeSelector is also a collection of filters like
                      scopes that must match each object tracked by a quota but expressed
                      using ScopeSelectorOperator in combination with possible values.
                      For a resource to match, both scopes AND scopeSelector (if specified
                      in spec), must be matched.
                    properties:
                      matchExpressions:
                        description: A list of scope selector requirements by scope
                          of the resources.
                        items:
                          description: A scoped-resource selector requirement is a
                            selector that contains values, a scope name, and an operator
                            that relates the scope name and values.
                          properties:
                            operator:
                              description: Represents a scope's relationship to a
                                set of values. Valid operators are In, NotIn, Exists,
                                DoesNotExist.
                              type: string
                            scopeName:
                              description: The name of the scope that the selector
                                applies to.
                              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. This array is replaced during
                                a strategic merge patch.
                              items:
                                type: string
                              type: array
                          required:
                          - operator
                          - scopeName
                          type: object
                        type: array
                    type: object
                  scopes:
                    description: A collection of filters that must match each object
                      tracked by a quota. If not specified, the quota matches all
                      objects.
                    items:
                      description: A ResourceQuotaScope defines a filter that must
                        match each object tracked by a quota
                      type: string
                    type: array
                type: object
            type: object
          status:
            description: ProfileStatus defines the observed state of Profile
            properties:
              conditions:
                items:
                  properties:
                    message:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: proxyconfigs.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: ProxyConfig
    listKind: ProxyConfigList
    plural: proxyconfigs
    singular: proxyconfig
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Provides configuration for individual workloads. See more
              details at: https://istio.io/docs/reference/config/networking/proxy-config.html'
            properties:
              concurrency:
                description: The number of worker threads to run.
                nullable: true
                type: integer
              environmentVariables:
                additionalProperties:
                  type: string
                description: Additional environment variables for the proxy.
                type: object
              image:
                description: Specifies the details of the proxy image.
                properties:
                  imageType:
                    description: The image type of the image.
                    type: string
                type: object
              selector:
                description: Optional.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: pytorchjobs.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: PyTorchJob
    listKind: PyTorchJobList
    plural: pytorchjobs
    singular: pytorchjob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: State
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: PyTorchJob Represents a PyTorchJob resource.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Specification of the desired state of the PyTorchJob.
            properties:
              elasticPolicy:
                properties:
                  maxReplicas:
                    description: upper limit for the number of pods that can be set
                      by the autoscaler; cannot be smaller than MinReplicas, defaults
                      to null.
                    format: int32
                    type: integer
                  maxRestarts:
                    format: int32
                    type: integer
                  metrics:
                    description: Metrics contains the specifications which are used
                      to calculate the desired replica count (the maximum replica
                      count across all metrics will be used).  The desired replica
                      count is calculated with multiplying the ratio between the target
                      value and the current value by the current number of pods. Ergo,
                      metrics used must decrease as the pod count is increased, and
                      vice-versa.
                    items:
                      description: MetricSpec specifies how to scale based on a single
                        metric (only `type` and one other matching field should be
                        set at once).
                      properties:
                        containerResource:
                          description: containerResource refers to a resource metric
                            (such as those specified in requests and limits) known
                            to Kubernetes describing a single container in each pod
                            of the current scale target (e.g. CPU or memory). Such
                            metrics are built in to Kubernetes, and have special scaling
                            options on top of those available to normal per-pod metrics
                            using the "pods" source.
                          properties:
                            container:
                              description: container is the name of the container
                                in the pods of the scaling target
                              type: string
                            name:
                              description: name is the name of the resource in question.
                              type: string
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - container
                          - name
                          - target
                          type: object
                        external:
                          description: external refers to a global metric that is
                            not associated with any Kubernetes object. It allows autoscaling
                            based on information coming from components running outside
                            of cluster (for example length of queue in cloud messaging
                            service, or QPS from loadbalancer running outside of cluster).
                          properties:
                            metric:
                              description: metric identifies the target metric by
                                name and selector
                              properties:
                                name:
                                  description: name is the name of the given metric
                                  type: string
                                selector:
                                  description: selector is the string-encoded form
                                    of a standard kubernetes label selector for the
                                    given metric When set, it is passed as an additional
                                    parameter to the metrics server for more specific
                                    metrics scoping. When unset, just the metricName
                                    will be used to gather metrics.
                                  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. This
                                              array is replaced during a strategic
                                              merge patch.
                                            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. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - name
                              type: object
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - metric
                          - target
                          type: object
                        object:
                          description: object refers to a metric describing a single
                            kubernetes object (for example, hits-per-second on an
                            Ingress object).
                          properties:
                            describedObject:
                              description: describedObject specifies the descriptions
                                of a object,such as kind,name apiVersion
                              properties:
                                apiVersion:
                                  description: apiVersion is the API version of the
                                    referent
                                  type: string
                                kind:
                                  description: 'kind is the kind of the referent;
                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                  type: string
                                name:
                                  description: 'name is the name of the referent;
                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              required:
                              - kind
                              - name
                              type: object
                            metric:
                              description: metric identifies the target metric by
                                name and selector
                              properties:
                                name:
                                  description: name is the name of the given metric
                                  type: string
                                selector:
                                  description: selector is the string-encoded form
                                    of a standard kubernetes label selector for the
                                    given metric When set, it is passed as an additional
                                    parameter to the metrics server for more specific
                                    metrics scoping. When unset, just the metricName
                                    will be used to gather metrics.
                                  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. This
                                              array is replaced during a strategic
                                              merge patch.
                                            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. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - name
                              type: object
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - describedObject
                          - metric
                          - target
                          type: object
                        pods:
                          description: pods refers to a metric describing each pod
                            in the current scale target (for example, transactions-processed-per-second).  The
                            values will be averaged together before being compared
                            to the target value.
                          properties:
                            metric:
                              description: metric identifies the target metric by
                                name and selector
                              properties:
                                name:
                                  description: name is the name of the given metric
                                  type: string
                                selector:
                                  description: selector is the string-encoded form
                                    of a standard kubernetes label selector for the
                                    given metric When set, it is passed as an additional
                                    parameter to the metrics server for more specific
                                    metrics scoping. When unset, just the metricName
                                    will be used to gather metrics.
                                  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. This
                                              array is replaced during a strategic
                                              merge patch.
                                            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. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - name
                              type: object
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - metric
                          - target
                          type: object
                        resource:
                          description: resource refers to a resource metric (such
                            as those specified in requests and limits) known to Kubernetes
                            describing each pod in the current scale target (e.g.
                            CPU or memory). Such metrics are built in to Kubernetes,
                            and have special scaling options on top of those available
                            to normal per-pod metrics using the "pods" source.
                          properties:
                            name:
                              description: name is the name of the resource in question.
                              type: string
                            target:
                              description: target specifies the target value for the
                                given metric
                              properties:
                                averageUtilization:
                                  description: averageUtilization is the target value
                                    of the average of the resource metric across all
                                    relevant pods, represented as a percentage of
                                    the requested value of the resource for the pods.
                                    Currently only valid for Resource metric source
                                    type
                                  format: int32
                                  type: integer
                                averageValue:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: averageValue is the target value of
                                    the average of the metric across all relevant
                                    pods (as a quantity)
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type:
                                  description: type represents whether the metric
                                    type is Utilization, Value, or AverageValue
                                  type: string
                                value:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: value is the target value of the metric
                                    (as a quantity).
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              required:
                              - type
                              type: object
                          required:
                          - name
                          - target
                          type: object
                        type:
                          description: 'type is the type of metric source.  It should
                            be one of "ContainerResource", "External", "Object", "Pods"
                            or "Resource", each mapping to a matching field in the
                            object. Note: "ContainerResource" type is available on
                            when the feature-gate HPAContainerMetrics is enabled'
                          type: string
                      required:
                      - type
                      type: object
                    type: array
                  minReplicas:
                    description: minReplicas is the lower limit for the number of
                      replicas to which the training job can scale down.  It defaults
                      to null.
                    format: int32
                    type: integer
                  nProcPerNode:
                    description: 'Number of workers per node; supported values: [auto,
                      cpu, gpu, int]. Deprecated: This API is deprecated in v1.7+
                      Use .spec.nprocPerNode instead.'
                    format: int32
                    type: integer
                  rdzvBackend:
                    type: string
                  rdzvConf:
                    description: RDZVConf contains additional rendezvous configuration
                      (<key1>=<value1>,<key2>=<value2>,...).
                    items:
                      properties:
                        key:
                          type: string
                        value:
                          type: string
                      type: object
                    type: array
                  rdzvHost:
                    type: string
                  rdzvId:
                    type: string
                  rdzvPort:
                    format: int32
                    type: integer
                  standalone:
                    description: Start a local standalone rendezvous backend that
                      is represented by a C10d TCP store on port 29400. Useful when
                      launching single-node, multi-worker job. If specified --rdzv_backend,
                      --rdzv_endpoint, --rdzv_id are auto-assigned; any explicitly
                      set values are ignored.
                    type: boolean
                type: object
              nprocPerNode:
                description: 'Number of workers per node; supported values: [auto,
                  cpu, gpu, int]. For more, https://github.com/pytorch/pytorch/blob/26f7f470df64d90e092081e39507e4ac751f55d6/torch/distributed/run.py#L629-L658.
                  Defaults to auto.'
                type: string
              pytorchReplicaSpecs:
                additionalProperties:
                  description: ReplicaSpec is a description of the replica
                  properties:
                    replicas:
                      description: Replicas is the desired number of replicas of the
                        given template. If unspecified, defaults to 1.
                      format: int32
                      type: integer
                    restartPolicy:
                      description: Restart policy for all replicas within the job.
                        One of Always, OnFailure, Never and ExitCode. Default to Never.
                      type: string
                    template:
                      description: Template is the object that describes the pod that
                        will be created for this replica. RestartPolicy in PodTemplateSpec
                        will be overide by RestartPolicy in ReplicaSpec
                      properties:
                        metadata:
                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'Specification of the desired behavior of the
                            pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                          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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to an update), the
                                        system may or may not try to eventually evict
                                        the pod from its 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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to a pod label update),
                                        the system may or may not try to eventually
                                        evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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. The node that is most
                                        preferred is the one with the greatest sum
                                        of weights, i.e.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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. If the anti-affinity requirements specified
                                        by this field cease to be met at some point
                                        during pod execution (e.g. due to a pod label
                                        update), the system may or may not try to
                                        eventually evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.
                                    Resolution options given in Options will override
                                    those that appear in the base DNSPolicy.
                                  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'. DNS parameters
                                given in DNSConfig will be merged with the policy
                                selected with DNSPolicy. To have DNS options set along
                                with hostNetwork, you have to specify DNS policy explicitly
                                to 'ClusterFirstWithHostNet'.
                              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.
                                This list cannot be specified when creating a pod,
                                and it cannot be modified by updating the pod spec.
                                In order to add an ephemeral container to an existing
                                pod, use the pod's ephemeralcontainers subresource.
                              items:
                                description: An EphemeralContainer is a temporary
                                  container that you may add to an existing Pod for
                                  user-initiated activities such as debugging. Ephemeral
                                  containers have no resource or scheduling guarantees,
                                  and they will not be restarted when they exit or
                                  when a Pod is removed or restarted. The kubelet
                                  may evict a Pod if an ephemeral container causes
                                  the Pod to exceed its resource allocation.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      image''s CMD is used if this is not provided.
                                      Variable references $(VAR_NAME) are expanded
                                      using the container''s environment. If a variable
                                      cannot be resolved, the reference in the input
                                      string will be unchanged. Double $$ are reduced
                                      to a single $, which allows for escaping the
                                      $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                                      produce the string literal "$(VAR_NAME)".'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The image''s ENTRYPOINT is used if
                                      this is not provided. Variable references $(VAR_NAME)
                                      are expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container 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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: Resources are not allowed for ephemeral
                                      containers. Ephemeral containers use spare resources
                                      already allocated to the pod.
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. If not set
                                      then the ephemeral container uses the namespaces
                                      configured in the Pod spec. \n The container
                                      runtime must implement support for this feature."
                                    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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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. Subpath mounts are not allowed for
                                      ephemeral containers. 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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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
                            hostUsers:
                              description: 'Use the host''s user namespace. Optional:
                                Default to true. If set to true or not present, the
                                pod will be run in the host user namespace, useful
                                for when the pod needs a feature only available to
                                the host user namespace, such as loading a kernel
                                module with CAP_SYS_MODULE. When set to false, a new
                                userns is created for the pod.'
                              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.
                                If specified, these secrets will be passed to individual
                                puller implementations for them to use. More info:
                                https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                              items:
                                description: LocalObjectReference contains enough
                                  information to let you locate the referenced object
                                  inside the same namespace.
                                properties:
                                  name:
                                    description: 'Name of the referent. 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
                                x-kubernetes-map-type: atomic
                              type: array
                            initContainers:
                              description: List of initialization containers belonging
                                to the pod. Init containers are executed in order
                                prior to containers being started. If any init container
                                fails, the pod is considered to have failed and is
                                handled according to its restartPolicy. The name for
                                an init container or normal container must be unique
                                among all containers.
                              items:
                                description: A single application container that you
                                  want to run within a pod.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.io/docs/concepts/configuration/assign-pod-node/'
                              type: object
                              x-kubernetes-map-type: atomic
                            os:
                              description: "Specifies the OS of the containers in
                                the pod. Some pod and container fields are restricted
                                if this is set. \n If the OS field is set to linux,
                                the following fields must be unset: -securityContext.windowsOptions
                                \n If the OS field is set to windows, following fields
                                must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers
                                - spec.securityContext.seLinuxOptions - spec.securityContext."
                              properties:
                                name:
                                  description: 'Name is the name of the operating
                                    system. The currently supported values are linux
                                    and windows. Additional value may be defined in
                                    future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
                                    Clients should expect to handle additional values
                                    and treat unrecognized values in this field as
                                    os: null'
                                  type: string
                              required:
                              - name
                              type: object
                            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. If the RuntimeClass
                                admission controller is enabled, overhead must not
                                be set in Pod create requests. The RuntimeClass admission
                                controller will reject Pod create requests which have
                                the overhead already set.
                              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. The admission controller
                                populates this field from PriorityClassName. The higher
                                the value, the higher the priority.
                              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.
                                Any other name must be defined by creating a PriorityClass
                                object with that name. If not specified, the pod priority
                                will be default or zero if there is no default.
                              type: string
                            readinessGates:
                              description: 'If specified, all readiness gates will
                                be evaluated for pod readiness. A pod is ready when
                                all its containers are ready AND all conditions specified
                                in the readiness gates have status equal to "True"
                                More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates'
                              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
                            resourceClaims:
                              description: "ResourceClaims defines which ResourceClaims
                                must be allocated and reserved before the Pod is allowed
                                to start. The resources will be made available to
                                those containers which consume them by name. \n This
                                is an alpha field and requires enabling the DynamicResourceAllocation
                                feature gate. \n This field is immutable."
                              items:
                                description: PodResourceClaim references exactly one
                                  ResourceClaim through a ClaimSource. It adds a name
                                  to it that uniquely identifies the ResourceClaim
                                  inside the Pod. Containers that need access to the
                                  ResourceClaim reference it with this name.
                                properties:
                                  name:
                                    description: Name uniquely identifies this resource
                                      claim inside the pod. This must be a DNS_LABEL.
                                    type: string
                                  source:
                                    description: Source describes where to find the
                                      ResourceClaim.
                                    properties:
                                      resourceClaimName:
                                        description: ResourceClaimName is the name
                                          of a ResourceClaim object in the same namespace
                                          as this pod.
                                        type: string
                                      resourceClaimTemplateName:
                                        description: "ResourceClaimTemplateName is
                                          the name of a ResourceClaimTemplate object
                                          in the same namespace as this pod. \n The
                                          template will be used to create a new ResourceClaim,
                                          which will be bound to this pod. When this
                                          pod is deleted, the ResourceClaim will also
                                          be deleted. The name of the ResourceClaim
                                          will be <pod name>-<resource name>, where
                                          <resource name> is the PodResourceClaim.Name."
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            restartPolicy:
                              description: 'Restart policy for all containers within
                                the pod. One of Always, OnFailure, Never. In some
                                contexts, only a subset of those values may be permitted.
                                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. If unset
                                or empty, the "legacy" RuntimeClass will be used,
                                which is an implicit class with an empty definition
                                that uses the default runtime handler. More info:
                                https://git.k8s.'
                              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
                            schedulingGates:
                              description: "SchedulingGates is an opaque list of values
                                that if specified will block scheduling the pod. If
                                schedulingGates is not empty, the pod will stay in
                                the SchedulingGated state and the scheduler will not
                                attempt to schedule the pod. \n SchedulingGates can
                                only be set at pod creation time, and be removed only
                                afterwards. \n This is a beta feature enabled by the
                                PodSchedulingReadiness feature gate."
                              items:
                                description: PodSchedulingGate is associated to a
                                  Pod to guard its scheduling.
                                properties:
                                  name:
                                    description: Name of the scheduling gate. Each
                                      scheduling gate must have a unique name field.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            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. The setgid bit
                                    is set (new files created in the volume will be
                                    owned by FSGroup) 3."
                                  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). It will have
                                    no effect on ephemeral volume types such as: secret,
                                    configmaps and emptydir. Valid values are "OnRootMismatch"
                                    and "Always". If not specified, "Always" is used.'
                                  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.  If set in
                                    both SecurityContext and PodSecurityContext, the
                                    value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in SecurityContext.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence for that container.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.  If
                                    set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. Note that this field cannot be set
                                    when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      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, the fsGroup (if specified),
                                    and group memberships defined in the container
                                    image for the uid of the container process. If
                                    unspecified, no additional groups are 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.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.
                                    If set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is linux.
                                  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. Setting this field without the
                                        feature flag will result in errors when validating
                                        the Pod.
                                      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.
                                        If set in both SecurityContext and PodSecurityContext,
                                        the value specified in SecurityContext takes
                                        precedence.
                                      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). In Linux containers, this means setting
                                the FQDN in the hostname field of the kernel (the
                                nodename field of struct utsname).
                              type: boolean
                            shareProcessNamespace:
                              description: 'Share a single process namespace between
                                all of the containers in a pod. When this is set containers
                                will be able to view and signal processes from other
                                containers in the same pod, and the first process
                                in each container will not be assigned PID 1. HostPID
                                and ShareProcessNamespace cannot both be set. Optional:
                                Default to false.'
                              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. The value
                                zero indicates stop immediately via the kill signal
                                (no opportunity to shut down). If this value is nil,
                                the default grace period will be used instead.
                              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. By default, it
                                      is not set, which means tolerate the taint forever
                                      (do not evict). Zero and negative values will
                                      be treated as 0 (evict immediately) by the system.
                                    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. This
                                                array is replaced during a strategic
                                                merge patch.
                                              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. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: MatchLabelKeys is a set of pod label
                                      keys to select the pods over which spreading
                                      will be calculated. The keys are used to lookup
                                      values from the incoming pod labels, those key-value
                                      labels are ANDed with labelSelector to select
                                      the group of existing pods over which spreading
                                      will be calculated for the incoming pod. The
                                      same key is forbidden to exist in both MatchLabelKeys
                                      and LabelSelector.
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  maxSkew:
                                    description: MaxSkew describes the degree to which
                                      pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
                                      it is the maximum permitted difference between
                                      the number of matching pods in the target topology
                                      and the global minimum. The global minimum is
                                      the minimum number of matching pods in an eligible
                                      domain or zero if the number of eligible domains
                                      is less than MinDomains.
                                    format: int32
                                    type: integer
                                  minDomains:
                                    description: MinDomains indicates a minimum number
                                      of eligible domains. When the number of eligible
                                      domains with matching topology keys is less
                                      than minDomains, Pod Topology Spread treats
                                      "global minimum" as 0, and then the calculation
                                      of Skew is performed. And when the number of
                                      eligible domains with matching topology keys
                                      equals or greater than minDomains, this value
                                      has no effect on scheduling.
                                    format: int32
                                    type: integer
                                  nodeAffinityPolicy:
                                    description: "NodeAffinityPolicy indicates how
                                      we will treat Pod's nodeAffinity/nodeSelector
                                      when calculating pod topology spread skew. Options
                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector
                                      are included in the calculations. - Ignore:
                                      nodeAffinity/nodeSelector are ignored. All nodes
                                      are included in the calculations. \n If this
                                      value is nil, the behavior is equivalent to
                                      the Honor policy."
                                    type: string
                                  nodeTaintsPolicy:
                                    description: "NodeTaintsPolicy indicates how we
                                      will treat node taints when calculating pod
                                      topology spread skew. Options are: - Honor:
                                      nodes without taints, along with tainted nodes
                                      for which the incoming pod has a toleration,
                                      are included. - Ignore: node taints are ignored.
                                      All nodes are included. \n If this value is
                                      nil, the behavior is equivalent to the Ignore
                                      policy."
                                    type: string
                                  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.
                                      We consider each <key, value> as a "bucket",
                                      and try to put balanced number of pods into
                                      each bucket. We define a domain as a particular
                                      instance of a 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. - ScheduleAnyway
                                      tells the scheduler to schedule the pod in any
                                      location, but giving higher precedence to topologies
                                      that would help reduce the skew.
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty).'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly value true will force
                                          the readOnly setting in VolumeMounts. More
                                          info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                        type: boolean
                                      volumeID:
                                        description: 'volumeID is 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: 'cachingMode is the Host Caching
                                          mode: None, Read Only, Read Write.'
                                        type: string
                                      diskName:
                                        description: diskName is the Name of the data
                                          disk in the blob storage
                                        type: string
                                      diskURI:
                                        description: diskURI is the URI of data disk
                                          in the blob storage
                                        type: string
                                      fsType:
                                        description: fsType is 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: 'kind expected values are 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: readOnly 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: readOnly defaults to false (read/write).
                                          ReadOnly here will force the ReadOnly setting
                                          in VolumeMounts.
                                        type: boolean
                                      secretName:
                                        description: secretName is the  name of secret
                                          that contains Azure Storage Account Name
                                          and Key
                                        type: string
                                      shareName:
                                        description: shareName is the azure 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: 'monitors is 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: 'path is Optional: Used as the
                                          mounted root, rather than the full Ceph
                                          tree, default is /'
                                        type: string
                                      readOnly:
                                        description: 'readOnly is 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: 'secretFile is 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://examples.k8s.io/mysql-cinder-pd/README.md'
                                        type: string
                                      readOnly:
                                        description: 'readOnly 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      volumeID:
                                        description: 'volumeID 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items if unspecified, each key-value
                                          pair in the Data field of the referenced
                                          ConfigMap will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional specify whether the
                                          ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: fsType to mount. Ex. "ext4",
                                          "xfs", "ntfs". If not provided, the empty
                                          value is passed to the associated CSI driver
                                          which will determine the default filesystem
                                          to apply.
                                        type: string
                                      nodePublishSecretRef:
                                        description: nodePublishSecretRef is a reference
                                          to the secret object containing sensitive
                                          information to pass to the CSI driver to
                                          complete the CSI NodePublishVolume and NodeUnpublishVolume
                                          calls. This field is optional, and  may
                                          be empty if no secret is required. If the
                                          secret object contains more than one secret,
                                          all secret references are passed.
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      readOnly:
                                        description: readOnly 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. Must be an octal value
                                          between 0000 and 0777 or a decimal value
                                          between 0 and 511. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        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
                                              x-kubernetes-map-type: atomic
                                            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. YAML accepts both octal and
                                                decimal values, JSON requires decimal
                                                values for mode bits. If not specified,
                                                the volume defaultMode will be used.'
                                              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
                                              x-kubernetes-map-type: atomic
                                          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: 'medium represents what type
                                          of storage medium should back this directory.
                                          The default is "" which means to use the
                                          node''s default medium. Must be an empty
                                          string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                        type: string
                                      sizeLimit:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'sizeLimit is the total amount
                                          of local storage required for this EmptyDir
                                          volume. The size limit is also applicable
                                          for memory medium. The maximum usage on
                                          memory medium EmptyDir would be the minimum
                                          value between the SizeLimit specified here
                                          and the sum of memory limits of all containers
                                          in a pod. The default is nil which means
                                          that the limit is undefined. More info:
                                          https://kubernetes.'
                                        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.  The
                                          name of the PVC will be `<pod name>-<volume
                                          name>` where `<volume name>` is the name
                                          from the `PodSpec.Volumes` array entry.
                                        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.
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              finalizers:
                                                items:
                                                  type: string
                                                type: array
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              name:
                                                type: string
                                              namespace:
                                                type: string
                                            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: 'dataSource field can
                                                  be used to specify either: * An
                                                  existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                                  * An existing PVC (PersistentVolumeClaim)
                                                  If the provisioner or an external
                                                  controller can support the specified
                                                  data source, it will create a new
                                                  volume based on the contents of
                                                  the specified data source.'
                                                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
                                                x-kubernetes-map-type: atomic
                                              dataSourceRef:
                                                description: dataSourceRef specifies
                                                  the object from which to populate
                                                  the volume with data, if a non-empty
                                                  volume is desired. This may be any
                                                  object from a non-empty API group
                                                  (non core object) or a PersistentVolumeClaim
                                                  object. When this field is specified,
                                                  volume binding will only succeed
                                                  if the type of the specified object
                                                  matches some installed volume populator
                                                  or dynamic provisioner.
                                                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
                                                  namespace:
                                                    description: Namespace is the
                                                      namespace of resource being
                                                      referenced Note that when a
                                                      namespace is specified, a gateway.networking.k8s.io/ReferenceGrant
                                                      object is required in the referent
                                                      namespace to allow that namespace's
                                                      owner to accept the reference.
                                                      See the ReferenceGrant documentation
                                                      for details. (Alpha) This field
                                                      requires the CrossNamespaceVolumeDataSource
                                                      feature gate to be enabled.
                                                    type: string
                                                required:
                                                - kind
                                                - name
                                                type: object
                                              resources:
                                                description: 'resources represents
                                                  the minimum resources the volume
                                                  should have. If RecoverVolumeExpansionFailure
                                                  feature is enabled users are allowed
                                                  to specify resource requirements
                                                  that are lower than previous value
                                                  but must still be higher than capacity
                                                  recorded in the status field of
                                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                                properties:
                                                  claims:
                                                    description: "Claims lists the
                                                      names of resources, defined
                                                      in spec.resourceClaims, that
                                                      are used by this container.
                                                      \n This is an alpha field and
                                                      requires enabling the DynamicResourceAllocation
                                                      feature gate. \n This field
                                                      is immutable. It can only be
                                                      set for containers."
                                                    items:
                                                      description: ResourceClaim references
                                                        one entry in PodSpec.ResourceClaims.
                                                      properties:
                                                        name:
                                                          description: Name must match
                                                            the name of one entry
                                                            in pod.spec.resourceClaims
                                                            of the Pod where this
                                                            field is used. It makes
                                                            that resource available
                                                            inside a container.
                                                          type: string
                                                      required:
                                                      - name
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-map-keys:
                                                    - name
                                                    x-kubernetes-list-type: map
                                                  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. Requests cannot exceed
                                                      Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                    type: object
                                                type: object
                                              selector:
                                                description: selector is 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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              storageClassName:
                                                description: 'storageClassName is
                                                  the 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Ex. "ext4",
                                          "xfs", "ntfs". Implicitly inferred to be
                                          "ext4" if unspecified. TODO: how do we prevent
                                          errors in the filesystem from compromising
                                          the machine'
                                        type: string
                                      lun:
                                        description: 'lun is Optional: FC target lun
                                          number'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly is Optional: Defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      targetWWNs:
                                        description: 'targetWWNs is Optional: FC target
                                          worldwide names (WWNs)'
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        description: 'wwids 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: fsType is the 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: 'options is Optional: this field
                                          holds extra command options if any.'
                                        type: object
                                      readOnly:
                                        description: 'readOnly is Optional: defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      secretRef:
                                        description: 'secretRef is Optional: secretRef
                                          is reference to the secret object containing
                                          sensitive information to pass to the plugin
                                          scripts. This may be empty if no secret
                                          object is specified. If the secret object
                                          contains more than one secret, all secrets
                                          are passed to the plugin scripts.'
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    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: datasetName is Name of the dataset
                                          stored as metadata -> name on the dataset
                                          for Flocker should be considered as deprecated
                                        type: string
                                      datasetUUID:
                                        description: datasetUUID is the 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: 'fsType is filesystem type of
                                          the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        format: int32
                                        type: integer
                                      pdName:
                                        description: 'pdName is unique name of the
                                          PD resource in GCE. Used to identify the
                                          disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          ReadOnly setting in VolumeMounts. Defaults
                                          to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    description: 'gitRepo represents a git repository
                                      at a particular revision. DEPRECATED: GitRepo
                                      is deprecated. To provision a container with
                                      a git repo, mount an EmptyDir into an InitContainer
                                      that clones the repo using git, then mount the
                                      EmptyDir into the Pod''s container.'
                                    properties:
                                      directory:
                                        description: directory is the target directory
                                          name. Must not contain or start with '..'.  If
                                          '.' is supplied, the volume directory will
                                          be the git repository.  Otherwise, if specified,
                                          the volume will contain the git repository
                                          in the subdirectory with the given name.
                                        type: string
                                      repository:
                                        description: repository is the URL
                                        type: string
                                      revision:
                                        description: revision is the 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: 'endpoints is the endpoint name
                                          that details Glusterfs topology. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      path:
                                        description: 'path is the Glusterfs volume
                                          path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          Glusterfs volume to be mounted with read-only
                                          permissions. Defaults to false. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    description: 'hostPath represents a pre-existing
                                      file or directory on the host machine that is
                                      directly exposed to the container. This is generally
                                      used for system agents or other privileged things
                                      that are allowed to see the host machine. Most
                                      containers will NOT need this. More info: https://kubernetes.'
                                    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: chapAuthDiscovery defines whether
                                          support iSCSI Discovery CHAP authentication
                                        type: boolean
                                      chapAuthSession:
                                        description: chapAuthSession defines whether
                                          support iSCSI Session CHAP authentication
                                        type: boolean
                                      fsType:
                                        description: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      initiatorName:
                                        description: initiatorName is the 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: iqn is the target iSCSI Qualified
                                          Name.
                                        type: string
                                      iscsiInterface:
                                        description: iscsiInterface is the interface
                                          Name that uses an iSCSI transport. Defaults
                                          to 'default' (tcp).
                                        type: string
                                      lun:
                                        description: lun represents iSCSI Target Lun
                                          number.
                                        format: int32
                                        type: integer
                                      portals:
                                        description: portals is the 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: secretRef is the 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
                                        x-kubernetes-map-type: atomic
                                      targetPortal:
                                        description: targetPortal is 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: 'name of the volume. 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: readOnly 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: fsType is the 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: pdID is the 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: readOnly 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: projected items for all in one resources
                                      secrets, configmaps, and downward API
                                    properties:
                                      defaultMode:
                                        description: defaultMode are the 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. YAML accepts both octal and decimal
                                          values, JSON requires decimal values for
                                          mode bits. Directories within the path are
                                          not affected by this setting.
                                        format: int32
                                        type: integer
                                      sources:
                                        description: sources is the list of volume
                                          projections
                                        items:
                                          description: Projection that may be projected
                                            along with other supported volume types
                                          properties:
                                            configMap:
                                              description: configMap information about
                                                the configMap data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced ConfigMap
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional specify whether
                                                    the ConfigMap or its keys must
                                                    be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            downwardAPI:
                                              description: downwardAPI 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
                                                        x-kubernetes-map-type: atomic
                                                      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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        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
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              description: secret information about
                                                the secret data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced Secret
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional field specify
                                                    whether the Secret or its key
                                                    must be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            serviceAccountToken:
                                              description: serviceAccountToken is
                                                information about the serviceAccountToken
                                                data to project
                                              properties:
                                                audience:
                                                  description: audience is the intended
                                                    audience of the token. A recipient
                                                    of a token must identify itself
                                                    with an identifier specified in
                                                    the audience of the token, and
                                                    otherwise should reject the token.
                                                    The audience defaults to the identifier
                                                    of the apiserver.
                                                  type: string
                                                expirationSeconds:
                                                  description: expirationSeconds is
                                                    the requested duration of validity
                                                    of the service account token.
                                                    As the token approaches expiration,
                                                    the kubelet volume plugin will
                                                    proactively rotate the service
                                                    account token. The kubelet will
                                                    start trying to rotate the token
                                                    if the token is older than 80
                                                    percent of its time to live or
                                                    if the token is older than 24
                                                    hours.Defaults to 1 hour and must
                                                    be at least 10 minutes.
                                                  format: int64
                                                  type: integer
                                                path:
                                                  description: path is the path relative
                                                    to the mount point of the file
                                                    to project the token into.
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      image:
                                        description: 'image is 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: 'monitors is 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: 'pool is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: fsType is the 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: gateway is the host address of
                                          the ScaleIO API Gateway.
                                        type: string
                                      protectionDomain:
                                        description: protectionDomain is the name
                                          of the ScaleIO Protection Domain for the
                                          configured storage.
                                        type: string
                                      readOnly:
                                        description: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      sslEnabled:
                                        description: sslEnabled Flag enable/disable
                                          SSL communication with Gateway, default
                                          false
                                        type: boolean
                                      storageMode:
                                        description: storageMode indicates whether
                                          the storage for a volume should be ThickProvisioned
                                          or ThinProvisioned. Default is ThinProvisioned.
                                        type: string
                                      storagePool:
                                        description: storagePool is the ScaleIO Storage
                                          Pool associated with the protection domain.
                                        type: string
                                      system:
                                        description: system is the name of the storage
                                          system as configured in ScaleIO.
                                        type: string
                                      volumeName:
                                        description: volumeName is 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items If unspecified, each key-value
                                          pair in the Data field of the referenced
                                          Secret will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional field specify whether
                                          the Secret or its keys must be defined
                                        type: boolean
                                      secretName:
                                        description: 'secretName is the 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: fsType is the 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: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      volumeName:
                                        description: volumeName is the human-readable
                                          name of the StorageOS volume.  Volume names
                                          are only unique within a namespace.
                                        type: string
                                      volumeNamespace:
                                        description: volumeNamespace specifies the
                                          scope of the volume within StorageOS.  If
                                          no namespace is specified then the Pod's
                                          namespace will be used.  This allows the
                                          Kubernetes name scoping to be mirrored within
                                          StorageOS for tighter integration. Set VolumeName
                                          to any name to override the default behaviour.
                                          Set to "default" if you are not using namespaces
                                          within StorageOS.
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    description: vsphereVolume represents a vSphere
                                      volume attached and mounted on kubelets host
                                      machine
                                    properties:
                                      fsType:
                                        description: fsType is 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: storagePolicyID is the storage
                                          Policy Based Management (SPBM) profile ID
                                          associated with the StoragePolicyName.
                                        type: string
                                      storagePolicyName:
                                        description: storagePolicyName is the storage
                                          Policy Based Management (SPBM) profile name.
                                        type: string
                                      volumePath:
                                        description: volumePath is the path that identifies
                                          vSphere volume vmdk
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  type: object
                description: 'A map of PyTorchReplicaType (type) to ReplicaSpec (value).
                  Specifies the PyTorch cluster configuration. For example, { "Master":
                  PyTorchReplicaSpec, "Worker": PyTorchReplicaSpec, }'
                type: object
              runPolicy:
                description: RunPolicy encapsulates various runtime policies of the
                  distributed training job, for example how to clean up resources
                  and how long the job can stay active.
                properties:
                  activeDeadlineSeconds:
                    description: Specifies the duration in seconds relative to the
                      startTime that the job may be active before the system tries
                      to terminate it; value must be positive integer.
                    format: int64
                    type: integer
                  backoffLimit:
                    description: Optional number of retries before marking this job
                      failed.
                    format: int32
                    type: integer
                  cleanPodPolicy:
                    description: CleanPodPolicy defines the policy to kill pods after
                      the job completes. Default to None.
                    type: string
                  schedulingPolicy:
                    description: SchedulingPolicy defines the policy related to scheduling,
                      e.g. gang-scheduling
                    properties:
                      minAvailable:
                        format: int32
                        type: integer
                      minResources:
                        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
                        type: object
                      priorityClass:
                        type: string
                      queue:
                        type: string
                      scheduleTimeoutSeconds:
                        format: int32
                        type: integer
                    type: object
                  suspend:
                    default: false
                    description: suspend specifies whether the Job controller should
                      create Pods or not. If a Job is created with suspend set to
                      true, no Pods are created by the Job controller. If a Job is
                      suspended after creation (i.e. the flag goes from false to true),
                      the Job controller will delete all active Pods and PodGroups
                      associated with this Job. Users must design their workload to
                      gracefully handle this.
                    type: boolean
                  ttlSecondsAfterFinished:
                    description: TTLSecondsAfterFinished is the TTL to clean up jobs.
                      It may take extra ReconcilePeriod seconds for the cleanup, since
                      reconcile gets called periodically. Default to infinite.
                    format: int32
                    type: integer
                type: object
            required:
            - pytorchReplicaSpecs
            type: object
          status:
            description: Most recently observed status of the PyTorchJob. Read-only
              (modified by the system).
            properties:
              completionTime:
                description: Represents time when the job was completed. It is not
                  guaranteed to be set in happens-before order across separate operations.
                  It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              conditions:
                description: Conditions is an array of current observed job conditions.
                items:
                  description: JobCondition describes the state of the job at a certain
                    point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of job condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              lastReconcileTime:
                description: Represents last time when the job was reconciled. It
                  is not guaranteed to be set in happens-before order across separate
                  operations. It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              replicaStatuses:
                additionalProperties:
                  description: ReplicaStatus represents the current observed state
                    of the replica.
                  properties:
                    active:
                      description: The number of actively running pods.
                      format: int32
                      type: integer
                    failed:
                      description: The number of pods which reached phase Failed.
                      format: int32
                      type: integer
                    labelSelector:
                      description: 'Deprecated: Use Selector instead'
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    selector:
                      description: A Selector is a label query over a set of resources.
                        The result of matchLabels and matchExpressions are ANDed.
                        An empty Selector matches all objects. A null Selector matches
                        no objects.
                      type: string
                    succeeded:
                      description: The number of pods which reached phase Succeeded.
                      format: int32
                      type: integer
                  type: object
                description: ReplicaStatuses is map of ReplicaType and ReplicaStatus,
                  specifies the status of each replica.
                type: object
              startTime:
                description: Represents time when the job was acknowledged by the
                  job controller. It is not guaranteed to be set in happens-before
                  order across separate operations. It is represented in RFC3339 form
                  and is in UTC.
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      scale:
        labelSelectorPath: .status.replicaStatuses.Worker.selector
        specReplicasPath: .spec.pytorchReplicaSpecs.Worker.replicas
        statusReplicasPath: .status.replicaStatuses.Worker.active
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    istio: security
    release: istio
  name: requestauthentications.security.istio.io
spec:
  group: security.istio.io
  names:
    categories:
    - istio-io
    - security-istio-io
    kind: RequestAuthentication
    listKind: RequestAuthenticationList
    plural: requestauthentications
    shortNames:
    - ra
    singular: requestauthentication
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: RequestAuthentication defines what request authentication
              methods are supported by a workload.
            properties:
              jwtRules:
                description: Define the list of JWTs that can be validated at the
                  selected workloads' proxy.
                items:
                  properties:
                    audiences:
                      items:
                        type: string
                      type: array
                    forwardOriginalToken:
                      description: If set to true, the original token will be kept
                        for the upstream request.
                      type: boolean
                    fromHeaders:
                      description: List of header locations from which JWT is expected.
                      items:
                        properties:
                          name:
                            description: The HTTP header name.
                            type: string
                          prefix:
                            description: The prefix that should be stripped before
                              decoding the token.
                            type: string
                        type: object
                      type: array
                    fromParams:
                      description: List of query parameters from which JWT is expected.
                      items:
                        type: string
                      type: array
                    issuer:
                      description: Identifies the issuer that issued the JWT.
                      type: string
                    jwks:
                      description: JSON Web Key Set of public keys to validate signature
                        of the JWT.
                      type: string
                    jwks_uri:
                      type: string
                    jwksUri:
                      type: string
                    outputClaimToHeaders:
                      description: This field specifies a list of operations to copy
                        the claim to HTTP headers on a successfully verified token.
                      items:
                        properties:
                          claim:
                            description: The name of the claim to be copied from.
                            type: string
                          header:
                            description: The name of the header to be created.
                            type: string
                        type: object
                      type: array
                    outputPayloadToHeader:
                      type: string
                  type: object
                type: array
              selector:
                description: Optional.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: RequestAuthentication defines what request authentication
              methods are supported by a workload.
            properties:
              jwtRules:
                description: Define the list of JWTs that can be validated at the
                  selected workloads' proxy.
                items:
                  properties:
                    audiences:
                      items:
                        type: string
                      type: array
                    forwardOriginalToken:
                      description: If set to true, the original token will be kept
                        for the upstream request.
                      type: boolean
                    fromHeaders:
                      description: List of header locations from which JWT is expected.
                      items:
                        properties:
                          name:
                            description: The HTTP header name.
                            type: string
                          prefix:
                            description: The prefix that should be stripped before
                              decoding the token.
                            type: string
                        type: object
                      type: array
                    fromParams:
                      description: List of query parameters from which JWT is expected.
                      items:
                        type: string
                      type: array
                    issuer:
                      description: Identifies the issuer that issued the JWT.
                      type: string
                    jwks:
                      description: JSON Web Key Set of public keys to validate signature
                        of the JWT.
                      type: string
                    jwks_uri:
                      type: string
                    jwksUri:
                      type: string
                    outputClaimToHeaders:
                      description: This field specifies a list of operations to copy
                        the claim to HTTP headers on a successfully verified token.
                      items:
                        properties:
                          claim:
                            description: The name of the claim to be copied from.
                            type: string
                          header:
                            description: The name of the header to be created.
                            type: string
                        type: object
                      type: array
                    outputPayloadToHeader:
                      type: string
                  type: object
                type: array
              selector:
                description: Optional.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: revisions.serving.knative.dev
spec:
  group: serving.knative.dev
  names:
    categories:
    - all
    - knative
    - serving
    kind: Revision
    plural: revisions
    shortNames:
    - rev
    singular: revision
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.labels['serving\.knative\.dev/configuration']
      name: Config Name
      type: string
    - jsonPath: .status.serviceName
      name: K8s Service Name
      type: string
    - jsonPath: .metadata.labels['serving\.knative\.dev/configurationGeneration']
      name: Generation
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    - jsonPath: .status.actualReplicas
      name: Actual Replicas
      type: integer
    - jsonPath: .status.desiredReplicas
      name: Desired Replicas
      type: integer
    name: v1
    schema:
      openAPIV3Schema:
        description: "Revision is an immutable snapshot of code and configuration.
          \ A revision references a container image. Revisions are created by updates
          to a Configuration. \n See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision"
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: RevisionSpec holds the desired state of the Revision (from
              the client).
            properties:
              affinity:
                description: This is accessible behind a feature flag - kubernetes.podspec-affinity
                type: object
                x-kubernetes-preserve-unknown-fields: true
              automountServiceAccountToken:
                description: AutomountServiceAccountToken indicates whether a service
                  account token should be automatically mounted.
                type: boolean
              containerConcurrency:
                description: ContainerConcurrency specifies the maximum allowed in-flight
                  (concurrent) requests per container of the Revision.  Defaults to
                  `0` which means concurrency to the application is not limited, and
                  the system decides the target concurrency for the autoscaler.
                format: int64
                type: integer
              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 container image''s
                        CMD is used if this is not provided. Variable references $(VAR_NAME)
                        are expanded using the container''s environment. If a variable
                        cannot be resolved, the reference in the input string will
                        be unchanged. Double $$ are reduced to a single $, which allows
                        for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                        produce the string literal "$(VAR_NAME)". Escaped references
                        will never be expanded, regardless of whether the variable
                        exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    command:
                      description: 'Entrypoint array. Not executed within a shell.
                        The container image''s ENTRYPOINT is used if this is not provided.
                        Variable references $(VAR_NAME) are expanded using the container''s
                        environment. If a variable cannot be resolved, the reference
                        in the input string will be unchanged. Double $$ are reduced
                        to a single $, which allows for escaping the $(VAR_NAME) syntax:
                        i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
                        Escaped references will never be expanded, regardless of whether
                        the variable exists or not. Cannot be updated. More info:
                        https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      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.
                              If a variable cannot be resolved, the reference in the
                              input string will be unchanged. Double $$ are reduced
                              to a single $, which allows for escaping the $(VAR_NAME)
                              syntax: i.e. "$$(VAR_NAME)" will produce the string
                              literal "$(VAR_NAME)". Escaped references will never
                              be expanded, regardless of whether the variable exists
                              or not. Defaults to "".'
                            type: string
                          valueFrom:
                            description: Source for the environment variable's value.
                              Cannot be used if value is not empty.
                            properties:
                              configMapKeyRef:
                                description: Selects a key of a ConfigMap.
                                properties:
                                  key:
                                    description: The key to select.
                                    type: string
                                  name:
                                    description: 'Name of the referent. More info:
                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      TODO: Add other useful fields. apiVersion, kind,
                                      uid?'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap or
                                      its key must be defined
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              fieldRef:
                                description: This is accessible behind a feature flag
                                  - kubernetes.podspec-fieldref
                                type: object
                                x-kubernetes-map-type: atomic
                                x-kubernetes-preserve-unknown-fields: true
                              resourceFieldRef:
                                description: This is accessible behind a feature flag
                                  - kubernetes.podspec-fieldref
                                type: object
                                x-kubernetes-map-type: atomic
                                x-kubernetes-preserve-unknown-fields: true
                              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
                                x-kubernetes-map-type: atomic
                            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. When a key exists in multiple
                        sources, the value associated with the last source will take
                        precedence. Values defined by an Env with a duplicate key
                        will take precedence. Cannot be updated.
                      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
                            x-kubernetes-map-type: atomic
                          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
                            x-kubernetes-map-type: atomic
                        type: object
                      type: array
                    image:
                      description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images
                        This field is optional to allow higher level config management
                        to default or override container images in workload controllers
                        like Deployments and StatefulSets.'
                      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.io/docs/concepts/containers/images#updating-images'
                      type: string
                    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: 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.
                                The command is simply exec'd, it is not run inside
                                a shell, so traditional shell instructions ('|', etc)
                                won't work. To use a shell, you need to explicitly
                                call out to that shell. Exit status of 0 is treated
                                as live/healthy and non-zero is unhealthy.
                              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
                          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.
                          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.
                          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
                          type: object
                        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. Not
                        specifying a port here DOES NOT prevent that port from being
                        exposed. Any port which is listening on the default "0.0.0.0"
                        address inside a container will be accessible from the network.
                        Modifying this array with strategic merge patch may corrupt
                        the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                        Cannot be updated.
                      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
                          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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                      properties:
                        exec:
                          description: 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.
                                The command is simply exec'd, it is not run inside
                                a shell, so traditional shell instructions ('|', etc)
                                won't work. To use a shell, you need to explicitly
                                call out to that shell. Exit status of 0 is treated
                                as live/healthy and non-zero is unhealthy.
                              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
                          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.
                          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.
                          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
                          type: object
                        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. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          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.io/docs/tasks/configure-pod-container/security-context/'
                      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. AllowPrivilegeEscalation
                            is true always when the container is: 1) run as Privileged
                            2) has CAP_SYS_ADMIN Note that this field cannot be set
                            when spec.os.name is windows.'
                          type: boolean
                        capabilities:
                          description: The capabilities to add/drop when running containers.
                            Defaults to the default set of capabilities granted by
                            the container runtime. Note that this field cannot be
                            set when spec.os.name is windows.
                          properties:
                            add:
                              description: This is accessible behind a feature flag
                                - kubernetes.containerspec-addcapabilities
                              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
                        readOnlyRootFilesystem:
                          description: Whether this container has a read-only root
                            filesystem. Default is false. Note that this field cannot
                            be set when spec.os.name is windows.
                          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.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence. Note that this field cannot be set when
                            spec.os.name is windows.
                          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. If
                            unset or false, no such validation will be performed.
                            May also be set in PodSecurityContext.  If set in both
                            SecurityContext and PodSecurityContext, the value specified
                            in SecurityContext takes precedence.
                          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.  If
                            set in both SecurityContext and PodSecurityContext, the
                            value specified in SecurityContext takes precedence. Note
                            that this field cannot be set when spec.os.name is windows.
                          format: int64
                          type: integer
                        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.
                            Note that this field cannot be set when spec.os.name is
                            windows.
                          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. Must be
                                a descending path, relative to the kubelet's configured
                                seccomp profile location. Must only be set if type
                                is "Localhost".
                              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. RuntimeDefault - the container runtime default
                                profile should be used. Unconfined - no profile should
                                be applied."
                              type: string
                          required:
                          - type
                          type: object
                      type: object
                    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. Message written is intended
                        to be brief final status, such as an assertion failure message.
                        Will be truncated by the node if greater than 4096 bytes.
                        The total message length across all containers will be limited
                        to 12kb. Defaults to /dev/termination-log. Cannot be updated.'
                      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. FallbackToLogsOnError will use the last chunk of
                        container log output if the termination message file is empty
                        and the container exited with an error. The log output is
                        limited to 2048 bytes or 80 lines, whichever is smaller. Defaults
                        to File. Cannot be updated.
                      type: string
                    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
                          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
                        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
                  type: object
                type: array
              dnsConfig:
                description: This is accessible behind a feature flag - kubernetes.podspec-dnsconfig
                type: object
                x-kubernetes-preserve-unknown-fields: true
              dnsPolicy:
                description: This is accessible behind a feature flag - kubernetes.podspec-dnspolicy
                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: Knative defaults this to false.'
                type: boolean
              hostAliases:
                description: This is accessible behind a feature flag - kubernetes.podspec-hostaliases
                items:
                  description: This is accessible behind a feature flag - kubernetes.podspec-hostaliases
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              idleTimeoutSeconds:
                description: IdleTimeoutSeconds is the maximum duration in seconds
                  a request will be allowed to stay open while not receiving any bytes
                  from the user's application. If unspecified, a system default will
                  be provided.
                format: int64
                type: integer
              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. If specified, these secrets will be passed
                  to individual puller implementations for them to use. More info:
                  https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                items:
                  description: LocalObjectReference contains enough information to
                    let you locate the referenced object inside the same namespace.
                  properties:
                    name:
                      description: 'Name of the referent. 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
                  x-kubernetes-map-type: atomic
                type: array
              initContainers:
                description: 'List of initialization containers belonging to the pod.
                  Init containers are executed in order prior to containers being
                  started. If any init container fails, the pod is considered to have
                  failed and is handled according to its restartPolicy. The name for
                  an init container or normal container must be unique among all containers.
                  Init containers may not have Lifecycle actions, Readiness probes,
                  Liveness probes, or Startup probes. The resourceRequirements of
                  an init container are taken into account during scheduling by finding
                  the highest request/limit for each resource type, and then using
                  the max of of that value or the sum of the normal containers. Limits
                  are applied to init containers in a similar fashion. Init containers
                  cannot currently be added or removed. Cannot be updated. More info:
                  https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                items:
                  description: This is accessible behind a feature flag - kubernetes.podspec-init-containers
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              nodeSelector:
                description: This is accessible behind a feature flag - kubernetes.podspec-nodeselector
                type: object
                x-kubernetes-map-type: atomic
                x-kubernetes-preserve-unknown-fields: true
              priorityClassName:
                description: This is accessible behind a feature flag - kubernetes.podspec-priorityclassname
                type: string
                x-kubernetes-preserve-unknown-fields: true
              responseStartTimeoutSeconds:
                description: ResponseStartTimeoutSeconds is the maximum duration in
                  seconds that the request routing layer will wait for a request delivered
                  to a container to begin sending any network traffic.
                format: int64
                type: integer
              runtimeClassName:
                description: This is accessible behind a feature flag - kubernetes.podspec-runtimeclassname
                type: string
                x-kubernetes-preserve-unknown-fields: true
              schedulerName:
                description: This is accessible behind a feature flag - kubernetes.podspec-schedulername
                type: string
                x-kubernetes-preserve-unknown-fields: true
              securityContext:
                description: This is accessible behind a feature flag - kubernetes.podspec-securitycontext
                type: object
                x-kubernetes-preserve-unknown-fields: true
              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
              timeoutSeconds:
                description: TimeoutSeconds is the maximum duration in seconds that
                  the request instance is allowed to respond to a request. If unspecified,
                  a system default will be provided.
                format: int64
                type: integer
              tolerations:
                description: This is accessible behind a feature flag - kubernetes.podspec-tolerations
                items:
                  description: This is accessible behind a feature flag - kubernetes.podspec-tolerations
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              topologySpreadConstraints:
                description: This is accessible behind a feature flag - kubernetes.podspec-topologyspreadconstraints
                items:
                  description: This is accessible behind a feature flag - kubernetes.podspec-topologyspreadconstraints
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              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:
                    configMap:
                      description: configMap represents a configMap that should populate
                        this volume
                      properties:
                        defaultMode:
                          description: 'defaultMode is 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. YAML accepts both octal and decimal values,
                            JSON requires decimal values for mode bits. Defaults to
                            0644. Directories within the path are not affected by
                            this setting. This might be in conflict with other options
                            that affect the file mode, like fsGroup, and the result
                            can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: items if unspecified, each key-value pair in
                            the Data field of the referenced ConfigMap will be projected
                            into the volume as a file whose name is the key and content
                            is the value. If specified, the listed keys will be projected
                            into the specified paths, and unlisted keys will not be
                            present. If a key is specified which is not present in
                            the ConfigMap, the volume setup will error unless it is
                            marked optional. Paths must be relative and may not contain
                            the '..' path or start with '..'.
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is 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. YAML accepts both octal and decimal values,
                                  JSON requires decimal values for mode bits. If not
                                  specified, the volume defaultMode will be used.
                                  This might be in conflict with other options that
                                  affect the file mode, like fsGroup, and the result
                                  can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: path is 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: optional specify whether the ConfigMap or its
                            keys must be defined
                          type: boolean
                      type: object
                      x-kubernetes-map-type: atomic
                    emptyDir:
                      description: This is accessible behind a feature flag - kubernetes.podspec-emptydir
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    name:
                      description: 'name of the volume. 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
                    persistentVolumeClaim:
                      description: This is accessible behind a feature flag - kubernetes.podspec-persistent-volume-claim
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    projected:
                      description: projected items for all in one resources secrets,
                        configmaps, and downward API
                      properties:
                        defaultMode:
                          description: defaultMode are the 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. YAML
                            accepts both octal and decimal values, JSON requires decimal
                            values for mode bits. Directories within the path are
                            not affected by this setting. This might be in conflict
                            with other options that affect the file mode, like fsGroup,
                            and the result can be other mode bits set.
                          format: int32
                          type: integer
                        sources:
                          description: sources is the list of volume projections
                          items:
                            description: Projection that may be projected along with
                              other supported volume types
                            properties:
                              configMap:
                                description: configMap information about the configMap
                                  data to project
                                properties:
                                  items:
                                    description: items if unspecified, each key-value
                                      pair in the Data field of the referenced ConfigMap
                                      will be projected into the volume as a file
                                      whose name is the key and content is the value.
                                      If specified, the listed keys will be projected
                                      into the specified paths, and unlisted keys
                                      will not be present. If a key is specified which
                                      is not present in the ConfigMap, the volume
                                      setup will error unless it is marked optional.
                                      Paths must be relative and may not contain the
                                      '..' path or start with '..'.
                                    items:
                                      description: Maps a string key to a path within
                                        a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is 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. YAML accepts both octal and decimal
                                            values, JSON requires decimal values for
                                            mode bits. If not specified, the volume
                                            defaultMode will be used. This might be
                                            in conflict with other options that affect
                                            the file mode, like fsGroup, and the result
                                            can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: path is 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: optional specify whether the ConfigMap
                                      or its keys must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              downwardAPI:
                                description: downwardAPI 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
                                          x-kubernetes-map-type: atomic
                                        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. YAML
                                            accepts both octal and decimal values,
                                            JSON requires decimal values for mode
                                            bits. If not specified, the volume defaultMode
                                            will be used. This might be in conflict
                                            with other options that affect the file
                                            mode, like fsGroup, and the result can
                                            be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'Required: Path is  the relative
                                            path name of the file to be created. Must
                                            not be absolute or contain the ''..''
                                            path. Must be utf-8 encoded. The first
                                            item of the relative path must not start
                                            with ''..'''
                                          type: string
                                        resourceFieldRef:
                                          description: 'Selects a resource of the
                                            container: only resources limits and requests
                                            (limits.cpu, limits.memory, requests.cpu
                                            and requests.memory) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required
                                                for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              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
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - path
                                      type: object
                                    type: array
                                type: object
                              secret:
                                description: secret information about the secret data
                                  to project
                                properties:
                                  items:
                                    description: items if unspecified, each key-value
                                      pair in the Data field of the referenced Secret
                                      will be projected into the volume as a file
                                      whose name is the key and content is the value.
                                      If specified, the listed keys will be projected
                                      into the specified paths, and unlisted keys
                                      will not be present. If a key is specified which
                                      is not present in the Secret, the volume setup
                                      will error unless it is marked optional. Paths
                                      must be relative and may not contain the '..'
                                      path or start with '..'.
                                    items:
                                      description: Maps a string key to a path within
                                        a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is 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. YAML accepts both octal and decimal
                                            values, JSON requires decimal values for
                                            mode bits. If not specified, the volume
                                            defaultMode will be used. This might be
                                            in conflict with other options that affect
                                            the file mode, like fsGroup, and the result
                                            can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: path is 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: optional field specify whether the
                                      Secret or its key must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              serviceAccountToken:
                                description: serviceAccountToken is information about
                                  the serviceAccountToken data to project
                                properties:
                                  audience:
                                    description: audience is the intended audience
                                      of the token. A recipient of a token must identify
                                      itself with an identifier specified in the audience
                                      of the token, and otherwise should reject the
                                      token. The audience defaults to the identifier
                                      of the apiserver.
                                    type: string
                                  expirationSeconds:
                                    description: expirationSeconds is the requested
                                      duration of validity of the service account
                                      token. As the token approaches expiration, the
                                      kubelet volume plugin will proactively rotate
                                      the service account token. The kubelet will
                                      start trying to rotate the token if the token
                                      is older than 80 percent of its time to live
                                      or if the token is older than 24 hours.Defaults
                                      to 1 hour and must be at least 10 minutes.
                                    format: int64
                                    type: integer
                                  path:
                                    description: path is the path relative to the
                                      mount point of the file to project the token
                                      into.
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                      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: 'defaultMode is 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. YAML accepts both octal and decimal values,
                            JSON requires decimal values for mode bits. Defaults to
                            0644. Directories within the path are not affected by
                            this setting. This might be in conflict with other options
                            that affect the file mode, like fsGroup, and the result
                            can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: items If unspecified, each key-value pair in
                            the Data field of the referenced Secret will be projected
                            into the volume as a file whose name is the key and content
                            is the value. If specified, the listed keys will be projected
                            into the specified paths, and unlisted keys will not be
                            present. If a key is specified which is not present in
                            the Secret, the volume setup will error unless it is marked
                            optional. Paths must be relative and may not contain the
                            '..' path or start with '..'.
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is 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. YAML accepts both octal and decimal values,
                                  JSON requires decimal values for mode bits. If not
                                  specified, the volume defaultMode will be used.
                                  This might be in conflict with other options that
                                  affect the file mode, like fsGroup, and the result
                                  can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: path is 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: optional field specify whether the Secret or
                            its keys must be defined
                          type: boolean
                        secretName:
                          description: 'secretName is the 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
                  required:
                  - name
                  type: object
                type: array
            required:
            - containers
            type: object
          status:
            description: RevisionStatus communicates the observed state of the Revision
              (from the controller).
            properties:
              actualReplicas:
                description: ActualReplicas reflects the amount of ready pods running
                  this revision.
                format: int32
                type: integer
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              containerStatuses:
                description: 'ContainerStatuses is a slice of images present in .Spec.Container[*].Image
                  to their respective digests and their container name. The digests
                  are resolved during the creation of Revision. ContainerStatuses
                  holds the container name and image digests for both serving and
                  non serving containers. ref: http://bit.ly/image-digests'
                items:
                  description: ContainerStatus holds the information of container
                    name and image digest value
                  properties:
                    imageDigest:
                      type: string
                    name:
                      type: string
                  type: object
                type: array
              desiredReplicas:
                description: DesiredReplicas reflects the desired amount of pods running
                  this revision.
                format: int32
                type: integer
              initContainerStatuses:
                description: 'InitContainerStatuses is a slice of images present in
                  .Spec.InitContainer[*].Image to their respective digests and their
                  container name. The digests are resolved during the creation of
                  Revision. ContainerStatuses holds the container name and image digests
                  for both serving and non serving containers. ref: http://bit.ly/image-digests'
                items:
                  description: ContainerStatus holds the information of container
                    name and image digest value
                  properties:
                    imageDigest:
                      type: string
                    name:
                      type: string
                  type: object
                type: array
              logUrl:
                description: LogURL specifies the generated logging url for this particular
                  revision based on the revision url template specified in the controller's
                  config.
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    duck.knative.dev/addressable: "true"
    knative.dev/crd-install: "true"
  name: routes.serving.knative.dev
spec:
  group: serving.knative.dev
  names:
    categories:
    - all
    - knative
    - serving
    kind: Route
    plural: routes
    shortNames:
    - rt
    singular: route
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: 'Route is responsible for configuring ingress over a collection
          of Revisions. Some of the Revisions a Route distributes traffic over may
          be specified by referencing the Configuration responsible for creating them;
          in these cases the Route is additionally responsible for monitoring the
          Configuration for "latest ready revision" changes, and smoothly rolling
          out latest revisions. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#route'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec holds the desired state of the Route (from the client).
            properties:
              traffic:
                description: Traffic specifies how to distribute traffic over a collection
                  of revisions and configurations.
                items:
                  description: TrafficTarget holds a single entry of the routing table
                    for a Route.
                  properties:
                    configurationName:
                      description: ConfigurationName of a configuration to whose latest
                        revision we will send this portion of traffic. When the "status.latestReadyRevisionName"
                        of the referenced configuration changes, we will automatically
                        migrate traffic from the prior "latest ready" revision to
                        the new one.  This field is never set in Route's status, only
                        its spec.  This is mutually exclusive with RevisionName.
                      type: string
                    latestRevision:
                      description: LatestRevision may be optionally provided to indicate
                        that the latest ready Revision of the Configuration should
                        be used for this traffic target.  When provided LatestRevision
                        must be true if RevisionName is empty; it must be false when
                        RevisionName is non-empty.
                      type: boolean
                    percent:
                      description: 'Percent indicates that percentage based routing
                        should be used and the value indicates the percent of traffic
                        that is be routed to this Revision or Configuration. `0` (zero)
                        mean no traffic, `100` means all traffic. When percentage
                        based routing is being used the follow rules apply: - the
                        sum of all percent values must equal 100 - when not specified,
                        the implied value for `percent` is zero for that particular
                        Revision or Configuration'
                      format: int64
                      type: integer
                    revisionName:
                      description: RevisionName of a specific revision to which to
                        send this portion of traffic.  This is mutually exclusive
                        with ConfigurationName.
                      type: string
                    tag:
                      description: Tag is optionally used to expose a dedicated url
                        for referencing this target exclusively.
                      type: string
                    url:
                      description: URL displays the URL for accessing named traffic
                        targets. URL is displayed in status, and is disallowed on
                        spec. URL must contain a scheme (e.g. http://) and a hostname,
                        but may not contain anything else (e.g. basic auth, url path,
                        etc.)
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: Status communicates the observed state of the Route (from
              the controller).
            properties:
              address:
                description: Address holds the information needed for a Route to be
                  the target of an event.
                properties:
                  CACerts:
                    description: CACerts is the Certification Authority (CA) certificates
                      in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
                    type: string
                  name:
                    description: Name is the name of the address.
                    type: string
                  url:
                    type: string
                type: object
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              traffic:
                description: Traffic holds the configured traffic distribution. These
                  entries will always contain RevisionName references. When ConfigurationName
                  appears in the spec, this will hold the LatestReadyRevisionName
                  that we last observed.
                items:
                  description: TrafficTarget holds a single entry of the routing table
                    for a Route.
                  properties:
                    configurationName:
                      description: ConfigurationName of a configuration to whose latest
                        revision we will send this portion of traffic. When the "status.latestReadyRevisionName"
                        of the referenced configuration changes, we will automatically
                        migrate traffic from the prior "latest ready" revision to
                        the new one.  This field is never set in Route's status, only
                        its spec.  This is mutually exclusive with RevisionName.
                      type: string
                    latestRevision:
                      description: LatestRevision may be optionally provided to indicate
                        that the latest ready Revision of the Configuration should
                        be used for this traffic target.  When provided LatestRevision
                        must be true if RevisionName is empty; it must be false when
                        RevisionName is non-empty.
                      type: boolean
                    percent:
                      description: 'Percent indicates that percentage based routing
                        should be used and the value indicates the percent of traffic
                        that is be routed to this Revision or Configuration. `0` (zero)
                        mean no traffic, `100` means all traffic. When percentage
                        based routing is being used the follow rules apply: - the
                        sum of all percent values must equal 100 - when not specified,
                        the implied value for `percent` is zero for that particular
                        Revision or Configuration'
                      format: int64
                      type: integer
                    revisionName:
                      description: RevisionName of a specific revision to which to
                        send this portion of traffic.  This is mutually exclusive
                        with ConfigurationName.
                      type: string
                    tag:
                      description: Tag is optionally used to expose a dedicated url
                        for referencing this target exclusively.
                      type: string
                    url:
                      description: URL displays the URL for accessing named traffic
                        targets. URL is displayed in status, and is disallowed on
                        spec. URL must contain a scheme (e.g. http://) and a hostname,
                        but may not contain anything else (e.g. basic auth, url path,
                        etc.)
                      type: string
                  type: object
                type: array
              url:
                description: URL holds the url that will distribute traffic over the
                  provided traffic targets. It generally has the form http[s]://{route-name}.{route-namespace}.{cluster-level-suffix}
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: scheduledworkflows.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: ScheduledWorkflow
    listKind: ScheduledWorkflowList
    plural: scheduledworkflows
    shortNames:
    - swf
    singular: scheduledworkflow
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
          status:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - spec
        - status
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: sequences.flows.knative.dev
spec:
  group: flows.knative.dev
  names:
    categories:
    - all
    - knative
    - flows
    kind: Sequence
    plural: sequences
    singular: sequence
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.address.url
      name: URL
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: Sequence defines a sequence of Subscribers that will be wired
          in series through Channels and Subscriptions.
        properties:
          spec:
            description: Spec defines the desired state of the Sequence.
            properties:
              channelTemplate:
                description: ChannelTemplate specifies which Channel CRD to use. If
                  left unspecified, it is set to the default Channel CRD for the namespace
                  (or cluster, in case there are no defaults for the namespace).
                properties:
                  apiVersion:
                    description: 'APIVersion defines the versioned schema of this
                      representation of an object. Servers should convert recognized
                      schemas to the latest internal value, and may reject unrecognized
                      values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                    type: string
                  kind:
                    description: 'Kind is a string value representing the REST resource
                      this object represents. Servers may infer this from the endpoint
                      the client submits requests to. Cannot be updated. In CamelCase.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  spec:
                    description: Spec defines the Spec to use for each channel created.
                      Passed in verbatim to the Channel CRD as Spec section.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              reply:
                description: Reply is a Reference to where the result of the last
                  Subscriber gets sent to.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
              steps:
                description: Steps is the list of Destinations (processors / functions)
                  that will be called in the order provided. Each step has its own
                  delivery options
                items:
                  properties:
                    delivery:
                      description: Delivery is the delivery specification for events
                        to the subscriber This includes things like retries, DLQ,
                        etc.
                      properties:
                        backoffDelay:
                          description: 'BackoffDelay is the delay before retrying.
                            More information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                            - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                            backoff delay is backoffDelay*<numberOfRetries>. For exponential
                            policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                          type: string
                        backoffPolicy:
                          description: BackoffPolicy is the retry backoff policy (linear,
                            exponential).
                          type: string
                        deadLetterSink:
                          description: DeadLetterSink is the sink receiving event
                            that could not be sent to a destination.
                          properties:
                            ref:
                              description: Ref points to an Addressable.
                              properties:
                                apiVersion:
                                  description: API version of the referent.
                                  type: string
                                kind:
                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                namespace:
                                  description: 'Namespace of the referent. More info:
                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                                    This is optional field, it gets defaulted to the
                                    object holding it if left out.'
                                  type: string
                              type: object
                            uri:
                              description: URI can be an absolute URL(non-empty scheme
                                and non-empty host) pointing to the target or a relative
                                URI. Relative URIs will be resolved using the base
                                URI retrieved from Ref.
                              type: string
                          type: object
                        retry:
                          description: Retry is the minimum number of retries the
                            sender should attempt when sending an event before moving
                            it to the dead letter sink.
                          format: int32
                          type: integer
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    ref:
                      description: Ref points to an Addressable.
                      properties:
                        apiVersion:
                          description: API version of the referent.
                          type: string
                        kind:
                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                          type: string
                        name:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        namespace:
                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                            This is optional field, it gets defaulted to the object
                            holding it if left out.'
                          type: string
                      type: object
                    uri:
                      description: URI can be an absolute URL(non-empty scheme and
                        non-empty host) pointing to the target or a relative URI.
                        Relative URIs will be resolved using the base URI retrieved
                        from Ref.
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: Status represents the current state of the Sequence. This
              data may be out of date.
            properties:
              address:
                properties:
                  url:
                    type: string
                type: object
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              channelStatuses:
                description: ChannelStatuses is an array of corresponding Channel
                  statuses. Matches the Spec.Steps array in the order.
                items:
                  properties:
                    channel:
                      description: Channel is the reference to the underlying channel.
                      properties:
                        apiVersion:
                          description: API version of the referent.
                          type: string
                        fieldPath:
                          description: 'If referring to a piece of an object instead
                            of an entire object, this string should contain a valid
                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
                            For example, if the object reference is to a container
                            within a pod, this would take on a value like: "spec.containers{name}"
                            (where "name" refers to the name of the container that
                            triggered the event) or if no container name is specified
                            "spec.containers[2]" (container with index 2 in this pod).
                            This syntax is chosen only to have some well-defined way
                            of referencing a part of an object.'
                          type: string
                        kind:
                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                          type: string
                        name:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        namespace:
                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                          type: string
                        resourceVersion:
                          description: 'Specific resourceVersion to which this reference
                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                          type: string
                        uid:
                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                          type: string
                      type: object
                    ready:
                      description: ReadyCondition indicates whether the Channel is
                        ready or not.
                      properties:
                        lastTransitionTime:
                          description: LastTransitionTime is the last time the condition
                            transitioned from one status to another. We use VolatileTime
                            in place of metav1.Time to exclude this from creating
                            equality.Semantic differences (all other things held constant).
                          type: string
                        message:
                          description: A human readable message indicating details
                            about the transition.
                          type: string
                        reason:
                          description: The reason for the condition's last transition.
                          type: string
                        severity:
                          description: Severity with which to treat failures of this
                            type of condition. When this is not specified, it defaults
                            to Error.
                          type: string
                        status:
                          description: Status of the condition, one of True, False,
                            Unknown.
                          type: string
                        type:
                          description: Type of condition.
                          type: string
                      required:
                      - type
                      - status
                      type: object
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              subscriptionStatuses:
                description: SubscriptionStatuses is an array of corresponding Subscription
                  statuses. Matches the Spec.Steps array in the order.
                items:
                  properties:
                    ready:
                      description: ReadyCondition indicates whether the Subscription
                        is ready or not.
                      properties:
                        lastTransitionTime:
                          description: LastTransitionTime is the last time the condition
                            transitioned from one status to another. We use VolatileTime
                            in place of metav1.Time to exclude this from creating
                            equality.Semantic differences (all other things held constant).
                          type: string
                        message:
                          description: A human readable message indicating details
                            about the transition.
                          type: string
                        reason:
                          description: The reason for the condition's last transition.
                          type: string
                        severity:
                          description: Severity with which to treat failures of this
                            type of condition. When this is not specified, it defaults
                            to Error.
                          type: string
                        status:
                          description: Status of the condition, one of True, False,
                            Unknown.
                          type: string
                        type:
                          description: Type of condition.
                          type: string
                      required:
                      - type
                      - status
                      type: object
                    subscription:
                      description: Subscription is the reference to the underlying
                        Subscription.
                      properties:
                        apiVersion:
                          description: API version of the referent.
                          type: string
                        fieldPath:
                          description: 'If referring to a piece of an object instead
                            of an entire object, this string should contain a valid
                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
                            For example, if the object reference is to a container
                            within a pod, this would take on a value like: "spec.containers{name}"
                            (where "name" refers to the name of the container that
                            triggered the event) or if no container name is specified
                            "spec.containers[2]" (container with index 2 in this pod).
                            This syntax is chosen only to have some well-defined way
                            of referencing a part of an object.'
                          type: string
                        kind:
                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                          type: string
                        name:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        namespace:
                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                          type: string
                        resourceVersion:
                          description: 'Specific resourceVersion to which this reference
                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                          type: string
                        uid:
                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                          type: string
                      type: object
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: networking
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    knative.dev/crd-install: "true"
  name: serverlessservices.networking.internal.knative.dev
spec:
  group: networking.internal.knative.dev
  names:
    categories:
    - knative-internal
    - networking
    kind: ServerlessService
    plural: serverlessservices
    shortNames:
    - sks
    singular: serverlessservice
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.mode
      name: Mode
      type: string
    - jsonPath: .spec.numActivators
      name: Activators
      type: integer
    - jsonPath: .status.serviceName
      name: ServiceName
      type: string
    - jsonPath: .status.privateServiceName
      name: PrivateServiceName
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: 'ServerlessService is a proxy for the K8s service objects containing
          the endpoints for the revision, whether those are endpoints of the activator
          or revision pods. See: https://knative.page.link/naxz for details.'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'Spec is the desired state of the ServerlessService. More
              info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              mode:
                description: Mode describes the mode of operation of the ServerlessService.
                type: string
              numActivators:
                description: NumActivators contains number of Activators that this
                  revision should be assigned. O means — assign all.
                format: int32
                type: integer
              objectRef:
                description: ObjectRef defines the resource that this ServerlessService
                  is responsible for making "serverless".
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: 'If referring to a piece of an object instead of
                      an entire object, this string should contain a valid JSON/Go
                      field access statement, such as desiredState.manifest.containers[2].
                      For example, if the object reference is to a container within
                      a pod, this would take on a value like: "spec.containers{name}"
                      (where "name" refers to the name of the container that triggered
                      the event) or if no container name is specified "spec.containers[2]"
                      (container with index 2 in this pod). This syntax is chosen
                      only to have some well-defined way of referencing a part of
                      an object. TODO: this design is not final and this field is
                      subject to change in the future.'
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                  namespace:
                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                    type: string
                  resourceVersion:
                    description: 'Specific resourceVersion to which this reference
                      is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                    type: string
                  uid:
                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              protocolType:
                description: The application-layer protocol. Matches `RevisionProtocolType`
                  set on the owning pa/revision. serving imports networking, so just
                  use string.
                type: string
            required:
            - objectRef
            - protocolType
            type: object
          status:
            description: 'Status is the current state of the ServerlessService. More
              info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              privateServiceName:
                description: PrivateServiceName holds the name of a core K8s Service
                  resource that load balances over the user service pods backing this
                  Revision.
                type: string
              serviceName:
                description: ServiceName holds the name of a core K8s Service resource
                  that load balances over the pods backing this Revision (activator
                  or revision).
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: serviceentries.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: ServiceEntry
    listKind: ServiceEntryList
    plural: serviceentries
    shortNames:
    - se
    singular: serviceentry
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The hosts associated with the ServiceEntry
      jsonPath: .spec.hosts
      name: Hosts
      type: string
    - description: Whether the service is external to the mesh or part of the mesh
        (MESH_EXTERNAL or MESH_INTERNAL)
      jsonPath: .spec.location
      name: Location
      type: string
    - description: Service resolution mode for the hosts (NONE, STATIC, or DNS)
      jsonPath: .spec.resolution
      name: Resolution
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting service registry. See more details
              at: https://istio.io/docs/reference/config/networking/service-entry.html'
            properties:
              addresses:
                description: The virtual IP addresses associated with the service.
                items:
                  type: string
                type: array
              endpoints:
                description: One or more endpoints associated with the service.
                items:
                  properties:
                    address:
                      type: string
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels associated with the endpoint.
                      type: object
                    locality:
                      description: The locality associated with the endpoint.
                      type: string
                    network:
                      type: string
                    ports:
                      additionalProperties:
                        type: integer
                      description: Set of ports associated with the endpoint.
                      type: object
                    serviceAccount:
                      type: string
                    weight:
                      description: The load balancing weight associated with the endpoint.
                      type: integer
                  type: object
                type: array
              exportTo:
                description: A list of namespaces to which this service is exported.
                items:
                  type: string
                type: array
              hosts:
                description: The hosts associated with the ServiceEntry.
                items:
                  type: string
                type: array
              location:
                enum:
                - MESH_EXTERNAL
                - MESH_INTERNAL
                type: string
              ports:
                description: The ports associated with the external service.
                items:
                  properties:
                    name:
                      description: Label assigned to the port.
                      type: string
                    number:
                      description: A valid non-negative integer port number.
                      type: integer
                    protocol:
                      description: The protocol exposed on the port.
                      type: string
                    targetPort:
                      type: integer
                  type: object
                type: array
              resolution:
                description: Service resolution mode for the hosts.
                enum:
                - NONE
                - STATIC
                - DNS
                - DNS_ROUND_ROBIN
                type: string
              subjectAltNames:
                items:
                  type: string
                type: array
              workloadSelector:
                description: Applicable only for MESH_INTERNAL services.
                properties:
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: The hosts associated with the ServiceEntry
      jsonPath: .spec.hosts
      name: Hosts
      type: string
    - description: Whether the service is external to the mesh or part of the mesh
        (MESH_EXTERNAL or MESH_INTERNAL)
      jsonPath: .spec.location
      name: Location
      type: string
    - description: Service resolution mode for the hosts (NONE, STATIC, or DNS)
      jsonPath: .spec.resolution
      name: Resolution
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting service registry. See more details
              at: https://istio.io/docs/reference/config/networking/service-entry.html'
            properties:
              addresses:
                description: The virtual IP addresses associated with the service.
                items:
                  type: string
                type: array
              endpoints:
                description: One or more endpoints associated with the service.
                items:
                  properties:
                    address:
                      type: string
                    labels:
                      additionalProperties:
                        type: string
                      description: One or more labels associated with the endpoint.
                      type: object
                    locality:
                      description: The locality associated with the endpoint.
                      type: string
                    network:
                      type: string
                    ports:
                      additionalProperties:
                        type: integer
                      description: Set of ports associated with the endpoint.
                      type: object
                    serviceAccount:
                      type: string
                    weight:
                      description: The load balancing weight associated with the endpoint.
                      type: integer
                  type: object
                type: array
              exportTo:
                description: A list of namespaces to which this service is exported.
                items:
                  type: string
                type: array
              hosts:
                description: The hosts associated with the ServiceEntry.
                items:
                  type: string
                type: array
              location:
                enum:
                - MESH_EXTERNAL
                - MESH_INTERNAL
                type: string
              ports:
                description: The ports associated with the external service.
                items:
                  properties:
                    name:
                      description: Label assigned to the port.
                      type: string
                    number:
                      description: A valid non-negative integer port number.
                      type: integer
                    protocol:
                      description: The protocol exposed on the port.
                      type: string
                    targetPort:
                      type: integer
                  type: object
                type: array
              resolution:
                description: Service resolution mode for the hosts.
                enum:
                - NONE
                - STATIC
                - DNS
                - DNS_ROUND_ROBIN
                type: string
              subjectAltNames:
                items:
                  type: string
                type: array
              workloadSelector:
                description: Applicable only for MESH_INTERNAL services.
                properties:
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    duck.knative.dev/addressable: "true"
    duck.knative.dev/podspecable: "true"
    knative.dev/crd-install: "true"
  name: services.serving.knative.dev
spec:
  group: serving.knative.dev
  names:
    categories:
    - all
    - knative
    - serving
    kind: Service
    plural: services
    shortNames:
    - kservice
    - ksvc
    singular: service
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.latestCreatedRevisionName
      name: LatestCreated
      type: string
    - jsonPath: .status.latestReadyRevisionName
      name: LatestReady
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: "Service acts as a top-level container that manages a Route and
          Configuration which implement a network service. Service exists to provide
          a singular abstraction which can be access controlled, reasoned about, and
          which encapsulates software lifecycle decisions such as rollout policy and
          team resource ownership. Service acts only as an orchestrator of the underlying
          Routes and Configurations (much as a kubernetes Deployment orchestrates
          ReplicaSets), and its usage is optional but recommended. \n The Service's
          controller will track the statuses of its owned Configuration and Route,
          reflecting their statuses and conditions as its own. \n See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#service"
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: ServiceSpec represents the configuration for the Service
              object. A Service's specification is the union of the specifications
              for a Route and Configuration.  The Service restricts what can be expressed
              in these fields, e.g. the Route must reference the provided Configuration;
              however, these limitations also enable friendlier defaulting, e.g. Route
              never needs a Configuration name, and may be defaulted to the appropriate
              "run latest" spec.
            properties:
              template:
                description: Template holds the latest specification for the Revision
                  to be stamped out.
                properties:
                  metadata:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      finalizers:
                        items:
                          type: string
                        type: array
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                      name:
                        type: string
                      namespace:
                        type: string
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  spec:
                    description: RevisionSpec holds the desired state of the Revision
                      (from the client).
                    properties:
                      affinity:
                        description: This is accessible behind a feature flag - kubernetes.podspec-affinity
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      automountServiceAccountToken:
                        description: AutomountServiceAccountToken indicates whether
                          a service account token should be automatically mounted.
                        type: boolean
                      containerConcurrency:
                        description: ContainerConcurrency specifies the maximum allowed
                          in-flight (concurrent) requests per container of the Revision.  Defaults
                          to `0` which means concurrency to the application is not
                          limited, and the system decides the target concurrency for
                          the autoscaler.
                        format: int64
                        type: integer
                      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 container
                                image''s CMD is used if this is not provided. Variable
                                references $(VAR_NAME) are expanded using the container''s
                                environment. If a variable cannot be resolved, the
                                reference in the input string will be unchanged. Double
                                $$ are reduced to a single $, which allows for escaping
                                the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
                                the string literal "$(VAR_NAME)". Escaped references
                                will never be expanded, regardless of whether the
                                variable exists or not. Cannot be updated. More info:
                                https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              items:
                                type: string
                              type: array
                            command:
                              description: 'Entrypoint array. Not executed within
                                a shell. The container image''s ENTRYPOINT is used
                                if this is not provided. Variable references $(VAR_NAME)
                                are expanded using the container''s environment. If
                                a variable cannot be resolved, the reference in the
                                input string will be unchanged. Double $$ are reduced
                                to a single $, which allows for escaping the $(VAR_NAME)
                                syntax: i.e. "$$(VAR_NAME)" will produce the string
                                literal "$(VAR_NAME)". Escaped references will never
                                be expanded, regardless of whether the variable exists
                                or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              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. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                      will produce the string literal "$(VAR_NAME)".
                                      Escaped references will never be expanded, regardless
                                      of whether the variable exists or not. Defaults
                                      to "".'
                                    type: string
                                  valueFrom:
                                    description: Source for the environment variable's
                                      value. Cannot be used if value is not empty.
                                    properties:
                                      configMapKeyRef:
                                        description: Selects a key of a ConfigMap.
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap
                                              or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        description: This is accessible behind a feature
                                          flag - kubernetes.podspec-fieldref
                                        type: object
                                        x-kubernetes-map-type: atomic
                                        x-kubernetes-preserve-unknown-fields: true
                                      resourceFieldRef:
                                        description: This is accessible behind a feature
                                          flag - kubernetes.podspec-fieldref
                                        type: object
                                        x-kubernetes-map-type: atomic
                                        x-kubernetes-preserve-unknown-fields: true
                                      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
                                        x-kubernetes-map-type: atomic
                                    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. When a key exists in multiple sources, the
                                value associated with the last source will take precedence.
                                Values defined by an Env with a duplicate key will
                                take precedence. Cannot be updated.
                              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
                                    x-kubernetes-map-type: atomic
                                  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
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                            image:
                              description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images
                                This field is optional to allow higher level config
                                management to default or override container images
                                in workload controllers like Deployments and StatefulSets.'
                              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.io/docs/concepts/containers/images#updating-images'
                              type: string
                            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: 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. The command is
                                        simply exec'd, it is not run inside a shell,
                                        so traditional shell instructions ('|', etc)
                                        won't work. To use a shell, you need to explicitly
                                        call out to that shell. Exit status of 0 is
                                        treated as live/healthy and non-zero is unhealthy.
                                      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
                                  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.
                                  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.
                                  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
                                  type: object
                                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.
                                Not specifying a port here DOES NOT prevent that port
                                from being exposed. Any port which is listening on
                                the default "0.0.0.0" address inside a container will
                                be accessible from the network. Modifying this array
                                with strategic merge patch may corrupt the data. For
                                more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                Cannot be updated.
                              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
                                  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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: 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. The command is
                                        simply exec'd, it is not run inside a shell,
                                        so traditional shell instructions ('|', etc)
                                        won't work. To use a shell, you need to explicitly
                                        call out to that shell. Exit status of 0 is
                                        treated as live/healthy and non-zero is unhealthy.
                                      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
                                  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.
                                  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.
                                  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
                                  type: object
                                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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  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.io/docs/tasks/configure-pod-container/security-context/'
                              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. AllowPrivilegeEscalation is true always
                                    when the container is: 1) run as Privileged 2)
                                    has CAP_SYS_ADMIN Note that this field cannot
                                    be set when spec.os.name is windows.'
                                  type: boolean
                                capabilities:
                                  description: The capabilities to add/drop when running
                                    containers. Defaults to the default set of capabilities
                                    granted by the container runtime. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  properties:
                                    add:
                                      description: This is accessible behind a feature
                                        flag - kubernetes.containerspec-addcapabilities
                                      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
                                readOnlyRootFilesystem:
                                  description: Whether this container has a read-only
                                    root filesystem. Default is false. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  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.  If set
                                    in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in PodSecurityContext.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  format: int64
                                  type: integer
                                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. Note that this
                                    field cannot be set when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      type: string
                                  required:
                                  - type
                                  type: object
                              type: object
                            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. Message
                                written is intended to be brief final status, such
                                as an assertion failure message. Will be truncated
                                by the node if greater than 4096 bytes. The total
                                message length across all containers will be limited
                                to 12kb. Defaults to /dev/termination-log. Cannot
                                be updated.'
                              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. FallbackToLogsOnError will use the last
                                chunk of container log output if the termination message
                                file is empty and the container exited with an error.
                                The log output is limited to 2048 bytes or 80 lines,
                                whichever is smaller. Defaults to File. Cannot be
                                updated.
                              type: string
                            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
                                  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
                                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
                          type: object
                        type: array
                      dnsConfig:
                        description: This is accessible behind a feature flag - kubernetes.podspec-dnsconfig
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      dnsPolicy:
                        description: This is accessible behind a feature flag - kubernetes.podspec-dnspolicy
                        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:
                          Knative defaults this to false.'
                        type: boolean
                      hostAliases:
                        description: This is accessible behind a feature flag - kubernetes.podspec-hostaliases
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-hostaliases
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      idleTimeoutSeconds:
                        description: IdleTimeoutSeconds is the maximum duration in
                          seconds a request will be allowed to stay open while not
                          receiving any bytes from the user's application. If unspecified,
                          a system default will be provided.
                        format: int64
                        type: integer
                      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. If specified, these
                          secrets will be passed to individual puller implementations
                          for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                        items:
                          description: LocalObjectReference contains enough information
                            to let you locate the referenced object inside the same
                            namespace.
                          properties:
                            name:
                              description: 'Name of the referent. 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
                          x-kubernetes-map-type: atomic
                        type: array
                      initContainers:
                        description: 'List of initialization containers belonging
                          to the pod. Init containers are executed in order prior
                          to containers being started. If any init container fails,
                          the pod is considered to have failed and is handled according
                          to its restartPolicy. The name for an init container or
                          normal container must be unique among all containers. Init
                          containers may not have Lifecycle actions, Readiness probes,
                          Liveness probes, or Startup probes. The resourceRequirements
                          of an init container are taken into account during scheduling
                          by finding the highest request/limit for each resource type,
                          and then using the max of of that value or the sum of the
                          normal containers. Limits are applied to init containers
                          in a similar fashion. Init containers cannot currently be
                          added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-init-containers
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      nodeSelector:
                        description: This is accessible behind a feature flag - kubernetes.podspec-nodeselector
                        type: object
                        x-kubernetes-map-type: atomic
                        x-kubernetes-preserve-unknown-fields: true
                      priorityClassName:
                        description: This is accessible behind a feature flag - kubernetes.podspec-priorityclassname
                        type: string
                        x-kubernetes-preserve-unknown-fields: true
                      responseStartTimeoutSeconds:
                        description: ResponseStartTimeoutSeconds is the maximum duration
                          in seconds that the request routing layer will wait for
                          a request delivered to a container to begin sending any
                          network traffic.
                        format: int64
                        type: integer
                      runtimeClassName:
                        description: This is accessible behind a feature flag - kubernetes.podspec-runtimeclassname
                        type: string
                        x-kubernetes-preserve-unknown-fields: true
                      schedulerName:
                        description: This is accessible behind a feature flag - kubernetes.podspec-schedulername
                        type: string
                        x-kubernetes-preserve-unknown-fields: true
                      securityContext:
                        description: This is accessible behind a feature flag - kubernetes.podspec-securitycontext
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      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
                      timeoutSeconds:
                        description: TimeoutSeconds is the maximum duration in seconds
                          that the request instance is allowed to respond to a request.
                          If unspecified, a system default will be provided.
                        format: int64
                        type: integer
                      tolerations:
                        description: This is accessible behind a feature flag - kubernetes.podspec-tolerations
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-tolerations
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      topologySpreadConstraints:
                        description: This is accessible behind a feature flag - kubernetes.podspec-topologyspreadconstraints
                        items:
                          description: This is accessible behind a feature flag -
                            kubernetes.podspec-topologyspreadconstraints
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        type: array
                      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:
                            configMap:
                              description: configMap represents a configMap that should
                                populate this volume
                              properties:
                                defaultMode:
                                  description: 'defaultMode is 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. YAML accepts
                                    both octal and decimal values, JSON requires decimal
                                    values for mode bits. Defaults to 0644. Directories
                                    within the path are not affected by this setting.
                                    This might be in conflict with other options that
                                    affect the file mode, like fsGroup, and the result
                                    can be other mode bits set.'
                                  format: int32
                                  type: integer
                                items:
                                  description: items if unspecified, each key-value
                                    pair in the Data field of the referenced ConfigMap
                                    will be projected into the volume as a file whose
                                    name is the key and content is the value. If specified,
                                    the listed keys will be projected into the specified
                                    paths, and unlisted keys will not be present.
                                    If a key is specified which is not present in
                                    the ConfigMap, the volume setup will error unless
                                    it is marked optional. Paths must be relative
                                    and may not contain the '..' path or start with
                                    '..'.
                                  items:
                                    description: Maps a string key to a path within
                                      a volume.
                                    properties:
                                      key:
                                        description: key is the key to project.
                                        type: string
                                      mode:
                                        description: 'mode is 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. YAML
                                          accepts both octal and decimal values, JSON
                                          requires decimal values for mode bits. If
                                          not specified, the volume defaultMode will
                                          be used. This might be in conflict with
                                          other options that affect the file mode,
                                          like fsGroup, and the result can be other
                                          mode bits set.'
                                        format: int32
                                        type: integer
                                      path:
                                        description: path is 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: optional specify whether the ConfigMap
                                    or its keys must be defined
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            emptyDir:
                              description: This is accessible behind a feature flag
                                - kubernetes.podspec-emptydir
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              description: 'name of the volume. 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
                            persistentVolumeClaim:
                              description: This is accessible behind a feature flag
                                - kubernetes.podspec-persistent-volume-claim
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            projected:
                              description: projected items for all in one resources
                                secrets, configmaps, and downward API
                              properties:
                                defaultMode:
                                  description: defaultMode are the 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. YAML accepts
                                    both octal and decimal values, JSON requires decimal
                                    values for mode bits. Directories within the path
                                    are not affected by this setting. This might be
                                    in conflict with other options that affect the
                                    file mode, like fsGroup, and the result can be
                                    other mode bits set.
                                  format: int32
                                  type: integer
                                sources:
                                  description: sources is the list of volume projections
                                  items:
                                    description: Projection that may be projected
                                      along with other supported volume types
                                    properties:
                                      configMap:
                                        description: configMap information about the
                                          configMap data to project
                                        properties:
                                          items:
                                            description: items if unspecified, each
                                              key-value pair in the Data field of
                                              the referenced ConfigMap will be projected
                                              into the volume as a file whose name
                                              is the key and content is the value.
                                              If specified, the listed keys will be
                                              projected into the specified paths,
                                              and unlisted keys will not be present.
                                              If a key is specified which is not present
                                              in the ConfigMap, the volume setup will
                                              error unless it is marked optional.
                                              Paths must be relative and may not contain
                                              the '..' path or start with '..'.
                                            items:
                                              description: Maps a string key to a
                                                path within a volume.
                                              properties:
                                                key:
                                                  description: key is the key to project.
                                                  type: string
                                                mode:
                                                  description: 'mode is 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. YAML accepts both octal and
                                                    decimal values, JSON requires
                                                    decimal values for mode bits.
                                                    If not specified, the volume defaultMode
                                                    will be used. This might be in
                                                    conflict with other options that
                                                    affect the file mode, like fsGroup,
                                                    and the result can be other mode
                                                    bits set.'
                                                  format: int32
                                                  type: integer
                                                path:
                                                  description: path is 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: optional specify whether
                                              the ConfigMap or its keys must be defined
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      downwardAPI:
                                        description: downwardAPI 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
                                                  x-kubernetes-map-type: atomic
                                                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. YAML accepts
                                                    both octal and decimal values,
                                                    JSON requires decimal values for
                                                    mode bits. If not specified, the
                                                    volume defaultMode will be used.
                                                    This might be in conflict with
                                                    other options that affect the
                                                    file mode, like fsGroup, and the
                                                    result can be other mode bits
                                                    set.'
                                                  format: int32
                                                  type: integer
                                                path:
                                                  description: 'Required: Path is  the
                                                    relative path name of the file
                                                    to be created. Must not be absolute
                                                    or contain the ''..'' path. Must
                                                    be utf-8 encoded. The first item
                                                    of the relative path must not
                                                    start with ''..'''
                                                  type: string
                                                resourceFieldRef:
                                                  description: 'Selects a resource
                                                    of the container: only resources
                                                    limits and requests (limits.cpu,
                                                    limits.memory, requests.cpu and
                                                    requests.memory) are currently
                                                    supported.'
                                                  properties:
                                                    containerName:
                                                      description: 'Container name:
                                                        required for volumes, optional
                                                        for env vars'
                                                      type: string
                                                    divisor:
                                                      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
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - path
                                              type: object
                                            type: array
                                        type: object
                                      secret:
                                        description: secret information about the
                                          secret data to project
                                        properties:
                                          items:
                                            description: items if unspecified, each
                                              key-value pair in the Data field of
                                              the referenced Secret will be projected
                                              into the volume as a file whose name
                                              is the key and content is the value.
                                              If specified, the listed keys will be
                                              projected into the specified paths,
                                              and unlisted keys will not be present.
                                              If a key is specified which is not present
                                              in the Secret, the volume setup will
                                              error unless it is marked optional.
                                              Paths must be relative and may not contain
                                              the '..' path or start with '..'.
                                            items:
                                              description: Maps a string key to a
                                                path within a volume.
                                              properties:
                                                key:
                                                  description: key is the key to project.
                                                  type: string
                                                mode:
                                                  description: 'mode is 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. YAML accepts both octal and
                                                    decimal values, JSON requires
                                                    decimal values for mode bits.
                                                    If not specified, the volume defaultMode
                                                    will be used. This might be in
                                                    conflict with other options that
                                                    affect the file mode, like fsGroup,
                                                    and the result can be other mode
                                                    bits set.'
                                                  format: int32
                                                  type: integer
                                                path:
                                                  description: path is 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: optional field specify whether
                                              the Secret or its key must be defined
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      serviceAccountToken:
                                        description: serviceAccountToken is information
                                          about the serviceAccountToken data to project
                                        properties:
                                          audience:
                                            description: audience is the intended
                                              audience of the token. A recipient of
                                              a token must identify itself with an
                                              identifier specified in the audience
                                              of the token, and otherwise should reject
                                              the token. The audience defaults to
                                              the identifier of the apiserver.
                                            type: string
                                          expirationSeconds:
                                            description: expirationSeconds is the
                                              requested duration of validity of the
                                              service account token. As the token
                                              approaches expiration, the kubelet volume
                                              plugin will proactively rotate the service
                                              account token. The kubelet will start
                                              trying to rotate the token if the token
                                              is older than 80 percent of its time
                                              to live or if the token is older than
                                              24 hours.Defaults to 1 hour and must
                                              be at least 10 minutes.
                                            format: int64
                                            type: integer
                                          path:
                                            description: path is the path relative
                                              to the mount point of the file to project
                                              the token into.
                                            type: string
                                        required:
                                        - path
                                        type: object
                                    type: object
                                  type: array
                              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: 'defaultMode is 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. YAML accepts
                                    both octal and decimal values, JSON requires decimal
                                    values for mode bits. Defaults to 0644. Directories
                                    within the path are not affected by this setting.
                                    This might be in conflict with other options that
                                    affect the file mode, like fsGroup, and the result
                                    can be other mode bits set.'
                                  format: int32
                                  type: integer
                                items:
                                  description: items If unspecified, each key-value
                                    pair in the Data field of the referenced Secret
                                    will be projected into the volume as a file whose
                                    name is the key and content is the value. If specified,
                                    the listed keys will be projected into the specified
                                    paths, and unlisted keys will not be present.
                                    If a key is specified which is not present in
                                    the Secret, the volume setup will error unless
                                    it is marked optional. Paths must be relative
                                    and may not contain the '..' path or start with
                                    '..'.
                                  items:
                                    description: Maps a string key to a path within
                                      a volume.
                                    properties:
                                      key:
                                        description: key is the key to project.
                                        type: string
                                      mode:
                                        description: 'mode is 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. YAML
                                          accepts both octal and decimal values, JSON
                                          requires decimal values for mode bits. If
                                          not specified, the volume defaultMode will
                                          be used. This might be in conflict with
                                          other options that affect the file mode,
                                          like fsGroup, and the result can be other
                                          mode bits set.'
                                        format: int32
                                        type: integer
                                      path:
                                        description: path is 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: optional field specify whether the
                                    Secret or its keys must be defined
                                  type: boolean
                                secretName:
                                  description: 'secretName is the 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
                          required:
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                type: object
              traffic:
                description: Traffic specifies how to distribute traffic over a collection
                  of revisions and configurations.
                items:
                  description: TrafficTarget holds a single entry of the routing table
                    for a Route.
                  properties:
                    configurationName:
                      description: ConfigurationName of a configuration to whose latest
                        revision we will send this portion of traffic. When the "status.latestReadyRevisionName"
                        of the referenced configuration changes, we will automatically
                        migrate traffic from the prior "latest ready" revision to
                        the new one.  This field is never set in Route's status, only
                        its spec.  This is mutually exclusive with RevisionName.
                      type: string
                    latestRevision:
                      description: LatestRevision may be optionally provided to indicate
                        that the latest ready Revision of the Configuration should
                        be used for this traffic target.  When provided LatestRevision
                        must be true if RevisionName is empty; it must be false when
                        RevisionName is non-empty.
                      type: boolean
                    percent:
                      description: 'Percent indicates that percentage based routing
                        should be used and the value indicates the percent of traffic
                        that is be routed to this Revision or Configuration. `0` (zero)
                        mean no traffic, `100` means all traffic. When percentage
                        based routing is being used the follow rules apply: - the
                        sum of all percent values must equal 100 - when not specified,
                        the implied value for `percent` is zero for that particular
                        Revision or Configuration'
                      format: int64
                      type: integer
                    revisionName:
                      description: RevisionName of a specific revision to which to
                        send this portion of traffic.  This is mutually exclusive
                        with ConfigurationName.
                      type: string
                    tag:
                      description: Tag is optionally used to expose a dedicated url
                        for referencing this target exclusively.
                      type: string
                    url:
                      description: URL displays the URL for accessing named traffic
                        targets. URL is displayed in status, and is disallowed on
                        spec. URL must contain a scheme (e.g. http://) and a hostname,
                        but may not contain anything else (e.g. basic auth, url path,
                        etc.)
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: ServiceStatus represents the Status stanza of the Service
              resource.
            properties:
              address:
                description: Address holds the information needed for a Route to be
                  the target of an event.
                properties:
                  CACerts:
                    description: CACerts is the Certification Authority (CA) certificates
                      in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
                    type: string
                  name:
                    description: Name is the name of the address.
                    type: string
                  url:
                    type: string
                type: object
              annotations:
                additionalProperties:
                  type: string
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  description: 'Condition defines a readiness condition for a Knative
                    resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties'
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              latestCreatedRevisionName:
                description: LatestCreatedRevisionName is the last revision that was
                  created from this Configuration. It might not be ready yet, for
                  that use LatestReadyRevisionName.
                type: string
              latestReadyRevisionName:
                description: LatestReadyRevisionName holds the name of the latest
                  Revision stamped out from this Configuration that has had its "Ready"
                  condition become "True".
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              traffic:
                description: Traffic holds the configured traffic distribution. These
                  entries will always contain RevisionName references. When ConfigurationName
                  appears in the spec, this will hold the LatestReadyRevisionName
                  that we last observed.
                items:
                  description: TrafficTarget holds a single entry of the routing table
                    for a Route.
                  properties:
                    configurationName:
                      description: ConfigurationName of a configuration to whose latest
                        revision we will send this portion of traffic. When the "status.latestReadyRevisionName"
                        of the referenced configuration changes, we will automatically
                        migrate traffic from the prior "latest ready" revision to
                        the new one.  This field is never set in Route's status, only
                        its spec.  This is mutually exclusive with RevisionName.
                      type: string
                    latestRevision:
                      description: LatestRevision may be optionally provided to indicate
                        that the latest ready Revision of the Configuration should
                        be used for this traffic target.  When provided LatestRevision
                        must be true if RevisionName is empty; it must be false when
                        RevisionName is non-empty.
                      type: boolean
                    percent:
                      description: 'Percent indicates that percentage based routing
                        should be used and the value indicates the percent of traffic
                        that is be routed to this Revision or Configuration. `0` (zero)
                        mean no traffic, `100` means all traffic. When percentage
                        based routing is being used the follow rules apply: - the
                        sum of all percent values must equal 100 - when not specified,
                        the implied value for `percent` is zero for that particular
                        Revision or Configuration'
                      format: int64
                      type: integer
                    revisionName:
                      description: RevisionName of a specific revision to which to
                        send this portion of traffic.  This is mutually exclusive
                        with ConfigurationName.
                      type: string
                    tag:
                      description: Tag is optionally used to expose a dedicated url
                        for referencing this target exclusively.
                      type: string
                    url:
                      description: URL displays the URL for accessing named traffic
                        targets. URL is displayed in status, and is disallowed on
                        spec. URL must contain a scheme (e.g. http://) and a hostname,
                        but may not contain anything else (e.g. basic auth, url path,
                        etc.)
                      type: string
                  type: object
                type: array
              url:
                description: URL holds the url that will distribute traffic over the
                  provided traffic targets. It generally has the form http[s]://{route-name}.{route-namespace}.{cluster-level-suffix}
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.0
  creationTimestamp: null
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: servingruntimes.serving.kserve.io
spec:
  group: serving.kserve.io
  names:
    kind: ServingRuntime
    listKind: ServingRuntimeList
    plural: servingruntimes
    singular: servingruntime
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.disabled
      name: Disabled
      type: boolean
    - jsonPath: .spec.supportedModelFormats[*].name
      name: ModelType
      type: string
    - jsonPath: .spec.containers[*].name
      name: Containers
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              affinity:
                properties:
                  nodeAffinity:
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            preference:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchFields:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            weight:
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        properties:
                          nodeSelectorTerms:
                            items:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchFields:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                              type: object
                            type: array
                        required:
                        - nodeSelectorTerms
                        type: object
                    type: object
                  podAffinity:
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            podAffinityTerm:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaceSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaces:
                              items:
                                type: string
                              type: array
                            topologyKey:
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                  podAntiAffinity:
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            podAffinityTerm:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                      requiredDuringSchedulingIgnoredDuringExecution:
                        items:
                          properties:
                            labelSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaceSelector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            namespaces:
                              items:
                                type: string
                              type: array
                            topologyKey:
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                    type: object
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              builtInAdapter:
                properties:
                  env:
                    items:
                      properties:
                        name:
                          type: string
                        value:
                          type: string
                        valueFrom:
                          properties:
                            configMapKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                            fieldRef:
                              properties:
                                apiVersion:
                                  type: string
                                fieldPath:
                                  type: string
                              required:
                              - fieldPath
                              type: object
                            resourceFieldRef:
                              properties:
                                containerName:
                                  type: string
                                divisor:
                                  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
                                resource:
                                  type: string
                              required:
                              - resource
                              type: object
                            secretKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  memBufferBytes:
                    type: integer
                  modelLoadingTimeoutMillis:
                    type: integer
                  runtimeManagementPort:
                    type: integer
                  serverType:
                    type: string
                type: object
              containers:
                items:
                  properties:
                    args:
                      items:
                        type: string
                      type: array
                    command:
                      items:
                        type: string
                      type: array
                    env:
                      items:
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                          valueFrom:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                    envFrom:
                      items:
                        properties:
                          configMapRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                          prefix:
                            type: string
                          secretRef:
                            properties:
                              name:
                                type: string
                              optional:
                                type: boolean
                            type: object
                        type: object
                      type: array
                    image:
                      type: string
                    imagePullPolicy:
                      type: string
                    lifecycle:
                      properties:
                        postStart:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                        preStop:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                          type: object
                      type: object
                    livenessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    name:
                      type: string
                    ports:
                      items:
                        properties:
                          containerPort:
                            format: int32
                            type: integer
                          hostIP:
                            type: string
                          hostPort:
                            format: int32
                            type: integer
                          name:
                            type: string
                          protocol:
                            default: TCP
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                      x-kubernetes-list-map-keys:
                      - containerPort
                      - protocol
                      x-kubernetes-list-type: map
                    readinessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    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
                          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
                          type: object
                      type: object
                    securityContext:
                      properties:
                        allowPrivilegeEscalation:
                          type: boolean
                        capabilities:
                          properties:
                            add:
                              items:
                                type: string
                              type: array
                            drop:
                              items:
                                type: string
                              type: array
                          type: object
                        privileged:
                          type: boolean
                        procMount:
                          type: string
                        readOnlyRootFilesystem:
                          type: boolean
                        runAsGroup:
                          format: int64
                          type: integer
                        runAsNonRoot:
                          type: boolean
                        runAsUser:
                          format: int64
                          type: integer
                        seLinuxOptions:
                          properties:
                            level:
                              type: string
                            role:
                              type: string
                            type:
                              type: string
                            user:
                              type: string
                          type: object
                        seccompProfile:
                          properties:
                            localhostProfile:
                              type: string
                            type:
                              type: string
                          required:
                          - type
                          type: object
                        windowsOptions:
                          properties:
                            gmsaCredentialSpec:
                              type: string
                            gmsaCredentialSpecName:
                              type: string
                            hostProcess:
                              type: boolean
                            runAsUserName:
                              type: string
                          type: object
                      type: object
                    startupProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    stdin:
                      type: boolean
                    stdinOnce:
                      type: boolean
                    terminationMessagePath:
                      type: string
                    terminationMessagePolicy:
                      type: string
                    tty:
                      type: boolean
                    volumeDevices:
                      items:
                        properties:
                          devicePath:
                            type: string
                          name:
                            type: string
                        required:
                        - devicePath
                        - name
                        type: object
                      type: array
                    volumeMounts:
                      items:
                        properties:
                          mountPath:
                            type: string
                          mountPropagation:
                            type: string
                          name:
                            type: string
                          readOnly:
                            type: boolean
                          subPath:
                            type: string
                          subPathExpr:
                            type: string
                        required:
                        - mountPath
                        - name
                        type: object
                      type: array
                    workingDir:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              disabled:
                type: boolean
              grpcDataEndpoint:
                type: string
              grpcEndpoint:
                type: string
              httpDataEndpoint:
                type: string
              imagePullSecrets:
                items:
                  properties:
                    name:
                      type: string
                  type: object
                type: array
              labels:
                additionalProperties:
                  type: string
                type: object
              multiModel:
                type: boolean
              nodeSelector:
                additionalProperties:
                  type: string
                type: object
              protocolVersions:
                items:
                  type: string
                type: array
              replicas:
                type: integer
              storageHelper:
                properties:
                  disabled:
                    type: boolean
                type: object
              supportedModelFormats:
                items:
                  properties:
                    autoSelect:
                      type: boolean
                    name:
                      type: string
                    version:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              tolerations:
                items:
                  properties:
                    effect:
                      type: string
                    key:
                      type: string
                    operator:
                      type: string
                    tolerationSeconds:
                      format: int64
                      type: integer
                    value:
                      type: string
                  type: object
                type: array
              volumes:
                items:
                  properties:
                    awsElasticBlockStore:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      properties:
                        cachingMode:
                          type: string
                        diskName:
                          type: string
                        diskURI:
                          type: string
                        fsType:
                          type: string
                        kind:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      properties:
                        readOnly:
                          type: boolean
                        secretName:
                          type: string
                        shareName:
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      properties:
                        monitors:
                          items:
                            type: string
                          type: array
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        secretFile:
                          type: string
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        user:
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        name:
                          type: string
                        optional:
                          type: boolean
                      type: object
                    csi:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        nodePublishSecretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        readOnly:
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    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
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                            required:
                            - path
                            type: object
                          type: array
                      type: object
                    emptyDir:
                      properties:
                        medium:
                          type: string
                        sizeLimit:
                          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
                      type: object
                    ephemeral:
                      properties:
                        volumeClaimTemplate:
                          properties:
                            metadata:
                              type: object
                            spec:
                              properties:
                                accessModes:
                                  items:
                                    type: string
                                  type: array
                                dataSource:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                dataSourceRef:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                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
                                      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
                                      type: object
                                  type: object
                                selector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                storageClassName:
                                  type: string
                                volumeMode:
                                  type: string
                                volumeName:
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      properties:
                        fsType:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        targetWWNs:
                          items:
                            type: string
                          type: array
                        wwids:
                          items:
                            type: string
                          type: array
                      type: object
                    flexVolume:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          type: object
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                      required:
                      - driver
                      type: object
                    flocker:
                      properties:
                        datasetName:
                          type: string
                        datasetUUID:
                          type: string
                      type: object
                    gcePersistentDisk:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        pdName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      properties:
                        directory:
                          type: string
                        repository:
                          type: string
                        revision:
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      properties:
                        endpoints:
                          type: string
                        path:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      properties:
                        path:
                          type: string
                        type:
                          type: string
                      required:
                      - path
                      type: object
                    iscsi:
                      properties:
                        chapAuthDiscovery:
                          type: boolean
                        chapAuthSession:
                          type: boolean
                        fsType:
                          type: string
                        initiatorName:
                          type: string
                        iqn:
                          type: string
                        iscsiInterface:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        portals:
                          items:
                            type: string
                          type: array
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        targetPortal:
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      type: string
                    nfs:
                      properties:
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        server:
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      properties:
                        claimName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      properties:
                        fsType:
                          type: string
                        pdID:
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        sources:
                          items:
                            properties:
                              configMap:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              downwardAPI:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        fieldRef:
                                          properties:
                                            apiVersion:
                                              type: string
                                            fieldPath:
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                        resourceFieldRef:
                                          properties:
                                            containerName:
                                              type: string
                                            divisor:
                                              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
                                            resource:
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                      required:
                                      - path
                                      type: object
                                    type: array
                                type: object
                              secret:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                              serviceAccountToken:
                                properties:
                                  audience:
                                    type: string
                                  expirationSeconds:
                                    format: int64
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                      type: object
                    quobyte:
                      properties:
                        group:
                          type: string
                        readOnly:
                          type: boolean
                        registry:
                          type: string
                        tenant:
                          type: string
                        user:
                          type: string
                        volume:
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      properties:
                        fsType:
                          type: string
                        image:
                          type: string
                        keyring:
                          type: string
                        monitors:
                          items:
                            type: string
                          type: array
                        pool:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        user:
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      properties:
                        fsType:
                          type: string
                        gateway:
                          type: string
                        protectionDomain:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        sslEnabled:
                          type: boolean
                        storageMode:
                          type: string
                        storagePool:
                          type: string
                        system:
                          type: string
                        volumeName:
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        optional:
                          type: boolean
                        secretName:
                          type: string
                      type: object
                    storageos:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              type: string
                          type: object
                        volumeName:
                          type: string
                        volumeNamespace:
                          type: string
                      type: object
                    vsphereVolume:
                      properties:
                        fsType:
                          type: string
                        storagePolicyID:
                          type: string
                        storagePolicyName:
                          type: string
                        volumePath:
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
            required:
            - containers
            type: object
          status:
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: sidecars.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: Sidecar
    listKind: SidecarList
    plural: sidecars
    singular: sidecar
  scope: Namespaced
  versions:
  - name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting network reachability of a sidecar.
              See more details at: https://istio.io/docs/reference/config/networking/sidecar.html'
            properties:
              egress:
                items:
                  properties:
                    bind:
                      type: string
                    captureMode:
                      enum:
                      - DEFAULT
                      - IPTABLES
                      - NONE
                      type: string
                    hosts:
                      items:
                        type: string
                      type: array
                    port:
                      description: The port associated with the listener.
                      properties:
                        name:
                          description: Label assigned to the port.
                          type: string
                        number:
                          description: A valid non-negative integer port number.
                          type: integer
                        protocol:
                          description: The protocol exposed on the port.
                          type: string
                        targetPort:
                          type: integer
                      type: object
                  type: object
                type: array
              ingress:
                items:
                  properties:
                    bind:
                      description: The IP(IPv4 or IPv6) to which the listener should
                        be bound.
                      type: string
                    captureMode:
                      enum:
                      - DEFAULT
                      - IPTABLES
                      - NONE
                      type: string
                    defaultEndpoint:
                      type: string
                    port:
                      description: The port associated with the listener.
                      properties:
                        name:
                          description: Label assigned to the port.
                          type: string
                        number:
                          description: A valid non-negative integer port number.
                          type: integer
                        protocol:
                          description: The protocol exposed on the port.
                          type: string
                        targetPort:
                          type: integer
                      type: object
                    tls:
                      properties:
                        caCertificates:
                          description: REQUIRED if mode is `MUTUAL`.
                          type: string
                        cipherSuites:
                          description: 'Optional: If specified, only support the specified
                            cipher list.'
                          items:
                            type: string
                          type: array
                        credentialName:
                          type: string
                        httpsRedirect:
                          type: boolean
                        maxProtocolVersion:
                          description: 'Optional: Maximum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        minProtocolVersion:
                          description: 'Optional: Minimum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        mode:
                          enum:
                          - PASSTHROUGH
                          - SIMPLE
                          - MUTUAL
                          - AUTO_PASSTHROUGH
                          - ISTIO_MUTUAL
                          type: string
                        privateKey:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        serverCertificate:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        subjectAltNames:
                          items:
                            type: string
                          type: array
                        verifyCertificateHash:
                          items:
                            type: string
                          type: array
                        verifyCertificateSpki:
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
                type: array
              outboundTrafficPolicy:
                description: Configuration for the outbound traffic policy.
                properties:
                  egressProxy:
                    properties:
                      host:
                        description: The name of a service from the service registry.
                        type: string
                      port:
                        description: Specifies the port on the host that is being
                          addressed.
                        properties:
                          number:
                            type: integer
                        type: object
                      subset:
                        description: The name of a subset within the service.
                        type: string
                    type: object
                  mode:
                    enum:
                    - REGISTRY_ONLY
                    - ALLOW_ANY
                    type: string
                type: object
              workloadSelector:
                properties:
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting network reachability of a sidecar.
              See more details at: https://istio.io/docs/reference/config/networking/sidecar.html'
            properties:
              egress:
                items:
                  properties:
                    bind:
                      type: string
                    captureMode:
                      enum:
                      - DEFAULT
                      - IPTABLES
                      - NONE
                      type: string
                    hosts:
                      items:
                        type: string
                      type: array
                    port:
                      description: The port associated with the listener.
                      properties:
                        name:
                          description: Label assigned to the port.
                          type: string
                        number:
                          description: A valid non-negative integer port number.
                          type: integer
                        protocol:
                          description: The protocol exposed on the port.
                          type: string
                        targetPort:
                          type: integer
                      type: object
                  type: object
                type: array
              ingress:
                items:
                  properties:
                    bind:
                      description: The IP(IPv4 or IPv6) to which the listener should
                        be bound.
                      type: string
                    captureMode:
                      enum:
                      - DEFAULT
                      - IPTABLES
                      - NONE
                      type: string
                    defaultEndpoint:
                      type: string
                    port:
                      description: The port associated with the listener.
                      properties:
                        name:
                          description: Label assigned to the port.
                          type: string
                        number:
                          description: A valid non-negative integer port number.
                          type: integer
                        protocol:
                          description: The protocol exposed on the port.
                          type: string
                        targetPort:
                          type: integer
                      type: object
                    tls:
                      properties:
                        caCertificates:
                          description: REQUIRED if mode is `MUTUAL`.
                          type: string
                        cipherSuites:
                          description: 'Optional: If specified, only support the specified
                            cipher list.'
                          items:
                            type: string
                          type: array
                        credentialName:
                          type: string
                        httpsRedirect:
                          type: boolean
                        maxProtocolVersion:
                          description: 'Optional: Maximum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        minProtocolVersion:
                          description: 'Optional: Minimum TLS protocol version.'
                          enum:
                          - TLS_AUTO
                          - TLSV1_0
                          - TLSV1_1
                          - TLSV1_2
                          - TLSV1_3
                          type: string
                        mode:
                          enum:
                          - PASSTHROUGH
                          - SIMPLE
                          - MUTUAL
                          - AUTO_PASSTHROUGH
                          - ISTIO_MUTUAL
                          type: string
                        privateKey:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        serverCertificate:
                          description: REQUIRED if mode is `SIMPLE` or `MUTUAL`.
                          type: string
                        subjectAltNames:
                          items:
                            type: string
                          type: array
                        verifyCertificateHash:
                          items:
                            type: string
                          type: array
                        verifyCertificateSpki:
                          items:
                            type: string
                          type: array
                      type: object
                  type: object
                type: array
              outboundTrafficPolicy:
                description: Configuration for the outbound traffic policy.
                properties:
                  egressProxy:
                    properties:
                      host:
                        description: The name of a service from the service registry.
                        type: string
                      port:
                        description: Specifies the port on the host that is being
                          addressed.
                        properties:
                          number:
                            type: integer
                        type: object
                      subset:
                        description: The name of a subset within the service.
                        type: string
                    type: object
                  mode:
                    enum:
                    - REGISTRY_ONLY
                    - ALLOW_ANY
                    type: string
                type: object
              workloadSelector:
                properties:
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/binding: "true"
    duck.knative.dev/source: "true"
    eventing.knative.dev/source: "true"
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: sinkbindings.sources.knative.dev
spec:
  group: sources.knative.dev
  names:
    categories:
    - all
    - knative
    - sources
    - bindings
    kind: SinkBinding
    plural: sinkbindings
    singular: sinkbinding
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.sinkUri
      name: Sink
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: SinkBinding describes a Binding that is also a Source. The `sink`
          (from the Source duck) is resolved to a URL and then projected into the
          `subject` by augmenting the runtime contract of the referenced containers
          to have a `K_SINK` environment variable holding the endpoint to which to
          send cloud events.
        properties:
          spec:
            properties:
              ceOverrides:
                description: CloudEventOverrides defines overrides to control the
                  output format and modifications of the event sent to the sink.
                properties:
                  extensions:
                    description: Extensions specify what attribute are added or overridden
                      on the outbound event. Each `Extensions` key-value pair are
                      set on the event as an attribute extension independently.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              sink:
                description: Sink is a reference to an object that will resolve to
                  a uri to use as the sink.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
              subject:
                description: Subject references the resource(s) whose "runtime contract"
                  should be augmented by Binding implementations.
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  kind:
                    description: Kind of the referent.
                    type: string
                  name:
                    description: Name of the referent. Mutually exclusive with Selector.
                    type: string
                  namespace:
                    description: Namespace of the referent.
                    type: string
                  selector:
                    description: Selector of the referents. Mutually exclusive with
                      Name.
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector
                          requirements. The requirements are ANDed.
                        items:
                          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. This array is replaced
                                during a strategic merge patch.
                              items:
                                type: string
                              type: array
                          type: object
                        type: array
                      matchLabels:
                        description: matchLabels is a map of {key,value} pairs. A
                          single {key,value} in the matchLabels map is equivalent
                          to an element of matchExpressions, whose key field is "key",
                          the operator is "In", and the values array contains only
                          "value". The requirements are ANDed.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                    type: object
                type: object
            type: object
          status:
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              ceAttributes:
                description: CloudEventAttributes are the specific attributes that
                  the Source uses as part of its CloudEvents.
                items:
                  properties:
                    source:
                      description: Source is the CloudEvents source attribute.
                      type: string
                    type:
                      description: Type refers to the CloudEvent type attribute.
                      type: string
                  type: object
                type: array
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              sinkUri:
                description: SinkURI is the current active sink URI that has been
                  configured for the Source.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: subscriptions.messaging.knative.dev
spec:
  group: messaging.knative.dev
  names:
    categories:
    - all
    - knative
    - messaging
    kind: Subscription
    plural: subscriptions
    shortNames:
    - sub
    singular: subscription
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: Subscription routes events received on a Channel to a DNS name
          and corresponds to the subscriptions.channels.knative.dev CRD.
        properties:
          spec:
            properties:
              channel:
                description: 'Reference to a channel that will be used to create the
                  subscription. You can specify only the following fields of the KReference:
                  kind, apiVersion and name. The resource pointed by this KReference
                  must meet the contract to the ChannelableSpec duck type. If the
                  resource does not meet this contract it will be reflected in the
                  Subscription''s status.  This field is immutable. We have no good
                  answer on what happens to the events that are currently in the channel
                  being consumed from and what the semantics there should be. For
                  now, you can always delete the Subscription and recreate it to point
                  to a different channel, giving the user more control over what semantics
                  should be used (drain the channel first, possibly have events dropped,
                  etc.)'
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  kind:
                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                    type: string
                type: object
                x-kubernetes-preserve-unknown-fields: true
              delivery:
                description: Delivery configuration
                properties:
                  backoffDelay:
                    description: 'BackoffDelay is the delay before retrying. More
                      information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                      - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                      backoff delay is backoffDelay*<numberOfRetries>. For exponential
                      policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                    type: string
                  backoffPolicy:
                    description: BackoffPolicy is the retry backoff policy (linear,
                      exponential).
                    type: string
                  deadLetterSink:
                    description: DeadLetterSink is the sink receiving event that could
                      not be sent to a destination.
                    properties:
                      ref:
                        description: Ref points to an Addressable.
                        properties:
                          apiVersion:
                            description: API version of the referent.
                            type: string
                          kind:
                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                            type: string
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          namespace:
                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                              This is optional field, it gets defaulted to the object
                              holding it if left out.'
                            type: string
                        type: object
                      uri:
                        description: URI can be an absolute URL(non-empty scheme and
                          non-empty host) pointing to the target or a relative URI.
                          Relative URIs will be resolved using the base URI retrieved
                          from Ref.
                        type: string
                    type: object
                  retry:
                    description: Retry is the minimum number of retries the sender
                      should attempt when sending an event before moving it to the
                      dead letter sink.
                    format: int32
                    type: integer
                type: object
                x-kubernetes-preserve-unknown-fields: true
              reply:
                description: Reply specifies (optionally) how to handle events returned
                  from the Subscriber target.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
              subscriber:
                description: Subscriber is reference to (optional) function for processing
                  events. Events from the Channel will be delivered here and replies
                  are sent to a Destination as specified by the Reply.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
            type: object
          status:
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              physicalSubscription:
                description: PhysicalSubscription is the fully resolved values that
                  this Subscription represents.
                properties:
                  deadLetterSinkUri:
                    description: ReplyURI is the fully resolved URI for the spec.delivery.deadLetterSink.
                    type: string
                  replyUri:
                    description: ReplyURI is the fully resolved URI for the spec.reply.
                    type: string
                  subscriberUri:
                    description: SubscriberURI is the fully resolved URI for spec.subscriber.
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: suggestions.kubeflow.org
spec:
  group: kubeflow.org
  names:
    categories:
    - all
    - kubeflow
    - katib
    kind: Suggestion
    plural: suggestions
    singular: suggestion
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: Type
      type: string
    - jsonPath: .status.conditions[-1:].status
      name: Status
      type: string
    - jsonPath: .spec.requests
      name: Requested
      type: string
    - jsonPath: .status.suggestionCount
      name: Assigned
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        type: object
        x-kubernetes-preserve-unknown-fields: true
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    istio: telemetry
    release: istio
  name: telemetries.telemetry.istio.io
spec:
  group: telemetry.istio.io
  names:
    categories:
    - istio-io
    - telemetry-istio-io
    kind: Telemetry
    listKind: TelemetryList
    plural: telemetries
    shortNames:
    - telemetry
    singular: telemetry
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Telemetry configuration for workloads. See more details
              at: https://istio.io/docs/reference/config/telemetry.html'
            properties:
              accessLogging:
                description: Optional.
                items:
                  properties:
                    disabled:
                      description: Controls logging.
                      nullable: true
                      type: boolean
                    filter:
                      description: Optional.
                      properties:
                        expression:
                          description: CEL expression for selecting when requests/connections
                            should be logged.
                          type: string
                      type: object
                    match:
                      description: Allows tailoring of logging behavior to specific
                        conditions.
                      properties:
                        mode:
                          enum:
                          - CLIENT_AND_SERVER
                          - CLIENT
                          - SERVER
                          type: string
                      type: object
                    providers:
                      description: Optional.
                      items:
                        properties:
                          name:
                            description: Required.
                            type: string
                        type: object
                      type: array
                  type: object
                type: array
              metrics:
                description: Optional.
                items:
                  properties:
                    overrides:
                      description: Optional.
                      items:
                        properties:
                          disabled:
                            description: Optional.
                            nullable: true
                            type: boolean
                          match:
                            description: Match allows provides the scope of the override.
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - metric
                                - required:
                                  - customMetric
                            - required:
                              - metric
                            - required:
                              - customMetric
                            properties:
                              customMetric:
                                description: Allows free-form specification of a metric.
                                type: string
                              metric:
                                description: One of the well-known Istio Standard
                                  Metrics.
                                enum:
                                - ALL_METRICS
                                - REQUEST_COUNT
                                - REQUEST_DURATION
                                - REQUEST_SIZE
                                - RESPONSE_SIZE
                                - TCP_OPENED_CONNECTIONS
                                - TCP_CLOSED_CONNECTIONS
                                - TCP_SENT_BYTES
                                - TCP_RECEIVED_BYTES
                                - GRPC_REQUEST_MESSAGES
                                - GRPC_RESPONSE_MESSAGES
                                type: string
                              mode:
                                enum:
                                - CLIENT_AND_SERVER
                                - CLIENT
                                - SERVER
                                type: string
                            type: object
                          tagOverrides:
                            additionalProperties:
                              properties:
                                operation:
                                  description: Operation controls whether or not to
                                    update/add a tag, or to remove it.
                                  enum:
                                  - UPSERT
                                  - REMOVE
                                  type: string
                                value:
                                  description: Value is only considered if the operation
                                    is `UPSERT`.
                                  type: string
                              type: object
                            description: Optional.
                            type: object
                        type: object
                      type: array
                    providers:
                      description: Optional.
                      items:
                        properties:
                          name:
                            description: Required.
                            type: string
                        type: object
                      type: array
                    reportingInterval:
                      description: Optional.
                      type: string
                  type: object
                type: array
              selector:
                description: Optional.
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              tracing:
                description: Optional.
                items:
                  properties:
                    customTags:
                      additionalProperties:
                        oneOf:
                        - not:
                            anyOf:
                            - required:
                              - literal
                            - required:
                              - environment
                            - required:
                              - header
                        - required:
                          - literal
                        - required:
                          - environment
                        - required:
                          - header
                        properties:
                          environment:
                            description: Environment adds the value of an environment
                              variable to each span.
                            properties:
                              defaultValue:
                                description: Optional.
                                type: string
                              name:
                                description: Name of the environment variable from
                                  which to extract the tag value.
                                type: string
                            type: object
                          header:
                            properties:
                              defaultValue:
                                description: Optional.
                                type: string
                              name:
                                description: Name of the header from which to extract
                                  the tag value.
                                type: string
                            type: object
                          literal:
                            description: Literal adds the same, hard-coded value to
                              each span.
                            properties:
                              value:
                                description: The tag value to use.
                                type: string
                            type: object
                        type: object
                      description: Optional.
                      type: object
                    disableSpanReporting:
                      description: Controls span reporting.
                      nullable: true
                      type: boolean
                    match:
                      description: Allows tailoring of behavior to specific conditions.
                      properties:
                        mode:
                          enum:
                          - CLIENT_AND_SERVER
                          - CLIENT
                          - SERVER
                          type: string
                      type: object
                    providers:
                      description: Optional.
                      items:
                        properties:
                          name:
                            description: Required.
                            type: string
                        type: object
                      type: array
                    randomSamplingPercentage:
                      nullable: true
                      type: number
                    useRequestIdForTraceSampling:
                      nullable: true
                      type: boolean
                  type: object
                type: array
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboards.tensorboard.kubeflow.org
spec:
  group: tensorboard.kubeflow.org
  names:
    kind: Tensorboard
    listKind: TensorboardList
    plural: tensorboards
    singular: tensorboard
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Tensorboard is the Schema for the tensorboards API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: TensorboardSpec defines the desired state of Tensorboard
            properties:
              logspath:
                description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
                  Important: Run "make" to regenerate code after modifying this file'
                type: string
            required:
            - logspath
            type: object
          status:
            description: TensorboardStatus defines the observed state of Tensorboard
            properties:
              conditions:
                description: Conditions is an array of current conditions
                items:
                  description: TensorboardCondition defines the observed state of
                    Tensorboard
                  properties:
                    deploymentState:
                      description: Deployment status, 'Available', 'Progressing',
                        'ReplicaFailure' .
                      type: string
                    lastProbeTime:
                      description: Last time we probed the condition.
                      format: date-time
                      type: string
                  required:
                  - deploymentState
                  type: object
                type: array
              readyReplicas:
                description: ReadyReplicas defines the number of Tensorboard Servers
                  that are available to connect. The value of ReadyReplicas can be
                  either 0 or 1
                format: int32
                type: integer
            required:
            - conditions
            - readyReplicas
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: tfjobs.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: TFJob
    listKind: TFJobList
    plural: tfjobs
    singular: tfjob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: State
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: TFJob represents a TFJob resource.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Specification of the desired state of the TFJob.
            properties:
              enableDynamicWorker:
                description: A switch to enable dynamic worker
                type: boolean
              runPolicy:
                description: RunPolicy encapsulates various runtime policies of the
                  distributed training job, for example how to clean up resources
                  and how long the job can stay active.
                properties:
                  activeDeadlineSeconds:
                    description: Specifies the duration in seconds relative to the
                      startTime that the job may be active before the system tries
                      to terminate it; value must be positive integer.
                    format: int64
                    type: integer
                  backoffLimit:
                    description: Optional number of retries before marking this job
                      failed.
                    format: int32
                    type: integer
                  cleanPodPolicy:
                    description: CleanPodPolicy defines the policy to kill pods after
                      the job completes. Default to None.
                    type: string
                  schedulingPolicy:
                    description: SchedulingPolicy defines the policy related to scheduling,
                      e.g. gang-scheduling
                    properties:
                      minAvailable:
                        format: int32
                        type: integer
                      minResources:
                        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
                        type: object
                      priorityClass:
                        type: string
                      queue:
                        type: string
                      scheduleTimeoutSeconds:
                        format: int32
                        type: integer
                    type: object
                  suspend:
                    default: false
                    description: suspend specifies whether the Job controller should
                      create Pods or not. If a Job is created with suspend set to
                      true, no Pods are created by the Job controller. If a Job is
                      suspended after creation (i.e. the flag goes from false to true),
                      the Job controller will delete all active Pods and PodGroups
                      associated with this Job. Users must design their workload to
                      gracefully handle this.
                    type: boolean
                  ttlSecondsAfterFinished:
                    description: TTLSecondsAfterFinished is the TTL to clean up jobs.
                      It may take extra ReconcilePeriod seconds for the cleanup, since
                      reconcile gets called periodically. Default to infinite.
                    format: int32
                    type: integer
                type: object
              successPolicy:
                description: SuccessPolicy defines the policy to mark the TFJob as
                  succeeded. Default to "", using the default rules.
                type: string
              tfReplicaSpecs:
                additionalProperties:
                  description: ReplicaSpec is a description of the replica
                  properties:
                    replicas:
                      description: Replicas is the desired number of replicas of the
                        given template. If unspecified, defaults to 1.
                      format: int32
                      type: integer
                    restartPolicy:
                      description: Restart policy for all replicas within the job.
                        One of Always, OnFailure, Never and ExitCode. Default to Never.
                      type: string
                    template:
                      description: Template is the object that describes the pod that
                        will be created for this replica. RestartPolicy in PodTemplateSpec
                        will be overide by RestartPolicy in ReplicaSpec
                      properties:
                        metadata:
                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'Specification of the desired behavior of the
                            pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                          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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to an update), the
                                        system may or may not try to eventually evict
                                        the pod from its 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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to a pod label update),
                                        the system may or may not try to eventually
                                        evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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. The node that is most
                                        preferred is the one with the greatest sum
                                        of weights, i.e.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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. If the anti-affinity requirements specified
                                        by this field cease to be met at some point
                                        during pod execution (e.g. due to a pod label
                                        update), the system may or may not try to
                                        eventually evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.
                                    Resolution options given in Options will override
                                    those that appear in the base DNSPolicy.
                                  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'. DNS parameters
                                given in DNSConfig will be merged with the policy
                                selected with DNSPolicy. To have DNS options set along
                                with hostNetwork, you have to specify DNS policy explicitly
                                to 'ClusterFirstWithHostNet'.
                              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.
                                This list cannot be specified when creating a pod,
                                and it cannot be modified by updating the pod spec.
                                In order to add an ephemeral container to an existing
                                pod, use the pod's ephemeralcontainers subresource.
                              items:
                                description: An EphemeralContainer is a temporary
                                  container that you may add to an existing Pod for
                                  user-initiated activities such as debugging. Ephemeral
                                  containers have no resource or scheduling guarantees,
                                  and they will not be restarted when they exit or
                                  when a Pod is removed or restarted. The kubelet
                                  may evict a Pod if an ephemeral container causes
                                  the Pod to exceed its resource allocation.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      image''s CMD is used if this is not provided.
                                      Variable references $(VAR_NAME) are expanded
                                      using the container''s environment. If a variable
                                      cannot be resolved, the reference in the input
                                      string will be unchanged. Double $$ are reduced
                                      to a single $, which allows for escaping the
                                      $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                                      produce the string literal "$(VAR_NAME)".'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The image''s ENTRYPOINT is used if
                                      this is not provided. Variable references $(VAR_NAME)
                                      are expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container 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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: Resources are not allowed for ephemeral
                                      containers. Ephemeral containers use spare resources
                                      already allocated to the pod.
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. If not set
                                      then the ephemeral container uses the namespaces
                                      configured in the Pod spec. \n The container
                                      runtime must implement support for this feature."
                                    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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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. Subpath mounts are not allowed for
                                      ephemeral containers. 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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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
                            hostUsers:
                              description: 'Use the host''s user namespace. Optional:
                                Default to true. If set to true or not present, the
                                pod will be run in the host user namespace, useful
                                for when the pod needs a feature only available to
                                the host user namespace, such as loading a kernel
                                module with CAP_SYS_MODULE. When set to false, a new
                                userns is created for the pod.'
                              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.
                                If specified, these secrets will be passed to individual
                                puller implementations for them to use. More info:
                                https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                              items:
                                description: LocalObjectReference contains enough
                                  information to let you locate the referenced object
                                  inside the same namespace.
                                properties:
                                  name:
                                    description: 'Name of the referent. 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
                                x-kubernetes-map-type: atomic
                              type: array
                            initContainers:
                              description: List of initialization containers belonging
                                to the pod. Init containers are executed in order
                                prior to containers being started. If any init container
                                fails, the pod is considered to have failed and is
                                handled according to its restartPolicy. The name for
                                an init container or normal container must be unique
                                among all containers.
                              items:
                                description: A single application container that you
                                  want to run within a pod.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.io/docs/concepts/configuration/assign-pod-node/'
                              type: object
                              x-kubernetes-map-type: atomic
                            os:
                              description: "Specifies the OS of the containers in
                                the pod. Some pod and container fields are restricted
                                if this is set. \n If the OS field is set to linux,
                                the following fields must be unset: -securityContext.windowsOptions
                                \n If the OS field is set to windows, following fields
                                must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers
                                - spec.securityContext.seLinuxOptions - spec.securityContext."
                              properties:
                                name:
                                  description: 'Name is the name of the operating
                                    system. The currently supported values are linux
                                    and windows. Additional value may be defined in
                                    future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
                                    Clients should expect to handle additional values
                                    and treat unrecognized values in this field as
                                    os: null'
                                  type: string
                              required:
                              - name
                              type: object
                            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. If the RuntimeClass
                                admission controller is enabled, overhead must not
                                be set in Pod create requests. The RuntimeClass admission
                                controller will reject Pod create requests which have
                                the overhead already set.
                              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. The admission controller
                                populates this field from PriorityClassName. The higher
                                the value, the higher the priority.
                              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.
                                Any other name must be defined by creating a PriorityClass
                                object with that name. If not specified, the pod priority
                                will be default or zero if there is no default.
                              type: string
                            readinessGates:
                              description: 'If specified, all readiness gates will
                                be evaluated for pod readiness. A pod is ready when
                                all its containers are ready AND all conditions specified
                                in the readiness gates have status equal to "True"
                                More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates'
                              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
                            resourceClaims:
                              description: "ResourceClaims defines which ResourceClaims
                                must be allocated and reserved before the Pod is allowed
                                to start. The resources will be made available to
                                those containers which consume them by name. \n This
                                is an alpha field and requires enabling the DynamicResourceAllocation
                                feature gate. \n This field is immutable."
                              items:
                                description: PodResourceClaim references exactly one
                                  ResourceClaim through a ClaimSource. It adds a name
                                  to it that uniquely identifies the ResourceClaim
                                  inside the Pod. Containers that need access to the
                                  ResourceClaim reference it with this name.
                                properties:
                                  name:
                                    description: Name uniquely identifies this resource
                                      claim inside the pod. This must be a DNS_LABEL.
                                    type: string
                                  source:
                                    description: Source describes where to find the
                                      ResourceClaim.
                                    properties:
                                      resourceClaimName:
                                        description: ResourceClaimName is the name
                                          of a ResourceClaim object in the same namespace
                                          as this pod.
                                        type: string
                                      resourceClaimTemplateName:
                                        description: "ResourceClaimTemplateName is
                                          the name of a ResourceClaimTemplate object
                                          in the same namespace as this pod. \n The
                                          template will be used to create a new ResourceClaim,
                                          which will be bound to this pod. When this
                                          pod is deleted, the ResourceClaim will also
                                          be deleted. The name of the ResourceClaim
                                          will be <pod name>-<resource name>, where
                                          <resource name> is the PodResourceClaim.Name."
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            restartPolicy:
                              description: 'Restart policy for all containers within
                                the pod. One of Always, OnFailure, Never. In some
                                contexts, only a subset of those values may be permitted.
                                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. If unset
                                or empty, the "legacy" RuntimeClass will be used,
                                which is an implicit class with an empty definition
                                that uses the default runtime handler. More info:
                                https://git.k8s.'
                              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
                            schedulingGates:
                              description: "SchedulingGates is an opaque list of values
                                that if specified will block scheduling the pod. If
                                schedulingGates is not empty, the pod will stay in
                                the SchedulingGated state and the scheduler will not
                                attempt to schedule the pod. \n SchedulingGates can
                                only be set at pod creation time, and be removed only
                                afterwards. \n This is a beta feature enabled by the
                                PodSchedulingReadiness feature gate."
                              items:
                                description: PodSchedulingGate is associated to a
                                  Pod to guard its scheduling.
                                properties:
                                  name:
                                    description: Name of the scheduling gate. Each
                                      scheduling gate must have a unique name field.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            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. The setgid bit
                                    is set (new files created in the volume will be
                                    owned by FSGroup) 3."
                                  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). It will have
                                    no effect on ephemeral volume types such as: secret,
                                    configmaps and emptydir. Valid values are "OnRootMismatch"
                                    and "Always". If not specified, "Always" is used.'
                                  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.  If set in
                                    both SecurityContext and PodSecurityContext, the
                                    value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in SecurityContext.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence for that container.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.  If
                                    set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. Note that this field cannot be set
                                    when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      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, the fsGroup (if specified),
                                    and group memberships defined in the container
                                    image for the uid of the container process. If
                                    unspecified, no additional groups are 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.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.
                                    If set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is linux.
                                  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. Setting this field without the
                                        feature flag will result in errors when validating
                                        the Pod.
                                      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.
                                        If set in both SecurityContext and PodSecurityContext,
                                        the value specified in SecurityContext takes
                                        precedence.
                                      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). In Linux containers, this means setting
                                the FQDN in the hostname field of the kernel (the
                                nodename field of struct utsname).
                              type: boolean
                            shareProcessNamespace:
                              description: 'Share a single process namespace between
                                all of the containers in a pod. When this is set containers
                                will be able to view and signal processes from other
                                containers in the same pod, and the first process
                                in each container will not be assigned PID 1. HostPID
                                and ShareProcessNamespace cannot both be set. Optional:
                                Default to false.'
                              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. The value
                                zero indicates stop immediately via the kill signal
                                (no opportunity to shut down). If this value is nil,
                                the default grace period will be used instead.
                              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. By default, it
                                      is not set, which means tolerate the taint forever
                                      (do not evict). Zero and negative values will
                                      be treated as 0 (evict immediately) by the system.
                                    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. This
                                                array is replaced during a strategic
                                                merge patch.
                                              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. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: MatchLabelKeys is a set of pod label
                                      keys to select the pods over which spreading
                                      will be calculated. The keys are used to lookup
                                      values from the incoming pod labels, those key-value
                                      labels are ANDed with labelSelector to select
                                      the group of existing pods over which spreading
                                      will be calculated for the incoming pod. The
                                      same key is forbidden to exist in both MatchLabelKeys
                                      and LabelSelector.
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  maxSkew:
                                    description: MaxSkew describes the degree to which
                                      pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
                                      it is the maximum permitted difference between
                                      the number of matching pods in the target topology
                                      and the global minimum. The global minimum is
                                      the minimum number of matching pods in an eligible
                                      domain or zero if the number of eligible domains
                                      is less than MinDomains.
                                    format: int32
                                    type: integer
                                  minDomains:
                                    description: MinDomains indicates a minimum number
                                      of eligible domains. When the number of eligible
                                      domains with matching topology keys is less
                                      than minDomains, Pod Topology Spread treats
                                      "global minimum" as 0, and then the calculation
                                      of Skew is performed. And when the number of
                                      eligible domains with matching topology keys
                                      equals or greater than minDomains, this value
                                      has no effect on scheduling.
                                    format: int32
                                    type: integer
                                  nodeAffinityPolicy:
                                    description: "NodeAffinityPolicy indicates how
                                      we will treat Pod's nodeAffinity/nodeSelector
                                      when calculating pod topology spread skew. Options
                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector
                                      are included in the calculations. - Ignore:
                                      nodeAffinity/nodeSelector are ignored. All nodes
                                      are included in the calculations. \n If this
                                      value is nil, the behavior is equivalent to
                                      the Honor policy."
                                    type: string
                                  nodeTaintsPolicy:
                                    description: "NodeTaintsPolicy indicates how we
                                      will treat node taints when calculating pod
                                      topology spread skew. Options are: - Honor:
                                      nodes without taints, along with tainted nodes
                                      for which the incoming pod has a toleration,
                                      are included. - Ignore: node taints are ignored.
                                      All nodes are included. \n If this value is
                                      nil, the behavior is equivalent to the Ignore
                                      policy."
                                    type: string
                                  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.
                                      We consider each <key, value> as a "bucket",
                                      and try to put balanced number of pods into
                                      each bucket. We define a domain as a particular
                                      instance of a 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. - ScheduleAnyway
                                      tells the scheduler to schedule the pod in any
                                      location, but giving higher precedence to topologies
                                      that would help reduce the skew.
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty).'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly value true will force
                                          the readOnly setting in VolumeMounts. More
                                          info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                        type: boolean
                                      volumeID:
                                        description: 'volumeID is 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: 'cachingMode is the Host Caching
                                          mode: None, Read Only, Read Write.'
                                        type: string
                                      diskName:
                                        description: diskName is the Name of the data
                                          disk in the blob storage
                                        type: string
                                      diskURI:
                                        description: diskURI is the URI of data disk
                                          in the blob storage
                                        type: string
                                      fsType:
                                        description: fsType is 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: 'kind expected values are 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: readOnly 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: readOnly defaults to false (read/write).
                                          ReadOnly here will force the ReadOnly setting
                                          in VolumeMounts.
                                        type: boolean
                                      secretName:
                                        description: secretName is the  name of secret
                                          that contains Azure Storage Account Name
                                          and Key
                                        type: string
                                      shareName:
                                        description: shareName is the azure 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: 'monitors is 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: 'path is Optional: Used as the
                                          mounted root, rather than the full Ceph
                                          tree, default is /'
                                        type: string
                                      readOnly:
                                        description: 'readOnly is 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: 'secretFile is 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://examples.k8s.io/mysql-cinder-pd/README.md'
                                        type: string
                                      readOnly:
                                        description: 'readOnly 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      volumeID:
                                        description: 'volumeID 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items if unspecified, each key-value
                                          pair in the Data field of the referenced
                                          ConfigMap will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional specify whether the
                                          ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: fsType to mount. Ex. "ext4",
                                          "xfs", "ntfs". If not provided, the empty
                                          value is passed to the associated CSI driver
                                          which will determine the default filesystem
                                          to apply.
                                        type: string
                                      nodePublishSecretRef:
                                        description: nodePublishSecretRef is a reference
                                          to the secret object containing sensitive
                                          information to pass to the CSI driver to
                                          complete the CSI NodePublishVolume and NodeUnpublishVolume
                                          calls. This field is optional, and  may
                                          be empty if no secret is required. If the
                                          secret object contains more than one secret,
                                          all secret references are passed.
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      readOnly:
                                        description: readOnly 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. Must be an octal value
                                          between 0000 and 0777 or a decimal value
                                          between 0 and 511. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        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
                                              x-kubernetes-map-type: atomic
                                            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. YAML accepts both octal and
                                                decimal values, JSON requires decimal
                                                values for mode bits. If not specified,
                                                the volume defaultMode will be used.'
                                              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
                                              x-kubernetes-map-type: atomic
                                          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: 'medium represents what type
                                          of storage medium should back this directory.
                                          The default is "" which means to use the
                                          node''s default medium. Must be an empty
                                          string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                        type: string
                                      sizeLimit:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'sizeLimit is the total amount
                                          of local storage required for this EmptyDir
                                          volume. The size limit is also applicable
                                          for memory medium. The maximum usage on
                                          memory medium EmptyDir would be the minimum
                                          value between the SizeLimit specified here
                                          and the sum of memory limits of all containers
                                          in a pod. The default is nil which means
                                          that the limit is undefined. More info:
                                          https://kubernetes.'
                                        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.  The
                                          name of the PVC will be `<pod name>-<volume
                                          name>` where `<volume name>` is the name
                                          from the `PodSpec.Volumes` array entry.
                                        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.
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              finalizers:
                                                items:
                                                  type: string
                                                type: array
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              name:
                                                type: string
                                              namespace:
                                                type: string
                                            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: 'dataSource field can
                                                  be used to specify either: * An
                                                  existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                                  * An existing PVC (PersistentVolumeClaim)
                                                  If the provisioner or an external
                                                  controller can support the specified
                                                  data source, it will create a new
                                                  volume based on the contents of
                                                  the specified data source.'
                                                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
                                                x-kubernetes-map-type: atomic
                                              dataSourceRef:
                                                description: dataSourceRef specifies
                                                  the object from which to populate
                                                  the volume with data, if a non-empty
                                                  volume is desired. This may be any
                                                  object from a non-empty API group
                                                  (non core object) or a PersistentVolumeClaim
                                                  object. When this field is specified,
                                                  volume binding will only succeed
                                                  if the type of the specified object
                                                  matches some installed volume populator
                                                  or dynamic provisioner.
                                                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
                                                  namespace:
                                                    description: Namespace is the
                                                      namespace of resource being
                                                      referenced Note that when a
                                                      namespace is specified, a gateway.networking.k8s.io/ReferenceGrant
                                                      object is required in the referent
                                                      namespace to allow that namespace's
                                                      owner to accept the reference.
                                                      See the ReferenceGrant documentation
                                                      for details. (Alpha) This field
                                                      requires the CrossNamespaceVolumeDataSource
                                                      feature gate to be enabled.
                                                    type: string
                                                required:
                                                - kind
                                                - name
                                                type: object
                                              resources:
                                                description: 'resources represents
                                                  the minimum resources the volume
                                                  should have. If RecoverVolumeExpansionFailure
                                                  feature is enabled users are allowed
                                                  to specify resource requirements
                                                  that are lower than previous value
                                                  but must still be higher than capacity
                                                  recorded in the status field of
                                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                                properties:
                                                  claims:
                                                    description: "Claims lists the
                                                      names of resources, defined
                                                      in spec.resourceClaims, that
                                                      are used by this container.
                                                      \n This is an alpha field and
                                                      requires enabling the DynamicResourceAllocation
                                                      feature gate. \n This field
                                                      is immutable. It can only be
                                                      set for containers."
                                                    items:
                                                      description: ResourceClaim references
                                                        one entry in PodSpec.ResourceClaims.
                                                      properties:
                                                        name:
                                                          description: Name must match
                                                            the name of one entry
                                                            in pod.spec.resourceClaims
                                                            of the Pod where this
                                                            field is used. It makes
                                                            that resource available
                                                            inside a container.
                                                          type: string
                                                      required:
                                                      - name
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-map-keys:
                                                    - name
                                                    x-kubernetes-list-type: map
                                                  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. Requests cannot exceed
                                                      Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                    type: object
                                                type: object
                                              selector:
                                                description: selector is 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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              storageClassName:
                                                description: 'storageClassName is
                                                  the 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Ex. "ext4",
                                          "xfs", "ntfs". Implicitly inferred to be
                                          "ext4" if unspecified. TODO: how do we prevent
                                          errors in the filesystem from compromising
                                          the machine'
                                        type: string
                                      lun:
                                        description: 'lun is Optional: FC target lun
                                          number'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly is Optional: Defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      targetWWNs:
                                        description: 'targetWWNs is Optional: FC target
                                          worldwide names (WWNs)'
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        description: 'wwids 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: fsType is the 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: 'options is Optional: this field
                                          holds extra command options if any.'
                                        type: object
                                      readOnly:
                                        description: 'readOnly is Optional: defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      secretRef:
                                        description: 'secretRef is Optional: secretRef
                                          is reference to the secret object containing
                                          sensitive information to pass to the plugin
                                          scripts. This may be empty if no secret
                                          object is specified. If the secret object
                                          contains more than one secret, all secrets
                                          are passed to the plugin scripts.'
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    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: datasetName is Name of the dataset
                                          stored as metadata -> name on the dataset
                                          for Flocker should be considered as deprecated
                                        type: string
                                      datasetUUID:
                                        description: datasetUUID is the 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: 'fsType is filesystem type of
                                          the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        format: int32
                                        type: integer
                                      pdName:
                                        description: 'pdName is unique name of the
                                          PD resource in GCE. Used to identify the
                                          disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          ReadOnly setting in VolumeMounts. Defaults
                                          to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    description: 'gitRepo represents a git repository
                                      at a particular revision. DEPRECATED: GitRepo
                                      is deprecated. To provision a container with
                                      a git repo, mount an EmptyDir into an InitContainer
                                      that clones the repo using git, then mount the
                                      EmptyDir into the Pod''s container.'
                                    properties:
                                      directory:
                                        description: directory is the target directory
                                          name. Must not contain or start with '..'.  If
                                          '.' is supplied, the volume directory will
                                          be the git repository.  Otherwise, if specified,
                                          the volume will contain the git repository
                                          in the subdirectory with the given name.
                                        type: string
                                      repository:
                                        description: repository is the URL
                                        type: string
                                      revision:
                                        description: revision is the 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: 'endpoints is the endpoint name
                                          that details Glusterfs topology. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      path:
                                        description: 'path is the Glusterfs volume
                                          path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          Glusterfs volume to be mounted with read-only
                                          permissions. Defaults to false. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    description: 'hostPath represents a pre-existing
                                      file or directory on the host machine that is
                                      directly exposed to the container. This is generally
                                      used for system agents or other privileged things
                                      that are allowed to see the host machine. Most
                                      containers will NOT need this. More info: https://kubernetes.'
                                    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: chapAuthDiscovery defines whether
                                          support iSCSI Discovery CHAP authentication
                                        type: boolean
                                      chapAuthSession:
                                        description: chapAuthSession defines whether
                                          support iSCSI Session CHAP authentication
                                        type: boolean
                                      fsType:
                                        description: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      initiatorName:
                                        description: initiatorName is the 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: iqn is the target iSCSI Qualified
                                          Name.
                                        type: string
                                      iscsiInterface:
                                        description: iscsiInterface is the interface
                                          Name that uses an iSCSI transport. Defaults
                                          to 'default' (tcp).
                                        type: string
                                      lun:
                                        description: lun represents iSCSI Target Lun
                                          number.
                                        format: int32
                                        type: integer
                                      portals:
                                        description: portals is the 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: secretRef is the 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
                                        x-kubernetes-map-type: atomic
                                      targetPortal:
                                        description: targetPortal is 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: 'name of the volume. 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: readOnly 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: fsType is the 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: pdID is the 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: readOnly 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: projected items for all in one resources
                                      secrets, configmaps, and downward API
                                    properties:
                                      defaultMode:
                                        description: defaultMode are the 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. YAML accepts both octal and decimal
                                          values, JSON requires decimal values for
                                          mode bits. Directories within the path are
                                          not affected by this setting.
                                        format: int32
                                        type: integer
                                      sources:
                                        description: sources is the list of volume
                                          projections
                                        items:
                                          description: Projection that may be projected
                                            along with other supported volume types
                                          properties:
                                            configMap:
                                              description: configMap information about
                                                the configMap data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced ConfigMap
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional specify whether
                                                    the ConfigMap or its keys must
                                                    be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            downwardAPI:
                                              description: downwardAPI 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
                                                        x-kubernetes-map-type: atomic
                                                      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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        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
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              description: secret information about
                                                the secret data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced Secret
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional field specify
                                                    whether the Secret or its key
                                                    must be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            serviceAccountToken:
                                              description: serviceAccountToken is
                                                information about the serviceAccountToken
                                                data to project
                                              properties:
                                                audience:
                                                  description: audience is the intended
                                                    audience of the token. A recipient
                                                    of a token must identify itself
                                                    with an identifier specified in
                                                    the audience of the token, and
                                                    otherwise should reject the token.
                                                    The audience defaults to the identifier
                                                    of the apiserver.
                                                  type: string
                                                expirationSeconds:
                                                  description: expirationSeconds is
                                                    the requested duration of validity
                                                    of the service account token.
                                                    As the token approaches expiration,
                                                    the kubelet volume plugin will
                                                    proactively rotate the service
                                                    account token. The kubelet will
                                                    start trying to rotate the token
                                                    if the token is older than 80
                                                    percent of its time to live or
                                                    if the token is older than 24
                                                    hours.Defaults to 1 hour and must
                                                    be at least 10 minutes.
                                                  format: int64
                                                  type: integer
                                                path:
                                                  description: path is the path relative
                                                    to the mount point of the file
                                                    to project the token into.
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      image:
                                        description: 'image is 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: 'monitors is 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: 'pool is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: fsType is the 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: gateway is the host address of
                                          the ScaleIO API Gateway.
                                        type: string
                                      protectionDomain:
                                        description: protectionDomain is the name
                                          of the ScaleIO Protection Domain for the
                                          configured storage.
                                        type: string
                                      readOnly:
                                        description: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      sslEnabled:
                                        description: sslEnabled Flag enable/disable
                                          SSL communication with Gateway, default
                                          false
                                        type: boolean
                                      storageMode:
                                        description: storageMode indicates whether
                                          the storage for a volume should be ThickProvisioned
                                          or ThinProvisioned. Default is ThinProvisioned.
                                        type: string
                                      storagePool:
                                        description: storagePool is the ScaleIO Storage
                                          Pool associated with the protection domain.
                                        type: string
                                      system:
                                        description: system is the name of the storage
                                          system as configured in ScaleIO.
                                        type: string
                                      volumeName:
                                        description: volumeName is 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items If unspecified, each key-value
                                          pair in the Data field of the referenced
                                          Secret will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional field specify whether
                                          the Secret or its keys must be defined
                                        type: boolean
                                      secretName:
                                        description: 'secretName is the 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: fsType is the 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: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      volumeName:
                                        description: volumeName is the human-readable
                                          name of the StorageOS volume.  Volume names
                                          are only unique within a namespace.
                                        type: string
                                      volumeNamespace:
                                        description: volumeNamespace specifies the
                                          scope of the volume within StorageOS.  If
                                          no namespace is specified then the Pod's
                                          namespace will be used.  This allows the
                                          Kubernetes name scoping to be mirrored within
                                          StorageOS for tighter integration. Set VolumeName
                                          to any name to override the default behaviour.
                                          Set to "default" if you are not using namespaces
                                          within StorageOS.
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    description: vsphereVolume represents a vSphere
                                      volume attached and mounted on kubelets host
                                      machine
                                    properties:
                                      fsType:
                                        description: fsType is 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: storagePolicyID is the storage
                                          Policy Based Management (SPBM) profile ID
                                          associated with the StoragePolicyName.
                                        type: string
                                      storagePolicyName:
                                        description: storagePolicyName is the storage
                                          Policy Based Management (SPBM) profile name.
                                        type: string
                                      volumePath:
                                        description: volumePath is the path that identifies
                                          vSphere volume vmdk
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  type: object
                description: 'A map of TFReplicaType (type) to ReplicaSpec (value).
                  Specifies the TF cluster configuration. For example, { "PS": ReplicaSpec,
                  "Worker": ReplicaSpec, }'
                type: object
            required:
            - tfReplicaSpecs
            type: object
          status:
            description: Most recently observed status of the TFJob. Populated by
              the system. Read-only.
            properties:
              completionTime:
                description: Represents time when the job was completed. It is not
                  guaranteed to be set in happens-before order across separate operations.
                  It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              conditions:
                description: Conditions is an array of current observed job conditions.
                items:
                  description: JobCondition describes the state of the job at a certain
                    point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of job condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              lastReconcileTime:
                description: Represents last time when the job was reconciled. It
                  is not guaranteed to be set in happens-before order across separate
                  operations. It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              replicaStatuses:
                additionalProperties:
                  description: ReplicaStatus represents the current observed state
                    of the replica.
                  properties:
                    active:
                      description: The number of actively running pods.
                      format: int32
                      type: integer
                    failed:
                      description: The number of pods which reached phase Failed.
                      format: int32
                      type: integer
                    labelSelector:
                      description: 'Deprecated: Use Selector instead'
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    selector:
                      description: A Selector is a label query over a set of resources.
                        The result of matchLabels and matchExpressions are ANDed.
                        An empty Selector matches all objects. A null Selector matches
                        no objects.
                      type: string
                    succeeded:
                      description: The number of pods which reached phase Succeeded.
                      format: int32
                      type: integer
                  type: object
                description: ReplicaStatuses is map of ReplicaType and ReplicaStatus,
                  specifies the status of each replica.
                type: object
              startTime:
                description: Represents time when the job was acknowledged by the
                  job controller. It is not guaranteed to be set in happens-before
                  order across separate operations. It is represented in RFC3339 form
                  and is in UTC.
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.0
  creationTimestamp: null
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: trainedmodels.serving.kserve.io
spec:
  group: serving.kserve.io
  names:
    kind: TrainedModel
    listKind: TrainedModelList
    plural: trainedmodels
    shortNames:
    - tm
    singular: trainedmodel
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              inferenceService:
                type: string
              model:
                properties:
                  framework:
                    type: string
                  memory:
                    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
                  storageUri:
                    type: string
                required:
                - framework
                - memory
                - storageUri
                type: object
            required:
            - inferenceService
            - model
            type: object
          status:
            properties:
              address:
                properties:
                  url:
                    type: string
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    severity:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                format: int64
                type: integer
              url:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: trials.kubeflow.org
spec:
  group: kubeflow.org
  names:
    categories:
    - all
    - kubeflow
    - katib
    kind: Trial
    plural: trials
    singular: trial
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: Type
      type: string
    - jsonPath: .status.conditions[-1:].status
      name: Status
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        type: object
        x-kubernetes-preserve-unknown-fields: true
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/crd-install: "true"
    kustomize.component: knative
  name: triggers.eventing.knative.dev
spec:
  group: eventing.knative.dev
  names:
    categories:
    - all
    - knative
    - eventing
    kind: Trigger
    plural: triggers
    singular: trigger
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.broker
      name: Broker
      type: string
    - jsonPath: .status.subscriberUri
      name: Subscriber_URI
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: Reason
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: Trigger represents a request to have events delivered to a subscriber
          from a Broker's event pool.
        properties:
          spec:
            description: Spec defines the desired state of the Trigger.
            properties:
              broker:
                description: Broker is the broker that this trigger receives events
                  from.
                type: string
              delivery:
                description: Delivery contains the delivery spec for this specific
                  trigger.
                properties:
                  backoffDelay:
                    description: 'BackoffDelay is the delay before retrying. More
                      information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html
                      - https://en.wikipedia.org/wiki/ISO_8601  For linear policy,
                      backoff delay is backoffDelay*<numberOfRetries>. For exponential
                      policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
                    type: string
                  backoffPolicy:
                    description: BackoffPolicy is the retry backoff policy (linear,
                      exponential).
                    type: string
                  deadLetterSink:
                    description: DeadLetterSink is the sink receiving event that could
                      not be sent to a destination.
                    properties:
                      ref:
                        description: Ref points to an Addressable.
                        properties:
                          apiVersion:
                            description: API version of the referent.
                            type: string
                          kind:
                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                            type: string
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          namespace:
                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                              This is optional field, it gets defaulted to the object
                              holding it if left out.'
                            type: string
                        type: object
                      uri:
                        description: URI can be an absolute URL(non-empty scheme and
                          non-empty host) pointing to the target or a relative URI.
                          Relative URIs will be resolved using the base URI retrieved
                          from Ref.
                        type: string
                    type: object
                  retry:
                    description: Retry is the minimum number of retries the sender
                      should attempt when sending an event before moving it to the
                      dead letter sink.
                    format: int32
                    type: integer
                type: object
                x-kubernetes-preserve-unknown-fields: true
              filter:
                description: 'Filter is the filter to apply against all events from
                  the Broker. Only events that pass this filter will be sent to the
                  Subscriber. If not specified, will default to allowing all events. '
                properties:
                  attributes:
                    description: 'Attributes filters events by exact match on event
                      context attributes. Each key in the map is compared with the
                      equivalent key in the event context. An event passes the filter
                      if all values are equal to the specified values.  Nested context
                      attributes are not supported as keys. Only string values are
                      supported. '
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              subscriber:
                description: Subscriber is the addressable that receives events from
                  the Broker that pass the Filter. It is required.
                properties:
                  ref:
                    description: Ref points to an Addressable.
                    properties:
                      apiVersion:
                        description: API version of the referent.
                        type: string
                      kind:
                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                        type: string
                      namespace:
                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          This is optional field, it gets defaulted to the object
                          holding it if left out.'
                        type: string
                    type: object
                  uri:
                    description: URI can be an absolute URL(non-empty scheme and non-empty
                      host) pointing to the target or a relative URI. Relative URIs
                      will be resolved using the base URI retrieved from Ref.
                    type: string
                type: object
            type: object
            x-kubernetes-preserve-unknown-fields: true
          status:
            description: Status represents the current state of the Trigger. This
              data may be out of date.
            properties:
              annotations:
                description: Annotations is additional Status fields for the Resource
                  to save some additional State as well as convey more information
                  to the user. This is roughly akin to Annotations on any k8s resource,
                  just the reconciler conveying richer information outwards.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              conditions:
                description: Conditions the latest available observations of a resource's
                  current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another. We use VolatileTime
                        in place of metav1.Time to exclude this from creating equality.Semantic
                        differences (all other things held constant).
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. When this is not specified, it defaults to Error.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - type
                  - status
                  type: object
                type: array
              deadLetterSinkUri:
                description: DeadLetterSinkURI is the resolved URI of the dead letter
                  sink for this Trigger, in case there is none this will fallback
                  to it's Broker status DeadLetterSinkURI.
                type: string
              observedGeneration:
                description: ObservedGeneration is the 'Generation' of the Service
                  that was last processed by the controller.
                format: int64
                type: integer
              subscriberUri:
                description: SubscriberURI is the resolved URI of the receiver for
                  this Trigger.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: viewers.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: Viewer
    listKind: ViewerList
    plural: viewers
    shortNames:
    - vi
    singular: viewer
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: virtualservices.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: VirtualService
    listKind: VirtualServiceList
    plural: virtualservices
    shortNames:
    - vs
    singular: virtualservice
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The names of gateways and sidecars that should apply these routes
      jsonPath: .spec.gateways
      name: Gateways
      type: string
    - description: The destination hosts to which traffic is being sent
      jsonPath: .spec.hosts
      name: Hosts
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting label/content routing, sni routing,
              etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html'
            properties:
              exportTo:
                description: A list of namespaces to which this virtual service is
                  exported.
                items:
                  type: string
                type: array
              gateways:
                description: The names of gateways and sidecars that should apply
                  these routes.
                items:
                  type: string
                type: array
              hosts:
                description: The destination hosts to which traffic is being sent.
                items:
                  type: string
                type: array
              http:
                description: An ordered list of route rules for HTTP traffic.
                items:
                  properties:
                    corsPolicy:
                      description: Cross-Origin Resource Sharing policy (CORS).
                      properties:
                        allowCredentials:
                          nullable: true
                          type: boolean
                        allowHeaders:
                          items:
                            type: string
                          type: array
                        allowMethods:
                          description: List of HTTP methods allowed to access the
                            resource.
                          items:
                            type: string
                          type: array
                        allowOrigin:
                          description: The list of origins that are allowed to perform
                            CORS requests.
                          items:
                            type: string
                          type: array
                        allowOrigins:
                          description: String patterns that match allowed origins.
                          items:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          type: array
                        exposeHeaders:
                          items:
                            type: string
                          type: array
                        maxAge:
                          type: string
                      type: object
                    delegate:
                      properties:
                        name:
                          description: Name specifies the name of the delegate VirtualService.
                          type: string
                        namespace:
                          description: Namespace specifies the namespace where the
                            delegate VirtualService resides.
                          type: string
                      type: object
                    directResponse:
                      description: A HTTP rule can either return a direct_response,
                        redirect or forward (default) traffic.
                      properties:
                        body:
                          description: Specifies the content of the response body.
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - string
                              - required:
                                - bytes
                          - required:
                            - string
                          - required:
                            - bytes
                          properties:
                            bytes:
                              description: response body as base64 encoded bytes.
                              format: binary
                              type: string
                            string:
                              type: string
                          type: object
                        status:
                          description: Specifies the HTTP response status to be returned.
                          type: integer
                      type: object
                    fault:
                      description: Fault injection policy to apply on HTTP traffic
                        at the client side.
                      properties:
                        abort:
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - httpStatus
                              - required:
                                - grpcStatus
                              - required:
                                - http2Error
                          - required:
                            - httpStatus
                          - required:
                            - grpcStatus
                          - required:
                            - http2Error
                          properties:
                            grpcStatus:
                              description: GRPC status code to use to abort the request.
                              type: string
                            http2Error:
                              type: string
                            httpStatus:
                              description: HTTP status code to use to abort the Http
                                request.
                              format: int32
                              type: integer
                            percentage:
                              description: Percentage of requests to be aborted with
                                the error code provided.
                              properties:
                                value:
                                  format: double
                                  type: number
                              type: object
                          type: object
                        delay:
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - fixedDelay
                              - required:
                                - exponentialDelay
                          - required:
                            - fixedDelay
                          - required:
                            - exponentialDelay
                          properties:
                            exponentialDelay:
                              type: string
                            fixedDelay:
                              description: Add a fixed delay before forwarding the
                                request.
                              type: string
                            percent:
                              description: Percentage of requests on which the delay
                                will be injected (0-100).
                              format: int32
                              type: integer
                            percentage:
                              description: Percentage of requests on which the delay
                                will be injected.
                              properties:
                                value:
                                  format: double
                                  type: number
                              type: object
                          type: object
                      type: object
                    headers:
                      properties:
                        request:
                          properties:
                            add:
                              additionalProperties:
                                type: string
                              type: object
                            remove:
                              items:
                                type: string
                              type: array
                            set:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        response:
                          properties:
                            add:
                              additionalProperties:
                                type: string
                              type: object
                            remove:
                              items:
                                type: string
                              type: array
                            set:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                      type: object
                    match:
                      items:
                        properties:
                          authority:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          gateways:
                            description: Names of gateways where the rule should be
                              applied.
                            items:
                              type: string
                            type: array
                          headers:
                            additionalProperties:
                              oneOf:
                              - not:
                                  anyOf:
                                  - required:
                                    - exact
                                  - required:
                                    - prefix
                                  - required:
                                    - regex
                              - required:
                                - exact
                              - required:
                                - prefix
                              - required:
                                - regex
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                                regex:
                                  description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                  type: string
                              type: object
                            type: object
                          ignoreUriCase:
                            description: Flag to specify whether the URI matching
                              should be case-insensitive.
                            type: boolean
                          method:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          name:
                            description: The name assigned to a match.
                            type: string
                          port:
                            description: Specifies the ports on the host that is being
                              addressed.
                            type: integer
                          queryParams:
                            additionalProperties:
                              oneOf:
                              - not:
                                  anyOf:
                                  - required:
                                    - exact
                                  - required:
                                    - prefix
                                  - required:
                                    - regex
                              - required:
                                - exact
                              - required:
                                - prefix
                              - required:
                                - regex
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                                regex:
                                  description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                  type: string
                              type: object
                            description: Query parameters for matching.
                            type: object
                          scheme:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          sourceLabels:
                            additionalProperties:
                              type: string
                            type: object
                          sourceNamespace:
                            description: Source namespace constraining the applicability
                              of a rule to workloads in that namespace.
                            type: string
                          statPrefix:
                            description: The human readable prefix to use when emitting
                              statistics for this route.
                            type: string
                          uri:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          withoutHeaders:
                            additionalProperties:
                              oneOf:
                              - not:
                                  anyOf:
                                  - required:
                                    - exact
                                  - required:
                                    - prefix
                                  - required:
                                    - regex
                              - required:
                                - exact
                              - required:
                                - prefix
                              - required:
                                - regex
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                                regex:
                                  description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                  type: string
                              type: object
                            description: withoutHeader has the same syntax with the
                              header, but has opposite meaning.
                            type: object
                        type: object
                      type: array
                    mirror:
                      properties:
                        host:
                          description: The name of a service from the service registry.
                          type: string
                        port:
                          description: Specifies the port on the host that is being
                            addressed.
                          properties:
                            number:
                              type: integer
                          type: object
                        subset:
                          description: The name of a subset within the service.
                          type: string
                      type: object
                    mirror_percent:
                      description: Percentage of the traffic to be mirrored by the
                        `mirror` field.
                      nullable: true
                      type: integer
                    mirrorPercent:
                      description: Percentage of the traffic to be mirrored by the
                        `mirror` field.
                      nullable: true
                      type: integer
                    mirrorPercentage:
                      description: Percentage of the traffic to be mirrored by the
                        `mirror` field.
                      properties:
                        value:
                          format: double
                          type: number
                      type: object
                    name:
                      description: The name assigned to the route for debugging purposes.
                      type: string
                    redirect:
                      description: A HTTP rule can either return a direct_response,
                        redirect or forward (default) traffic.
                      oneOf:
                      - not:
                          anyOf:
                          - required:
                            - port
                          - required:
                            - derivePort
                      - required:
                        - port
                      - required:
                        - derivePort
                      properties:
                        authority:
                          type: string
                        derivePort:
                          enum:
                          - FROM_PROTOCOL_DEFAULT
                          - FROM_REQUEST_PORT
                          type: string
                        port:
                          description: On a redirect, overwrite the port portion of
                            the URL with this value.
                          type: integer
                        redirectCode:
                          type: integer
                        scheme:
                          description: On a redirect, overwrite the scheme portion
                            of the URL with this value.
                          type: string
                        uri:
                          type: string
                      type: object
                    retries:
                      description: Retry policy for HTTP requests.
                      properties:
                        attempts:
                          description: Number of retries to be allowed for a given
                            request.
                          format: int32
                          type: integer
                        perTryTimeout:
                          description: Timeout per attempt for a given request, including
                            the initial call and any retries.
                          type: string
                        retryOn:
                          description: Specifies the conditions under which retry
                            takes place.
                          type: string
                        retryRemoteLocalities:
                          description: Flag to specify whether the retries should
                            retry to other localities.
                          nullable: true
                          type: boolean
                      type: object
                    rewrite:
                      description: Rewrite HTTP URIs and Authority headers.
                      properties:
                        authority:
                          description: rewrite the Authority/Host header with this
                            value.
                          type: string
                        uri:
                          type: string
                      type: object
                    route:
                      description: A HTTP rule can either return a direct_response,
                        redirect or forward (default) traffic.
                      items:
                        properties:
                          destination:
                            properties:
                              host:
                                description: The name of a service from the service
                                  registry.
                                type: string
                              port:
                                description: Specifies the port on the host that is
                                  being addressed.
                                properties:
                                  number:
                                    type: integer
                                type: object
                              subset:
                                description: The name of a subset within the service.
                                type: string
                            type: object
                          headers:
                            properties:
                              request:
                                properties:
                                  add:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  remove:
                                    items:
                                      type: string
                                    type: array
                                  set:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                              response:
                                properties:
                                  add:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  remove:
                                    items:
                                      type: string
                                    type: array
                                  set:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                            type: object
                          weight:
                            description: Weight specifies the relative proportion
                              of traffic to be forwarded to the destination.
                            format: int32
                            type: integer
                        type: object
                      type: array
                    timeout:
                      description: Timeout for HTTP requests, default is disabled.
                      type: string
                  type: object
                type: array
              tcp:
                description: An ordered list of route rules for opaque TCP traffic.
                items:
                  properties:
                    match:
                      items:
                        properties:
                          destinationSubnets:
                            description: IPv4 or IPv6 ip addresses of destination
                              with optional subnet.
                            items:
                              type: string
                            type: array
                          gateways:
                            description: Names of gateways where the rule should be
                              applied.
                            items:
                              type: string
                            type: array
                          port:
                            description: Specifies the port on the host that is being
                              addressed.
                            type: integer
                          sourceLabels:
                            additionalProperties:
                              type: string
                            type: object
                          sourceNamespace:
                            description: Source namespace constraining the applicability
                              of a rule to workloads in that namespace.
                            type: string
                          sourceSubnet:
                            description: IPv4 or IPv6 ip address of source with optional
                              subnet.
                            type: string
                        type: object
                      type: array
                    route:
                      description: The destination to which the connection should
                        be forwarded to.
                      items:
                        properties:
                          destination:
                            properties:
                              host:
                                description: The name of a service from the service
                                  registry.
                                type: string
                              port:
                                description: Specifies the port on the host that is
                                  being addressed.
                                properties:
                                  number:
                                    type: integer
                                type: object
                              subset:
                                description: The name of a subset within the service.
                                type: string
                            type: object
                          weight:
                            description: Weight specifies the relative proportion
                              of traffic to be forwarded to the destination.
                            format: int32
                            type: integer
                        type: object
                      type: array
                  type: object
                type: array
              tls:
                items:
                  properties:
                    match:
                      items:
                        properties:
                          destinationSubnets:
                            description: IPv4 or IPv6 ip addresses of destination
                              with optional subnet.
                            items:
                              type: string
                            type: array
                          gateways:
                            description: Names of gateways where the rule should be
                              applied.
                            items:
                              type: string
                            type: array
                          port:
                            description: Specifies the port on the host that is being
                              addressed.
                            type: integer
                          sniHosts:
                            description: SNI (server name indicator) to match on.
                            items:
                              type: string
                            type: array
                          sourceLabels:
                            additionalProperties:
                              type: string
                            type: object
                          sourceNamespace:
                            description: Source namespace constraining the applicability
                              of a rule to workloads in that namespace.
                            type: string
                        type: object
                      type: array
                    route:
                      description: The destination to which the connection should
                        be forwarded to.
                      items:
                        properties:
                          destination:
                            properties:
                              host:
                                description: The name of a service from the service
                                  registry.
                                type: string
                              port:
                                description: Specifies the port on the host that is
                                  being addressed.
                                properties:
                                  number:
                                    type: integer
                                type: object
                              subset:
                                description: The name of a subset within the service.
                                type: string
                            type: object
                          weight:
                            description: Weight specifies the relative proportion
                              of traffic to be forwarded to the destination.
                            format: int32
                            type: integer
                        type: object
                      type: array
                  type: object
                type: array
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: The names of gateways and sidecars that should apply these routes
      jsonPath: .spec.gateways
      name: Gateways
      type: string
    - description: The destination hosts to which traffic is being sent
      jsonPath: .spec.hosts
      name: Hosts
      type: string
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting label/content routing, sni routing,
              etc. See more details at: https://istio.io/docs/reference/config/networking/virtual-service.html'
            properties:
              exportTo:
                description: A list of namespaces to which this virtual service is
                  exported.
                items:
                  type: string
                type: array
              gateways:
                description: The names of gateways and sidecars that should apply
                  these routes.
                items:
                  type: string
                type: array
              hosts:
                description: The destination hosts to which traffic is being sent.
                items:
                  type: string
                type: array
              http:
                description: An ordered list of route rules for HTTP traffic.
                items:
                  properties:
                    corsPolicy:
                      description: Cross-Origin Resource Sharing policy (CORS).
                      properties:
                        allowCredentials:
                          nullable: true
                          type: boolean
                        allowHeaders:
                          items:
                            type: string
                          type: array
                        allowMethods:
                          description: List of HTTP methods allowed to access the
                            resource.
                          items:
                            type: string
                          type: array
                        allowOrigin:
                          description: The list of origins that are allowed to perform
                            CORS requests.
                          items:
                            type: string
                          type: array
                        allowOrigins:
                          description: String patterns that match allowed origins.
                          items:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          type: array
                        exposeHeaders:
                          items:
                            type: string
                          type: array
                        maxAge:
                          type: string
                      type: object
                    delegate:
                      properties:
                        name:
                          description: Name specifies the name of the delegate VirtualService.
                          type: string
                        namespace:
                          description: Namespace specifies the namespace where the
                            delegate VirtualService resides.
                          type: string
                      type: object
                    directResponse:
                      description: A HTTP rule can either return a direct_response,
                        redirect or forward (default) traffic.
                      properties:
                        body:
                          description: Specifies the content of the response body.
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - string
                              - required:
                                - bytes
                          - required:
                            - string
                          - required:
                            - bytes
                          properties:
                            bytes:
                              description: response body as base64 encoded bytes.
                              format: binary
                              type: string
                            string:
                              type: string
                          type: object
                        status:
                          description: Specifies the HTTP response status to be returned.
                          type: integer
                      type: object
                    fault:
                      description: Fault injection policy to apply on HTTP traffic
                        at the client side.
                      properties:
                        abort:
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - httpStatus
                              - required:
                                - grpcStatus
                              - required:
                                - http2Error
                          - required:
                            - httpStatus
                          - required:
                            - grpcStatus
                          - required:
                            - http2Error
                          properties:
                            grpcStatus:
                              description: GRPC status code to use to abort the request.
                              type: string
                            http2Error:
                              type: string
                            httpStatus:
                              description: HTTP status code to use to abort the Http
                                request.
                              format: int32
                              type: integer
                            percentage:
                              description: Percentage of requests to be aborted with
                                the error code provided.
                              properties:
                                value:
                                  format: double
                                  type: number
                              type: object
                          type: object
                        delay:
                          oneOf:
                          - not:
                              anyOf:
                              - required:
                                - fixedDelay
                              - required:
                                - exponentialDelay
                          - required:
                            - fixedDelay
                          - required:
                            - exponentialDelay
                          properties:
                            exponentialDelay:
                              type: string
                            fixedDelay:
                              description: Add a fixed delay before forwarding the
                                request.
                              type: string
                            percent:
                              description: Percentage of requests on which the delay
                                will be injected (0-100).
                              format: int32
                              type: integer
                            percentage:
                              description: Percentage of requests on which the delay
                                will be injected.
                              properties:
                                value:
                                  format: double
                                  type: number
                              type: object
                          type: object
                      type: object
                    headers:
                      properties:
                        request:
                          properties:
                            add:
                              additionalProperties:
                                type: string
                              type: object
                            remove:
                              items:
                                type: string
                              type: array
                            set:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        response:
                          properties:
                            add:
                              additionalProperties:
                                type: string
                              type: object
                            remove:
                              items:
                                type: string
                              type: array
                            set:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                      type: object
                    match:
                      items:
                        properties:
                          authority:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          gateways:
                            description: Names of gateways where the rule should be
                              applied.
                            items:
                              type: string
                            type: array
                          headers:
                            additionalProperties:
                              oneOf:
                              - not:
                                  anyOf:
                                  - required:
                                    - exact
                                  - required:
                                    - prefix
                                  - required:
                                    - regex
                              - required:
                                - exact
                              - required:
                                - prefix
                              - required:
                                - regex
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                                regex:
                                  description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                  type: string
                              type: object
                            type: object
                          ignoreUriCase:
                            description: Flag to specify whether the URI matching
                              should be case-insensitive.
                            type: boolean
                          method:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          name:
                            description: The name assigned to a match.
                            type: string
                          port:
                            description: Specifies the ports on the host that is being
                              addressed.
                            type: integer
                          queryParams:
                            additionalProperties:
                              oneOf:
                              - not:
                                  anyOf:
                                  - required:
                                    - exact
                                  - required:
                                    - prefix
                                  - required:
                                    - regex
                              - required:
                                - exact
                              - required:
                                - prefix
                              - required:
                                - regex
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                                regex:
                                  description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                  type: string
                              type: object
                            description: Query parameters for matching.
                            type: object
                          scheme:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          sourceLabels:
                            additionalProperties:
                              type: string
                            type: object
                          sourceNamespace:
                            description: Source namespace constraining the applicability
                              of a rule to workloads in that namespace.
                            type: string
                          statPrefix:
                            description: The human readable prefix to use when emitting
                              statistics for this route.
                            type: string
                          uri:
                            oneOf:
                            - not:
                                anyOf:
                                - required:
                                  - exact
                                - required:
                                  - prefix
                                - required:
                                  - regex
                            - required:
                              - exact
                            - required:
                              - prefix
                            - required:
                              - regex
                            properties:
                              exact:
                                type: string
                              prefix:
                                type: string
                              regex:
                                description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                type: string
                            type: object
                          withoutHeaders:
                            additionalProperties:
                              oneOf:
                              - not:
                                  anyOf:
                                  - required:
                                    - exact
                                  - required:
                                    - prefix
                                  - required:
                                    - regex
                              - required:
                                - exact
                              - required:
                                - prefix
                              - required:
                                - regex
                              properties:
                                exact:
                                  type: string
                                prefix:
                                  type: string
                                regex:
                                  description: RE2 style regex-based match (https://github.com/google/re2/wiki/Syntax).
                                  type: string
                              type: object
                            description: withoutHeader has the same syntax with the
                              header, but has opposite meaning.
                            type: object
                        type: object
                      type: array
                    mirror:
                      properties:
                        host:
                          description: The name of a service from the service registry.
                          type: string
                        port:
                          description: Specifies the port on the host that is being
                            addressed.
                          properties:
                            number:
                              type: integer
                          type: object
                        subset:
                          description: The name of a subset within the service.
                          type: string
                      type: object
                    mirror_percent:
                      description: Percentage of the traffic to be mirrored by the
                        `mirror` field.
                      nullable: true
                      type: integer
                    mirrorPercent:
                      description: Percentage of the traffic to be mirrored by the
                        `mirror` field.
                      nullable: true
                      type: integer
                    mirrorPercentage:
                      description: Percentage of the traffic to be mirrored by the
                        `mirror` field.
                      properties:
                        value:
                          format: double
                          type: number
                      type: object
                    name:
                      description: The name assigned to the route for debugging purposes.
                      type: string
                    redirect:
                      description: A HTTP rule can either return a direct_response,
                        redirect or forward (default) traffic.
                      oneOf:
                      - not:
                          anyOf:
                          - required:
                            - port
                          - required:
                            - derivePort
                      - required:
                        - port
                      - required:
                        - derivePort
                      properties:
                        authority:
                          type: string
                        derivePort:
                          enum:
                          - FROM_PROTOCOL_DEFAULT
                          - FROM_REQUEST_PORT
                          type: string
                        port:
                          description: On a redirect, overwrite the port portion of
                            the URL with this value.
                          type: integer
                        redirectCode:
                          type: integer
                        scheme:
                          description: On a redirect, overwrite the scheme portion
                            of the URL with this value.
                          type: string
                        uri:
                          type: string
                      type: object
                    retries:
                      description: Retry policy for HTTP requests.
                      properties:
                        attempts:
                          description: Number of retries to be allowed for a given
                            request.
                          format: int32
                          type: integer
                        perTryTimeout:
                          description: Timeout per attempt for a given request, including
                            the initial call and any retries.
                          type: string
                        retryOn:
                          description: Specifies the conditions under which retry
                            takes place.
                          type: string
                        retryRemoteLocalities:
                          description: Flag to specify whether the retries should
                            retry to other localities.
                          nullable: true
                          type: boolean
                      type: object
                    rewrite:
                      description: Rewrite HTTP URIs and Authority headers.
                      properties:
                        authority:
                          description: rewrite the Authority/Host header with this
                            value.
                          type: string
                        uri:
                          type: string
                      type: object
                    route:
                      description: A HTTP rule can either return a direct_response,
                        redirect or forward (default) traffic.
                      items:
                        properties:
                          destination:
                            properties:
                              host:
                                description: The name of a service from the service
                                  registry.
                                type: string
                              port:
                                description: Specifies the port on the host that is
                                  being addressed.
                                properties:
                                  number:
                                    type: integer
                                type: object
                              subset:
                                description: The name of a subset within the service.
                                type: string
                            type: object
                          headers:
                            properties:
                              request:
                                properties:
                                  add:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  remove:
                                    items:
                                      type: string
                                    type: array
                                  set:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                              response:
                                properties:
                                  add:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  remove:
                                    items:
                                      type: string
                                    type: array
                                  set:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                            type: object
                          weight:
                            description: Weight specifies the relative proportion
                              of traffic to be forwarded to the destination.
                            format: int32
                            type: integer
                        type: object
                      type: array
                    timeout:
                      description: Timeout for HTTP requests, default is disabled.
                      type: string
                  type: object
                type: array
              tcp:
                description: An ordered list of route rules for opaque TCP traffic.
                items:
                  properties:
                    match:
                      items:
                        properties:
                          destinationSubnets:
                            description: IPv4 or IPv6 ip addresses of destination
                              with optional subnet.
                            items:
                              type: string
                            type: array
                          gateways:
                            description: Names of gateways where the rule should be
                              applied.
                            items:
                              type: string
                            type: array
                          port:
                            description: Specifies the port on the host that is being
                              addressed.
                            type: integer
                          sourceLabels:
                            additionalProperties:
                              type: string
                            type: object
                          sourceNamespace:
                            description: Source namespace constraining the applicability
                              of a rule to workloads in that namespace.
                            type: string
                          sourceSubnet:
                            description: IPv4 or IPv6 ip address of source with optional
                              subnet.
                            type: string
                        type: object
                      type: array
                    route:
                      description: The destination to which the connection should
                        be forwarded to.
                      items:
                        properties:
                          destination:
                            properties:
                              host:
                                description: The name of a service from the service
                                  registry.
                                type: string
                              port:
                                description: Specifies the port on the host that is
                                  being addressed.
                                properties:
                                  number:
                                    type: integer
                                type: object
                              subset:
                                description: The name of a subset within the service.
                                type: string
                            type: object
                          weight:
                            description: Weight specifies the relative proportion
                              of traffic to be forwarded to the destination.
                            format: int32
                            type: integer
                        type: object
                      type: array
                  type: object
                type: array
              tls:
                items:
                  properties:
                    match:
                      items:
                        properties:
                          destinationSubnets:
                            description: IPv4 or IPv6 ip addresses of destination
                              with optional subnet.
                            items:
                              type: string
                            type: array
                          gateways:
                            description: Names of gateways where the rule should be
                              applied.
                            items:
                              type: string
                            type: array
                          port:
                            description: Specifies the port on the host that is being
                              addressed.
                            type: integer
                          sniHosts:
                            description: SNI (server name indicator) to match on.
                            items:
                              type: string
                            type: array
                          sourceLabels:
                            additionalProperties:
                              type: string
                            type: object
                          sourceNamespace:
                            description: Source namespace constraining the applicability
                              of a rule to workloads in that namespace.
                            type: string
                        type: object
                      type: array
                    route:
                      description: The destination to which the connection should
                        be forwarded to.
                      items:
                        properties:
                          destination:
                            properties:
                              host:
                                description: The name of a service from the service
                                  registry.
                                type: string
                              port:
                                description: Specifies the port on the host that is
                                  being addressed.
                                properties:
                                  number:
                                    type: integer
                                type: object
                              subset:
                                description: The name of a subset within the service.
                                type: string
                            type: object
                          weight:
                            description: Weight specifies the relative proportion
                              of traffic to be forwarded to the destination.
                            format: int32
                            type: integer
                        type: object
                      type: array
                  type: object
                type: array
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: wasmplugins.extensions.istio.io
spec:
  group: extensions.istio.io
  names:
    categories:
    - istio-io
    - extensions-istio-io
    kind: WasmPlugin
    listKind: WasmPluginList
    plural: wasmplugins
    singular: wasmplugin
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Extend the functionality provided by the Istio proxy through
              WebAssembly filters. See more details at: https://istio.io/docs/reference/config/proxy_extensions/wasm-plugin.html'
            properties:
              imagePullPolicy:
                enum:
                - UNSPECIFIED_POLICY
                - IfNotPresent
                - Always
                type: string
              imagePullSecret:
                description: Credentials to use for OCI image pulling.
                type: string
              match:
                description: Specifies the criteria to determine which traffic is
                  passed to WasmPlugin.
                items:
                  properties:
                    mode:
                      description: Criteria for selecting traffic by their direction.
                      enum:
                      - UNDEFINED
                      - CLIENT
                      - SERVER
                      - CLIENT_AND_SERVER
                      type: string
                    ports:
                      description: Criteria for selecting traffic by their destination
                        port.
                      items:
                        properties:
                          number:
                            type: integer
                        type: object
                      type: array
                  type: object
                type: array
              phase:
                description: Determines where in the filter chain this `WasmPlugin`
                  is to be injected.
                enum:
                - UNSPECIFIED_PHASE
                - AUTHN
                - AUTHZ
                - STATS
                type: string
              pluginConfig:
                description: The configuration that will be passed on to the plugin.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              pluginName:
                type: string
              priority:
                description: Determines ordering of `WasmPlugins` in the same `phase`.
                nullable: true
                type: integer
              selector:
                properties:
                  matchLabels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              sha256:
                description: SHA256 checksum that will be used to verify Wasm module
                  or OCI container.
                type: string
              url:
                description: URL of a Wasm module or OCI container.
                type: string
              verificationKey:
                type: string
              vmConfig:
                description: Configuration for a Wasm VM.
                properties:
                  env:
                    description: Specifies environment variables to be injected to
                      this VM.
                    items:
                      properties:
                        name:
                          type: string
                        value:
                          description: Value for the environment variable.
                          type: string
                        valueFrom:
                          enum:
                          - INLINE
                          - HOST
                          type: string
                      type: object
                    type: array
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workfloweventbindings.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowEventBinding
    listKind: WorkflowEventBindingList
    plural: workfloweventbindings
    shortNames:
    - wfeb
    singular: workfloweventbinding
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflows.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: Workflow
    listKind: WorkflowList
    plural: workflows
    shortNames:
    - wf
    singular: workflow
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Status of the workflow
      jsonPath: .status.phase
      name: Status
      type: string
    - description: When the workflow was started
      format: date-time
      jsonPath: .status.startedAt
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
          status:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflowtaskresults.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTaskResult
    listKind: WorkflowTaskResultList
    plural: workflowtaskresults
    singular: workflowtaskresult
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          message:
            type: string
          metadata:
            type: object
          outputs:
            properties:
              artifacts:
                items:
                  properties:
                    archive:
                      properties:
                        none:
                          type: object
                        tar:
                          properties:
                            compressionLevel:
                              format: int32
                              type: integer
                          type: object
                        zip:
                          type: object
                      type: object
                    archiveLogs:
                      type: boolean
                    artifactory:
                      properties:
                        passwordSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        url:
                          type: string
                        usernameSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      required:
                      - url
                      type: object
                    from:
                      type: string
                    fromExpression:
                      type: string
                    gcs:
                      properties:
                        bucket:
                          type: string
                        key:
                          type: string
                        serviceAccountKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      required:
                      - key
                      type: object
                    git:
                      properties:
                        depth:
                          format: int64
                          type: integer
                        disableSubmodules:
                          type: boolean
                        fetch:
                          items:
                            type: string
                          type: array
                        insecureIgnoreHostKey:
                          type: boolean
                        passwordSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        repo:
                          type: string
                        revision:
                          type: string
                        sshPrivateKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        usernameSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                      required:
                      - repo
                      type: object
                    globalName:
                      type: string
                    hdfs:
                      properties:
                        addresses:
                          items:
                            type: string
                          type: array
                        force:
                          type: boolean
                        hdfsUser:
                          type: string
                        krbCCacheSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        krbConfigConfigMap:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        krbKeytabSecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        krbRealm:
                          type: string
                        krbServicePrincipalName:
                          type: string
                        krbUsername:
                          type: string
                        path:
                          type: string
                      required:
                      - path
                      type: object
                    http:
                      properties:
                        headers:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                        url:
                          type: string
                      required:
                      - url
                      type: object
                    mode:
                      format: int32
                      type: integer
                    name:
                      type: string
                    optional:
                      type: boolean
                    oss:
                      properties:
                        accessKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        bucket:
                          type: string
                        createBucketIfNotPresent:
                          type: boolean
                        endpoint:
                          type: string
                        key:
                          type: string
                        lifecycleRule:
                          properties:
                            markDeletionAfterDays:
                              format: int32
                              type: integer
                            markInfrequentAccessAfterDays:
                              format: int32
                              type: integer
                          type: object
                        secretKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        securityToken:
                          type: string
                      required:
                      - key
                      type: object
                    path:
                      type: string
                    raw:
                      properties:
                        data:
                          type: string
                      required:
                      - data
                      type: object
                    recurseMode:
                      type: boolean
                    s3:
                      properties:
                        accessKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        bucket:
                          type: string
                        createBucketIfNotPresent:
                          properties:
                            objectLocking:
                              type: boolean
                          type: object
                        encryptionOptions:
                          properties:
                            enableEncryption:
                              type: boolean
                            kmsEncryptionContext:
                              type: string
                            kmsKeyId:
                              type: string
                            serverSideCustomerKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                          type: object
                        endpoint:
                          type: string
                        insecure:
                          type: boolean
                        key:
                          type: string
                        region:
                          type: string
                        roleARN:
                          type: string
                        secretKeySecret:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        useSDKCreds:
                          type: boolean
                      type: object
                    subPath:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              exitCode:
                type: string
              parameters:
                items:
                  properties:
                    default:
                      type: string
                    description:
                      type: string
                    enum:
                      items:
                        type: string
                      type: array
                    globalName:
                      type: string
                    name:
                      type: string
                    value:
                      type: string
                    valueFrom:
                      properties:
                        configMapKeyRef:
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                        default:
                          type: string
                        event:
                          type: string
                        expression:
                          type: string
                        jqFilter:
                          type: string
                        jsonPath:
                          type: string
                        parameter:
                          type: string
                        path:
                          type: string
                        supplied:
                          type: object
                      type: object
                  required:
                  - name
                  type: object
                type: array
              result:
                type: string
            type: object
          phase:
            type: string
          progress:
            type: string
        required:
        - metadata
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflowtasksets.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTaskSet
    listKind: WorkflowTaskSetList
    plural: workflowtasksets
    shortNames:
    - wfts
    singular: workflowtaskset
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
          status:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflowtemplates.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTemplate
    listKind: WorkflowTemplateList
    plural: workflowtemplates
    shortNames:
    - wftmpl
    singular: workflowtemplate
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            type: object
            x-kubernetes-map-type: atomic
            x-kubernetes-preserve-unknown-fields: true
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: workloadentries.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: WorkloadEntry
    listKind: WorkloadEntryList
    plural: workloadentries
    shortNames:
    - we
    singular: workloadentry
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: Address associated with the network endpoint.
      jsonPath: .spec.address
      name: Address
      type: string
    name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting VMs onboarded into the mesh. See
              more details at: https://istio.io/docs/reference/config/networking/workload-entry.html'
            properties:
              address:
                type: string
              labels:
                additionalProperties:
                  type: string
                description: One or more labels associated with the endpoint.
                type: object
              locality:
                description: The locality associated with the endpoint.
                type: string
              network:
                type: string
              ports:
                additionalProperties:
                  type: integer
                description: Set of ports associated with the endpoint.
                type: object
              serviceAccount:
                type: string
              weight:
                description: The load balancing weight associated with the endpoint.
                type: integer
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: Address associated with the network endpoint.
      jsonPath: .spec.address
      name: Address
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Configuration affecting VMs onboarded into the mesh. See
              more details at: https://istio.io/docs/reference/config/networking/workload-entry.html'
            properties:
              address:
                type: string
              labels:
                additionalProperties:
                  type: string
                description: One or more labels associated with the endpoint.
                type: object
              locality:
                description: The locality associated with the endpoint.
                type: string
              network:
                type: string
              ports:
                additionalProperties:
                  type: integer
                description: Set of ports associated with the endpoint.
                type: object
              serviceAccount:
                type: string
              weight:
                description: The load balancing weight associated with the endpoint.
                type: integer
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app: istio-pilot
    chart: istio
    heritage: Tiller
    release: istio
  name: workloadgroups.networking.istio.io
spec:
  group: networking.istio.io
  names:
    categories:
    - istio-io
    - networking-istio-io
    kind: WorkloadGroup
    listKind: WorkloadGroupList
    plural: workloadgroups
    shortNames:
    - wg
    singular: workloadgroup
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha3
    schema:
      openAPIV3Schema:
        properties:
          spec:
            description: 'Describes a collection of workload instances. See more details
              at: https://istio.io/docs/reference/config/networking/workload-group.html'
            properties:
              metadata:
                description: Metadata that will be used for all corresponding `WorkloadEntries`.
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              probe:
                description: '`ReadinessProbe` describes the configuration the user
                  must provide for healthchecking on their workload.'
                oneOf:
                - not:
                    anyOf:
                    - required:
                      - httpGet
                    - required:
                      - tcpSocket
                    - required:
                      - exec
                - required:
                  - httpGet
                - required:
                  - tcpSocket
                - required:
                  - exec
                properties:
                  exec:
                    description: Health is determined by how the command that is executed
                      exited.
                    properties:
                      command:
                        description: Command to run.
                        items:
                          type: string
                        type: array
                    type: object
                  failureThreshold:
                    description: Minimum consecutive failures for the probe to be
                      considered failed after having succeeded.
                    format: int32
                    type: integer
                  httpGet:
                    properties:
                      host:
                        description: Host name to connect to, defaults to the pod
                          IP.
                        type: string
                      httpHeaders:
                        description: Headers the proxy will pass on to make the request.
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          type: object
                        type: array
                      path:
                        description: Path to access on the HTTP server.
                        type: string
                      port:
                        description: Port on which the endpoint lives.
                        type: integer
                      scheme:
                        type: string
                    type: object
                  initialDelaySeconds:
                    description: Number of seconds after the container has started
                      before readiness probes are initiated.
                    format: int32
                    type: integer
                  periodSeconds:
                    description: How often (in seconds) to perform the probe.
                    format: int32
                    type: integer
                  successThreshold:
                    description: Minimum consecutive successes for the probe to be
                      considered successful after having failed.
                    format: int32
                    type: integer
                  tcpSocket:
                    description: Health is determined by if the proxy is able to connect.
                    properties:
                      host:
                        type: string
                      port:
                        type: integer
                    type: object
                  timeoutSeconds:
                    description: Number of seconds after which the probe times out.
                    format: int32
                    type: integer
                type: object
              template:
                description: Template to be used for the generation of `WorkloadEntry`
                  resources that belong to this `WorkloadGroup`.
                properties:
                  address:
                    type: string
                  labels:
                    additionalProperties:
                      type: string
                    description: One or more labels associated with the endpoint.
                    type: object
                  locality:
                    description: The locality associated with the endpoint.
                    type: string
                  network:
                    type: string
                  ports:
                    additionalProperties:
                      type: integer
                    description: Set of ports associated with the endpoint.
                    type: object
                  serviceAccount:
                    type: string
                  weight:
                    description: The load balancing weight associated with the endpoint.
                    type: integer
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: 'CreationTimestamp is a timestamp representing the server time
        when this object was created. It is not guaranteed to be set in happens-before
        order across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for
        lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata'
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          spec:
            properties:
              metadata:
                description: Metadata that will be used for all corresponding `WorkloadEntries`.
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              probe:
                description: '`ReadinessProbe` describes the configuration the user
                  must provide for healthchecking on their workload.'
                oneOf:
                - not:
                    anyOf:
                    - required:
                      - httpGet
                    - required:
                      - tcpSocket
                    - required:
                      - exec
                - required:
                  - httpGet
                - required:
                  - tcpSocket
                - required:
                  - exec
                properties:
                  exec:
                    description: Health is determined by how the command that is executed
                      exited.
                    properties:
                      command:
                        description: Command to run.
                        items:
                          type: string
                        type: array
                    type: object
                  failureThreshold:
                    description: Minimum consecutive failures for the probe to be
                      considered failed after having succeeded.
                    format: int32
                    type: integer
                  httpGet:
                    properties:
                      host:
                        description: Host name to connect to, defaults to the pod
                          IP.
                        type: string
                      httpHeaders:
                        description: Headers the proxy will pass on to make the request.
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          type: object
                        type: array
                      path:
                        description: Path to access on the HTTP server.
                        type: string
                      port:
                        description: Port on which the endpoint lives.
                        type: integer
                      scheme:
                        type: string
                    type: object
                  initialDelaySeconds:
                    description: Number of seconds after the container has started
                      before readiness probes are initiated.
                    format: int32
                    type: integer
                  periodSeconds:
                    description: How often (in seconds) to perform the probe.
                    format: int32
                    type: integer
                  successThreshold:
                    description: Minimum consecutive successes for the probe to be
                      considered successful after having failed.
                    format: int32
                    type: integer
                  tcpSocket:
                    description: Health is determined by if the proxy is able to connect.
                    properties:
                      host:
                        type: string
                      port:
                        type: integer
                    type: object
                  timeoutSeconds:
                    description: Number of seconds after which the probe times out.
                    format: int32
                    type: integer
                type: object
              template:
                description: Template to be used for the generation of `WorkloadEntry`
                  resources that belong to this `WorkloadGroup`.
                properties:
                  address:
                    type: string
                  labels:
                    additionalProperties:
                      type: string
                    description: One or more labels associated with the endpoint.
                    type: object
                  locality:
                    description: The locality associated with the endpoint.
                    type: string
                  network:
                    type: string
                  ports:
                    additionalProperties:
                      type: integer
                    description: Set of ports associated with the endpoint.
                    type: object
                  serviceAccount:
                    type: string
                  weight:
                    description: The load balancing weight associated with the endpoint.
                    type: integer
                type: object
            type: object
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: false
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  name: xgboostjobs.kubeflow.org
spec:
  group: kubeflow.org
  names:
    kind: XGBoostJob
    listKind: XGBoostJobList
    plural: xgboostjobs
    singular: xgboostjob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[-1:].type
      name: State
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: XGBoostJob is the Schema for the xgboostjobs API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: XGBoostJobSpec defines the desired state of XGBoostJob
            properties:
              runPolicy:
                description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
                  Important: Run "make" to regenerate code after modifying this file'
                properties:
                  activeDeadlineSeconds:
                    description: Specifies the duration in seconds relative to the
                      startTime that the job may be active before the system tries
                      to terminate it; value must be positive integer.
                    format: int64
                    type: integer
                  backoffLimit:
                    description: Optional number of retries before marking this job
                      failed.
                    format: int32
                    type: integer
                  cleanPodPolicy:
                    description: CleanPodPolicy defines the policy to kill pods after
                      the job completes. Default to None.
                    type: string
                  schedulingPolicy:
                    description: SchedulingPolicy defines the policy related to scheduling,
                      e.g. gang-scheduling
                    properties:
                      minAvailable:
                        format: int32
                        type: integer
                      minResources:
                        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
                        type: object
                      priorityClass:
                        type: string
                      queue:
                        type: string
                      scheduleTimeoutSeconds:
                        format: int32
                        type: integer
                    type: object
                  suspend:
                    default: false
                    description: suspend specifies whether the Job controller should
                      create Pods or not. If a Job is created with suspend set to
                      true, no Pods are created by the Job controller. If a Job is
                      suspended after creation (i.e. the flag goes from false to true),
                      the Job controller will delete all active Pods and PodGroups
                      associated with this Job. Users must design their workload to
                      gracefully handle this.
                    type: boolean
                  ttlSecondsAfterFinished:
                    description: TTLSecondsAfterFinished is the TTL to clean up jobs.
                      It may take extra ReconcilePeriod seconds for the cleanup, since
                      reconcile gets called periodically. Default to infinite.
                    format: int32
                    type: integer
                type: object
              xgbReplicaSpecs:
                additionalProperties:
                  description: ReplicaSpec is a description of the replica
                  properties:
                    replicas:
                      description: Replicas is the desired number of replicas of the
                        given template. If unspecified, defaults to 1.
                      format: int32
                      type: integer
                    restartPolicy:
                      description: Restart policy for all replicas within the job.
                        One of Always, OnFailure, Never and ExitCode. Default to Never.
                      type: string
                    template:
                      description: Template is the object that describes the pod that
                        will be created for this replica. RestartPolicy in PodTemplateSpec
                        will be overide by RestartPolicy in ReplicaSpec
                      properties:
                        metadata:
                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'Specification of the desired behavior of the
                            pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                          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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to an update), the
                                        system may or may not try to eventually evict
                                        the pod from its 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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      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.
                                                        If the operator is Gt or Lt,
                                                        the values array must have
                                                        a single element, which will
                                                        be interpreted as an integer.
                                                        This array is replaced during
                                                        a strategic merge patch.
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  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.
                                        The node that is most preferred is the one
                                        with the greatest sum of weights, i.e. for
                                        each node that meets all of the scheduling
                                        requirements (resource request, requiredDuringScheduling
                                        affinity expressions, etc.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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.
                                        If the affinity requirements specified by
                                        this field cease to be met at some point during
                                        pod execution (e.g. due to a pod label update),
                                        the system may or may not try to eventually
                                        evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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. The node that is most
                                        preferred is the one with the greatest sum
                                        of weights, i.e.
                                      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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null selector
                                                  and null or empty namespaces list
                                                  means "this pod's namespace". An
                                                  empty selector ({}) matches all
                                                  namespaces.
                                                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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              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. null
                                                  or empty namespaces list and null
                                                  namespaceSelector means "this pod's
                                                  namespace".
                                                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
                                                  with key topologyKey matches that
                                                  of any node on which any of the
                                                  selected pods is running. Empty
                                                  topologyKey is not allowed.
                                                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. If the anti-affinity requirements specified
                                        by this field cease to be met at some point
                                        during pod execution (e.g. due to a pod label
                                        update), the system may or may not try to
                                        eventually evict the pod from its 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 running on a node whose value
                                          of the label with key <topologyKey> matches
                                          that of any node on which a pod of the set
                                          of pods is running
                                        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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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. null selector and null or empty
                                              namespaces list means "this pod's namespace".
                                              An empty selector ({}) matches all namespaces.
                                            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. This array
                                                        is replaced during a strategic
                                                        merge patch.
                                                      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. A single {key,value}
                                                  in the matchLabels map is equivalent
                                                  to an element of matchExpressions,
                                                  whose key field is "key", the operator
                                                  is "In", and the values array contains
                                                  only "value". The requirements are
                                                  ANDed.
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          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.
                                              null or empty namespaces list and null
                                              namespaceSelector means "this pod's
                                              namespace".
                                            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 with key topologyKey
                                              matches that of any node on which any
                                              of the selected pods is running. Empty
                                              topologyKey is not allowed.
                                            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
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.
                                    Resolution options given in Options will override
                                    those that appear in the base DNSPolicy.
                                  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'. DNS parameters
                                given in DNSConfig will be merged with the policy
                                selected with DNSPolicy. To have DNS options set along
                                with hostNetwork, you have to specify DNS policy explicitly
                                to 'ClusterFirstWithHostNet'.
                              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.
                                This list cannot be specified when creating a pod,
                                and it cannot be modified by updating the pod spec.
                                In order to add an ephemeral container to an existing
                                pod, use the pod's ephemeralcontainers subresource.
                              items:
                                description: An EphemeralContainer is a temporary
                                  container that you may add to an existing Pod for
                                  user-initiated activities such as debugging. Ephemeral
                                  containers have no resource or scheduling guarantees,
                                  and they will not be restarted when they exit or
                                  when a Pod is removed or restarted. The kubelet
                                  may evict a Pod if an ephemeral container causes
                                  the Pod to exceed its resource allocation.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      image''s CMD is used if this is not provided.
                                      Variable references $(VAR_NAME) are expanded
                                      using the container''s environment. If a variable
                                      cannot be resolved, the reference in the input
                                      string will be unchanged. Double $$ are reduced
                                      to a single $, which allows for escaping the
                                      $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
                                      produce the string literal "$(VAR_NAME)".'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The image''s ENTRYPOINT is used if
                                      this is not provided. Variable references $(VAR_NAME)
                                      are expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container 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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: Resources are not allowed for ephemeral
                                      containers. Ephemeral containers use spare resources
                                      already allocated to the pod.
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: Probes are not allowed for ephemeral
                                      containers.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. If not set
                                      then the ephemeral container uses the namespaces
                                      configured in the Pod spec. \n The container
                                      runtime must implement support for this feature."
                                    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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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. Subpath mounts are not allowed for
                                      ephemeral containers. 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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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
                            hostUsers:
                              description: 'Use the host''s user namespace. Optional:
                                Default to true. If set to true or not present, the
                                pod will be run in the host user namespace, useful
                                for when the pod needs a feature only available to
                                the host user namespace, such as loading a kernel
                                module with CAP_SYS_MODULE. When set to false, a new
                                userns is created for the pod.'
                              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.
                                If specified, these secrets will be passed to individual
                                puller implementations for them to use. More info:
                                https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                              items:
                                description: LocalObjectReference contains enough
                                  information to let you locate the referenced object
                                  inside the same namespace.
                                properties:
                                  name:
                                    description: 'Name of the referent. 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
                                x-kubernetes-map-type: atomic
                              type: array
                            initContainers:
                              description: List of initialization containers belonging
                                to the pod. Init containers are executed in order
                                prior to containers being started. If any init container
                                fails, the pod is considered to have failed and is
                                handled according to its restartPolicy. The name for
                                an init container or normal container must be unique
                                among all containers.
                              items:
                                description: A single application container that you
                                  want to run within a pod.
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint. The
                                      container image''s CMD is used if this is not
                                      provided. Variable references $(VAR_NAME) are
                                      expanded using the container''s environment.
                                      If a variable cannot be resolved, the reference
                                      in the input string will be unchanged. Double
                                      $$ are reduced to a single $, which allows for
                                      escaping the $(VAR_NAME) syntax: i.e.'
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    description: 'Entrypoint array. Not executed within
                                      a shell. The container image''s ENTRYPOINT is
                                      used if this is not provided. Variable references
                                      $(VAR_NAME) are expanded using the container''s
                                      environment. If a variable cannot be resolved,
                                      the reference in the input string will be unchanged.
                                      Double $$ are reduced to a single $, which allows
                                      for escaping the $(VAR_NAME) syntax: i.e.'
                                    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.
                                            If a variable cannot be resolved, the
                                            reference in the input string will be
                                            unchanged. Double $$ are reduced to a
                                            single $, which allows for escaping the
                                            $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)"
                                            will produce the string literal "$(VAR_NAME)".'
                                          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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                            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
                                              x-kubernetes-map-type: atomic
                                          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. When a key exists
                                      in multiple sources, the value associated with
                                      the last source will take precedence. Values
                                      defined by an Env with a duplicate key will
                                      take precedence. Cannot be updated.
                                    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
                                          x-kubernetes-map-type: atomic
                                        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
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                  image:
                                    description: 'Container image name. More info:
                                      https://kubernetes.io/docs/concepts/containers/images
                                      This field is optional to allow higher level
                                      config management to default or override container
                                      images in workload controllers like Deployments
                                      and StatefulSets.'
                                    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.io/docs/concepts/containers/images#updating-images'
                                    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. Other management
                                          of the container blocks until the hook completes.
                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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. The handler is
                                          not called if the container crashes or exits.
                                          The Pod's termination grace period countdown
                                          begins before the PreStop hook is executed.
                                        properties:
                                          exec:
                                            description: 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.
                                                  The command is simply exec'd, it
                                                  is not run inside a shell, so traditional
                                                  shell instructions ('|', etc) won't
                                                  work. To use a shell, you need to
                                                  explicitly call out to that shell.
                                                  Exit status of 0 is treated as live/healthy
                                                  and non-zero is unhealthy.
                                                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. This will be canonicalized
                                                        upon output, so case-variant
                                                        names will be understood as
                                                        the same header.
                                                      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: Deprecated. TCPSocket is
                                              NOT supported as a LifecycleHandler
                                              and kept for the backward compatibility.
                                              There are no validation of this field
                                              and lifecycle hooks will fail in runtime
                                              when tcp handler is specified.
                                            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: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Not specifying a port here DOES NOT
                                      prevent that port from being exposed. Any port
                                      which is listening on the default "0.0.0.0"
                                      address inside a container will be accessible
                                      from the network. Modifying this array with
                                      strategic merge patch may corrupt the data.
                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.
                                    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.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents
                                        resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which
                                            this resource resize policy applies. Supported
                                            values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: Restart policy to apply when
                                            specified resource is resized. If not
                                            specified, it defaults to NotRequired.
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this
                                      container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: "Claims lists the names of resources,
                                          defined in spec.resourceClaims, that are
                                          used by this container. \n This is an alpha
                                          field and requires enabling the DynamicResourceAllocation
                                          feature gate. \n This field is immutable.
                                          It can only be set for containers."
                                        items:
                                          description: ResourceClaim references one
                                            entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: Name must match the name
                                                of one entry in pod.spec.resourceClaims
                                                of the Pod where this field is used.
                                                It makes that resource available inside
                                                a container.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      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. Requests cannot exceed Limits. More
                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        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.io/docs/tasks/configure-pod-container/security-context/'
                                    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. AllowPrivilegeEscalation
                                          is true always when the container is: 1)
                                          run as Privileged 2) has CAP_SYS_ADMIN Note
                                          that this field cannot be set when spec.os.name
                                          is windows.'
                                        type: boolean
                                      capabilities:
                                        description: The capabilities to add/drop
                                          when running containers. Defaults to the
                                          default set of capabilities granted by the
                                          container runtime. Note that this field
                                          cannot be set when spec.os.name is windows.
                                        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. Note that this field cannot be
                                          set when spec.os.name is windows.
                                        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. This requires the
                                          ProcMountType feature flag to be enabled.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: Whether this container has a
                                          read-only root filesystem. Default is false.
                                          Note that this field cannot be set when
                                          spec.os.name is windows.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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. If unset or false, no such validation
                                          will be performed. May also be set in PodSecurityContext.
                                        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.  If
                                          set in both SecurityContext and PodSecurityContext,
                                          the value specified in SecurityContext takes
                                          precedence. Note that this field cannot
                                          be set when spec.os.name is windows.
                                        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.  If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is windows.
                                        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. Note that
                                          this field cannot be set when spec.os.name
                                          is windows.
                                        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. Must
                                              be a descending path, relative to the
                                              kubelet's configured seccomp profile
                                              location. Must only be set if type is
                                              "Localhost".
                                            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. RuntimeDefault - the
                                              container runtime default profile should
                                              be used. Unconfined - no profile should
                                              be applied."
                                            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. If set in both SecurityContext
                                          and PodSecurityContext, the value specified
                                          in SecurityContext takes precedence. Note
                                          that this field cannot be set when spec.os.name
                                          is linux.
                                        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. Setting this field without
                                              the feature flag will result in errors
                                              when validating the Pod.
                                            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. If
                                              set in both SecurityContext and PodSecurityContext,
                                              the value specified in SecurityContext
                                              takes precedence.
                                            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. If this probe fails, the Pod will
                                      be restarted, just as if the livenessProbe failed.
                                    properties:
                                      exec:
                                        description: 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.
                                              The command is simply exec'd, it is
                                              not run inside a shell, so traditional
                                              shell instructions ('|', etc) won't
                                              work. To use a shell, you need to explicitly
                                              call out to that shell. Exit status
                                              of 0 is treated as live/healthy and
                                              non-zero is unhealthy.
                                            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
                                      grpc:
                                        description: GRPC specifies an action involving
                                          a GRPC port.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service.
                                              Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            description: "Service is the name of the
                                              service to place in the gRPC HealthCheckRequest
                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
                                              \n If this is not specified, the default
                                              behavior is defined by gRPC."
                                            type: string
                                        required:
                                        - port
                                        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.
                                                    This will be canonicalized upon
                                                    output, so case-variant names
                                                    will be understood as the same
                                                    header.
                                                  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.
                                        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. The grace period is the duration
                                          in seconds after the processes running in
                                          the pod are sent a termination signal and
                                          the time when the processes are forcibly
                                          halted with a kill signal. Set this value
                                          longer than the expected cleanup time for
                                          your process.
                                        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. Message written is intended to be
                                      brief final status, such as an assertion failure
                                      message. Will be truncated by the node if greater
                                      than 4096 bytes. The total message length across
                                      all containers will be limited to 12kb. Defaults
                                      to /dev/termination-log.'
                                    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.
                                      FallbackToLogsOnError will use the last chunk
                                      of container log output if the termination message
                                      file is empty and the container exited with
                                      an error.
                                    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.
                                            Defaults to "" (volume's root). SubPathExpr
                                            and SubPath are mutually exclusive.
                                          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.io/docs/concepts/configuration/assign-pod-node/'
                              type: object
                              x-kubernetes-map-type: atomic
                            os:
                              description: "Specifies the OS of the containers in
                                the pod. Some pod and container fields are restricted
                                if this is set. \n If the OS field is set to linux,
                                the following fields must be unset: -securityContext.windowsOptions
                                \n If the OS field is set to windows, following fields
                                must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers
                                - spec.securityContext.seLinuxOptions - spec.securityContext."
                              properties:
                                name:
                                  description: 'Name is the name of the operating
                                    system. The currently supported values are linux
                                    and windows. Additional value may be defined in
                                    future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
                                    Clients should expect to handle additional values
                                    and treat unrecognized values in this field as
                                    os: null'
                                  type: string
                              required:
                              - name
                              type: object
                            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. If the RuntimeClass
                                admission controller is enabled, overhead must not
                                be set in Pod create requests. The RuntimeClass admission
                                controller will reject Pod create requests which have
                                the overhead already set.
                              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. The admission controller
                                populates this field from PriorityClassName. The higher
                                the value, the higher the priority.
                              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.
                                Any other name must be defined by creating a PriorityClass
                                object with that name. If not specified, the pod priority
                                will be default or zero if there is no default.
                              type: string
                            readinessGates:
                              description: 'If specified, all readiness gates will
                                be evaluated for pod readiness. A pod is ready when
                                all its containers are ready AND all conditions specified
                                in the readiness gates have status equal to "True"
                                More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates'
                              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
                            resourceClaims:
                              description: "ResourceClaims defines which ResourceClaims
                                must be allocated and reserved before the Pod is allowed
                                to start. The resources will be made available to
                                those containers which consume them by name. \n This
                                is an alpha field and requires enabling the DynamicResourceAllocation
                                feature gate. \n This field is immutable."
                              items:
                                description: PodResourceClaim references exactly one
                                  ResourceClaim through a ClaimSource. It adds a name
                                  to it that uniquely identifies the ResourceClaim
                                  inside the Pod. Containers that need access to the
                                  ResourceClaim reference it with this name.
                                properties:
                                  name:
                                    description: Name uniquely identifies this resource
                                      claim inside the pod. This must be a DNS_LABEL.
                                    type: string
                                  source:
                                    description: Source describes where to find the
                                      ResourceClaim.
                                    properties:
                                      resourceClaimName:
                                        description: ResourceClaimName is the name
                                          of a ResourceClaim object in the same namespace
                                          as this pod.
                                        type: string
                                      resourceClaimTemplateName:
                                        description: "ResourceClaimTemplateName is
                                          the name of a ResourceClaimTemplate object
                                          in the same namespace as this pod. \n The
                                          template will be used to create a new ResourceClaim,
                                          which will be bound to this pod. When this
                                          pod is deleted, the ResourceClaim will also
                                          be deleted. The name of the ResourceClaim
                                          will be <pod name>-<resource name>, where
                                          <resource name> is the PodResourceClaim.Name."
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            restartPolicy:
                              description: 'Restart policy for all containers within
                                the pod. One of Always, OnFailure, Never. In some
                                contexts, only a subset of those values may be permitted.
                                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. If unset
                                or empty, the "legacy" RuntimeClass will be used,
                                which is an implicit class with an empty definition
                                that uses the default runtime handler. More info:
                                https://git.k8s.'
                              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
                            schedulingGates:
                              description: "SchedulingGates is an opaque list of values
                                that if specified will block scheduling the pod. If
                                schedulingGates is not empty, the pod will stay in
                                the SchedulingGated state and the scheduler will not
                                attempt to schedule the pod. \n SchedulingGates can
                                only be set at pod creation time, and be removed only
                                afterwards. \n This is a beta feature enabled by the
                                PodSchedulingReadiness feature gate."
                              items:
                                description: PodSchedulingGate is associated to a
                                  Pod to guard its scheduling.
                                properties:
                                  name:
                                    description: Name of the scheduling gate. Each
                                      scheduling gate must have a unique name field.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            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. The setgid bit
                                    is set (new files created in the volume will be
                                    owned by FSGroup) 3."
                                  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). It will have
                                    no effect on ephemeral volume types such as: secret,
                                    configmaps and emptydir. Valid values are "OnRootMismatch"
                                    and "Always". If not specified, "Always" is used.'
                                  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.  If set in
                                    both SecurityContext and PodSecurityContext, the
                                    value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. If unset or false, no
                                    such validation will be performed. May also be
                                    set in SecurityContext.
                                  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.  If set in both SecurityContext
                                    and PodSecurityContext, the value specified in
                                    SecurityContext takes precedence for that container.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.  If
                                    set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence
                                    for that container. Note that this field cannot
                                    be set when spec.os.name is windows.
                                  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. Note that this field cannot be set
                                    when spec.os.name is windows.
                                  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. Must be a descending path, relative
                                        to the kubelet's configured seccomp profile
                                        location. Must only be set if type is "Localhost".
                                      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. RuntimeDefault
                                        - the container runtime default profile should
                                        be used. Unconfined - no profile should be
                                        applied."
                                      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, the fsGroup (if specified),
                                    and group memberships defined in the container
                                    image for the uid of the container process. If
                                    unspecified, no additional groups are 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.
                                    Note that this field cannot be set when spec.os.name
                                    is windows.
                                  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.
                                    If set in both SecurityContext and PodSecurityContext,
                                    the value specified in SecurityContext takes precedence.
                                    Note that this field cannot be set when spec.os.name
                                    is linux.
                                  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. Setting this field without the
                                        feature flag will result in errors when validating
                                        the Pod.
                                      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.
                                        If set in both SecurityContext and PodSecurityContext,
                                        the value specified in SecurityContext takes
                                        precedence.
                                      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). In Linux containers, this means setting
                                the FQDN in the hostname field of the kernel (the
                                nodename field of struct utsname).
                              type: boolean
                            shareProcessNamespace:
                              description: 'Share a single process namespace between
                                all of the containers in a pod. When this is set containers
                                will be able to view and signal processes from other
                                containers in the same pod, and the first process
                                in each container will not be assigned PID 1. HostPID
                                and ShareProcessNamespace cannot both be set. Optional:
                                Default to false.'
                              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. The value
                                zero indicates stop immediately via the kill signal
                                (no opportunity to shut down). If this value is nil,
                                the default grace period will be used instead.
                              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. By default, it
                                      is not set, which means tolerate the taint forever
                                      (do not evict). Zero and negative values will
                                      be treated as 0 (evict immediately) by the system.
                                    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. This
                                                array is replaced during a strategic
                                                merge patch.
                                              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. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: MatchLabelKeys is a set of pod label
                                      keys to select the pods over which spreading
                                      will be calculated. The keys are used to lookup
                                      values from the incoming pod labels, those key-value
                                      labels are ANDed with labelSelector to select
                                      the group of existing pods over which spreading
                                      will be calculated for the incoming pod. The
                                      same key is forbidden to exist in both MatchLabelKeys
                                      and LabelSelector.
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  maxSkew:
                                    description: MaxSkew describes the degree to which
                                      pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
                                      it is the maximum permitted difference between
                                      the number of matching pods in the target topology
                                      and the global minimum. The global minimum is
                                      the minimum number of matching pods in an eligible
                                      domain or zero if the number of eligible domains
                                      is less than MinDomains.
                                    format: int32
                                    type: integer
                                  minDomains:
                                    description: MinDomains indicates a minimum number
                                      of eligible domains. When the number of eligible
                                      domains with matching topology keys is less
                                      than minDomains, Pod Topology Spread treats
                                      "global minimum" as 0, and then the calculation
                                      of Skew is performed. And when the number of
                                      eligible domains with matching topology keys
                                      equals or greater than minDomains, this value
                                      has no effect on scheduling.
                                    format: int32
                                    type: integer
                                  nodeAffinityPolicy:
                                    description: "NodeAffinityPolicy indicates how
                                      we will treat Pod's nodeAffinity/nodeSelector
                                      when calculating pod topology spread skew. Options
                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector
                                      are included in the calculations. - Ignore:
                                      nodeAffinity/nodeSelector are ignored. All nodes
                                      are included in the calculations. \n If this
                                      value is nil, the behavior is equivalent to
                                      the Honor policy."
                                    type: string
                                  nodeTaintsPolicy:
                                    description: "NodeTaintsPolicy indicates how we
                                      will treat node taints when calculating pod
                                      topology spread skew. Options are: - Honor:
                                      nodes without taints, along with tainted nodes
                                      for which the incoming pod has a toleration,
                                      are included. - Ignore: node taints are ignored.
                                      All nodes are included. \n If this value is
                                      nil, the behavior is equivalent to the Ignore
                                      policy."
                                    type: string
                                  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.
                                      We consider each <key, value> as a "bucket",
                                      and try to put balanced number of pods into
                                      each bucket. We define a domain as a particular
                                      instance of a 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. - ScheduleAnyway
                                      tells the scheduler to schedule the pod in any
                                      location, but giving higher precedence to topologies
                                      that would help reduce the skew.
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty).'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly value true will force
                                          the readOnly setting in VolumeMounts. More
                                          info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                        type: boolean
                                      volumeID:
                                        description: 'volumeID is 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: 'cachingMode is the Host Caching
                                          mode: None, Read Only, Read Write.'
                                        type: string
                                      diskName:
                                        description: diskName is the Name of the data
                                          disk in the blob storage
                                        type: string
                                      diskURI:
                                        description: diskURI is the URI of data disk
                                          in the blob storage
                                        type: string
                                      fsType:
                                        description: fsType is 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: 'kind expected values are 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: readOnly 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: readOnly defaults to false (read/write).
                                          ReadOnly here will force the ReadOnly setting
                                          in VolumeMounts.
                                        type: boolean
                                      secretName:
                                        description: secretName is the  name of secret
                                          that contains Azure Storage Account Name
                                          and Key
                                        type: string
                                      shareName:
                                        description: shareName is the azure 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: 'monitors is 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: 'path is Optional: Used as the
                                          mounted root, rather than the full Ceph
                                          tree, default is /'
                                        type: string
                                      readOnly:
                                        description: 'readOnly is 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: 'secretFile is 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://examples.k8s.io/mysql-cinder-pd/README.md'
                                        type: string
                                      readOnly:
                                        description: 'readOnly 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: 'secretRef is 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
                                        x-kubernetes-map-type: atomic
                                      volumeID:
                                        description: 'volumeID 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items if unspecified, each key-value
                                          pair in the Data field of the referenced
                                          ConfigMap will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional specify whether the
                                          ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  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: fsType to mount. Ex. "ext4",
                                          "xfs", "ntfs". If not provided, the empty
                                          value is passed to the associated CSI driver
                                          which will determine the default filesystem
                                          to apply.
                                        type: string
                                      nodePublishSecretRef:
                                        description: nodePublishSecretRef is a reference
                                          to the secret object containing sensitive
                                          information to pass to the CSI driver to
                                          complete the CSI NodePublishVolume and NodeUnpublishVolume
                                          calls. This field is optional, and  may
                                          be empty if no secret is required. If the
                                          secret object contains more than one secret,
                                          all secret references are passed.
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      readOnly:
                                        description: readOnly 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. Must be an octal value
                                          between 0000 and 0777 or a decimal value
                                          between 0 and 511. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        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
                                              x-kubernetes-map-type: atomic
                                            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. YAML accepts both octal and
                                                decimal values, JSON requires decimal
                                                values for mode bits. If not specified,
                                                the volume defaultMode will be used.'
                                              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
                                              x-kubernetes-map-type: atomic
                                          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: 'medium represents what type
                                          of storage medium should back this directory.
                                          The default is "" which means to use the
                                          node''s default medium. Must be an empty
                                          string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                        type: string
                                      sizeLimit:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'sizeLimit is the total amount
                                          of local storage required for this EmptyDir
                                          volume. The size limit is also applicable
                                          for memory medium. The maximum usage on
                                          memory medium EmptyDir would be the minimum
                                          value between the SizeLimit specified here
                                          and the sum of memory limits of all containers
                                          in a pod. The default is nil which means
                                          that the limit is undefined. More info:
                                          https://kubernetes.'
                                        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.  The
                                          name of the PVC will be `<pod name>-<volume
                                          name>` where `<volume name>` is the name
                                          from the `PodSpec.Volumes` array entry.
                                        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.
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              finalizers:
                                                items:
                                                  type: string
                                                type: array
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              name:
                                                type: string
                                              namespace:
                                                type: string
                                            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: 'dataSource field can
                                                  be used to specify either: * An
                                                  existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                                                  * An existing PVC (PersistentVolumeClaim)
                                                  If the provisioner or an external
                                                  controller can support the specified
                                                  data source, it will create a new
                                                  volume based on the contents of
                                                  the specified data source.'
                                                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
                                                x-kubernetes-map-type: atomic
                                              dataSourceRef:
                                                description: dataSourceRef specifies
                                                  the object from which to populate
                                                  the volume with data, if a non-empty
                                                  volume is desired. This may be any
                                                  object from a non-empty API group
                                                  (non core object) or a PersistentVolumeClaim
                                                  object. When this field is specified,
                                                  volume binding will only succeed
                                                  if the type of the specified object
                                                  matches some installed volume populator
                                                  or dynamic provisioner.
                                                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
                                                  namespace:
                                                    description: Namespace is the
                                                      namespace of resource being
                                                      referenced Note that when a
                                                      namespace is specified, a gateway.networking.k8s.io/ReferenceGrant
                                                      object is required in the referent
                                                      namespace to allow that namespace's
                                                      owner to accept the reference.
                                                      See the ReferenceGrant documentation
                                                      for details. (Alpha) This field
                                                      requires the CrossNamespaceVolumeDataSource
                                                      feature gate to be enabled.
                                                    type: string
                                                required:
                                                - kind
                                                - name
                                                type: object
                                              resources:
                                                description: 'resources represents
                                                  the minimum resources the volume
                                                  should have. If RecoverVolumeExpansionFailure
                                                  feature is enabled users are allowed
                                                  to specify resource requirements
                                                  that are lower than previous value
                                                  but must still be higher than capacity
                                                  recorded in the status field of
                                                  the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                                properties:
                                                  claims:
                                                    description: "Claims lists the
                                                      names of resources, defined
                                                      in spec.resourceClaims, that
                                                      are used by this container.
                                                      \n This is an alpha field and
                                                      requires enabling the DynamicResourceAllocation
                                                      feature gate. \n This field
                                                      is immutable. It can only be
                                                      set for containers."
                                                    items:
                                                      description: ResourceClaim references
                                                        one entry in PodSpec.ResourceClaims.
                                                      properties:
                                                        name:
                                                          description: Name must match
                                                            the name of one entry
                                                            in pod.spec.resourceClaims
                                                            of the Pod where this
                                                            field is used. It makes
                                                            that resource available
                                                            inside a container.
                                                          type: string
                                                      required:
                                                      - name
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-map-keys:
                                                    - name
                                                    x-kubernetes-list-type: map
                                                  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. Requests cannot exceed
                                                      Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                    type: object
                                                type: object
                                              selector:
                                                description: selector is 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. This
                                                            array is replaced during
                                                            a strategic merge patch.
                                                          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. A
                                                      single {key,value} in the matchLabels
                                                      map is equivalent to an element
                                                      of matchExpressions, whose key
                                                      field is "key", the operator
                                                      is "In", and the values array
                                                      contains only "value". The requirements
                                                      are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              storageClassName:
                                                description: 'storageClassName is
                                                  the 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: 'fsType is the filesystem type
                                          to mount. Must be a filesystem type supported
                                          by the host operating system. Ex. "ext4",
                                          "xfs", "ntfs". Implicitly inferred to be
                                          "ext4" if unspecified. TODO: how do we prevent
                                          errors in the filesystem from compromising
                                          the machine'
                                        type: string
                                      lun:
                                        description: 'lun is Optional: FC target lun
                                          number'
                                        format: int32
                                        type: integer
                                      readOnly:
                                        description: 'readOnly is Optional: Defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      targetWWNs:
                                        description: 'targetWWNs is Optional: FC target
                                          worldwide names (WWNs)'
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        description: 'wwids 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: fsType is the 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: 'options is Optional: this field
                                          holds extra command options if any.'
                                        type: object
                                      readOnly:
                                        description: 'readOnly is Optional: defaults
                                          to false (read/write). ReadOnly here will
                                          force the ReadOnly setting in VolumeMounts.'
                                        type: boolean
                                      secretRef:
                                        description: 'secretRef is Optional: secretRef
                                          is reference to the secret object containing
                                          sensitive information to pass to the plugin
                                          scripts. This may be empty if no secret
                                          object is specified. If the secret object
                                          contains more than one secret, all secrets
                                          are passed to the plugin scripts.'
                                        properties:
                                          name:
                                            description: 'Name of the referent. More
                                              info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                              TODO: Add other useful fields. apiVersion,
                                              kind, uid?'
                                            type: string
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    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: datasetName is Name of the dataset
                                          stored as metadata -> name on the dataset
                                          for Flocker should be considered as deprecated
                                        type: string
                                      datasetUUID:
                                        description: datasetUUID is the 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: 'fsType is filesystem type of
                                          the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      partition:
                                        description: 'partition is the partition in
                                          the volume that you want to mount. If omitted,
                                          the default is to mount by volume name.
                                          Examples: For volume /dev/sda1, you specify
                                          the partition as "1". Similarly, the volume
                                          partition for /dev/sda is "0" (or you can
                                          leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        format: int32
                                        type: integer
                                      pdName:
                                        description: 'pdName is unique name of the
                                          PD resource in GCE. Used to identify the
                                          disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          ReadOnly setting in VolumeMounts. Defaults
                                          to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    description: 'gitRepo represents a git repository
                                      at a particular revision. DEPRECATED: GitRepo
                                      is deprecated. To provision a container with
                                      a git repo, mount an EmptyDir into an InitContainer
                                      that clones the repo using git, then mount the
                                      EmptyDir into the Pod''s container.'
                                    properties:
                                      directory:
                                        description: directory is the target directory
                                          name. Must not contain or start with '..'.  If
                                          '.' is supplied, the volume directory will
                                          be the git repository.  Otherwise, if specified,
                                          the volume will contain the git repository
                                          in the subdirectory with the given name.
                                        type: string
                                      repository:
                                        description: repository is the URL
                                        type: string
                                      revision:
                                        description: revision is the 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: 'endpoints is the endpoint name
                                          that details Glusterfs topology. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      path:
                                        description: 'path is the Glusterfs volume
                                          path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: string
                                      readOnly:
                                        description: 'readOnly here will force the
                                          Glusterfs volume to be mounted with read-only
                                          permissions. Defaults to false. More info:
                                          https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    description: 'hostPath represents a pre-existing
                                      file or directory on the host machine that is
                                      directly exposed to the container. This is generally
                                      used for system agents or other privileged things
                                      that are allowed to see the host machine. Most
                                      containers will NOT need this. More info: https://kubernetes.'
                                    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: chapAuthDiscovery defines whether
                                          support iSCSI Discovery CHAP authentication
                                        type: boolean
                                      chapAuthSession:
                                        description: chapAuthSession defines whether
                                          support iSCSI Session CHAP authentication
                                        type: boolean
                                      fsType:
                                        description: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#iscsi
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      initiatorName:
                                        description: initiatorName is the 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: iqn is the target iSCSI Qualified
                                          Name.
                                        type: string
                                      iscsiInterface:
                                        description: iscsiInterface is the interface
                                          Name that uses an iSCSI transport. Defaults
                                          to 'default' (tcp).
                                        type: string
                                      lun:
                                        description: lun represents iSCSI Target Lun
                                          number.
                                        format: int32
                                        type: integer
                                      portals:
                                        description: portals is the 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: secretRef is the 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
                                        x-kubernetes-map-type: atomic
                                      targetPortal:
                                        description: targetPortal is 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: 'name of the volume. 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: readOnly 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: fsType is the 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: pdID is the 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: readOnly 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: projected items for all in one resources
                                      secrets, configmaps, and downward API
                                    properties:
                                      defaultMode:
                                        description: defaultMode are the 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. YAML accepts both octal and decimal
                                          values, JSON requires decimal values for
                                          mode bits. Directories within the path are
                                          not affected by this setting.
                                        format: int32
                                        type: integer
                                      sources:
                                        description: sources is the list of volume
                                          projections
                                        items:
                                          description: Projection that may be projected
                                            along with other supported volume types
                                          properties:
                                            configMap:
                                              description: configMap information about
                                                the configMap data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced ConfigMap
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional specify whether
                                                    the ConfigMap or its keys must
                                                    be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            downwardAPI:
                                              description: downwardAPI 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
                                                        x-kubernetes-map-type: atomic
                                                      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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        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
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              description: secret information about
                                                the secret data to project
                                              properties:
                                                items:
                                                  description: items if unspecified,
                                                    each key-value pair in the Data
                                                    field of the referenced Secret
                                                    will be projected into the volume
                                                    as a file whose name is the key
                                                    and content is the value. If specified,
                                                    the listed keys will be projected
                                                    into the specified paths, and
                                                    unlisted keys will not be present.
                                                  items:
                                                    description: Maps a string key
                                                      to a path within a volume.
                                                    properties:
                                                      key:
                                                        description: key is the key
                                                          to project.
                                                        type: string
                                                      mode:
                                                        description: 'mode is 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. YAML
                                                          accepts both octal and decimal
                                                          values, JSON requires decimal
                                                          values for mode bits. If
                                                          not specified, the volume
                                                          defaultMode will be used.'
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        description: path is 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: optional field specify
                                                    whether the Secret or its key
                                                    must be defined
                                                  type: boolean
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            serviceAccountToken:
                                              description: serviceAccountToken is
                                                information about the serviceAccountToken
                                                data to project
                                              properties:
                                                audience:
                                                  description: audience is the intended
                                                    audience of the token. A recipient
                                                    of a token must identify itself
                                                    with an identifier specified in
                                                    the audience of the token, and
                                                    otherwise should reject the token.
                                                    The audience defaults to the identifier
                                                    of the apiserver.
                                                  type: string
                                                expirationSeconds:
                                                  description: expirationSeconds is
                                                    the requested duration of validity
                                                    of the service account token.
                                                    As the token approaches expiration,
                                                    the kubelet volume plugin will
                                                    proactively rotate the service
                                                    account token. The kubelet will
                                                    start trying to rotate the token
                                                    if the token is older than 80
                                                    percent of its time to live or
                                                    if the token is older than 24
                                                    hours.Defaults to 1 hour and must
                                                    be at least 10 minutes.
                                                  format: int64
                                                  type: integer
                                                path:
                                                  description: path is the path relative
                                                    to the mount point of the file
                                                    to project the token into.
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    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: 'fsType is the filesystem type
                                          of the volume that you want to mount. Tip:
                                          Ensure that the filesystem type is supported
                                          by the host operating system. Examples:
                                          "ext4", "xfs", "ntfs". Implicitly inferred
                                          to be "ext4" if unspecified. More info:
                                          https://kubernetes.io/docs/concepts/storage/volumes#rbd
                                          TODO: how do we prevent errors in the filesystem
                                          from compromising the machine'
                                        type: string
                                      image:
                                        description: 'image is 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: 'monitors is 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: 'pool is 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
                                        x-kubernetes-map-type: atomic
                                      user:
                                        description: 'user is 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: fsType is the 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: gateway is the host address of
                                          the ScaleIO API Gateway.
                                        type: string
                                      protectionDomain:
                                        description: protectionDomain is the name
                                          of the ScaleIO Protection Domain for the
                                          configured storage.
                                        type: string
                                      readOnly:
                                        description: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      sslEnabled:
                                        description: sslEnabled Flag enable/disable
                                          SSL communication with Gateway, default
                                          false
                                        type: boolean
                                      storageMode:
                                        description: storageMode indicates whether
                                          the storage for a volume should be ThickProvisioned
                                          or ThinProvisioned. Default is ThinProvisioned.
                                        type: string
                                      storagePool:
                                        description: storagePool is the ScaleIO Storage
                                          Pool associated with the protection domain.
                                        type: string
                                      system:
                                        description: system is the name of the storage
                                          system as configured in ScaleIO.
                                        type: string
                                      volumeName:
                                        description: volumeName is 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: 'defaultMode is 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. YAML accepts both octal
                                          and decimal values, JSON requires decimal
                                          values for mode bits. Defaults to 0644.
                                          Directories within the path are not affected
                                          by this setting.'
                                        format: int32
                                        type: integer
                                      items:
                                        description: items If unspecified, each key-value
                                          pair in the Data field of the referenced
                                          Secret will be projected into the volume
                                          as a file whose name is the key and content
                                          is the value. If specified, the listed keys
                                          will be projected into the specified paths,
                                          and unlisted keys will not be present.
                                        items:
                                          description: Maps a string key to a path
                                            within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is 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. YAML accepts both octal
                                                and decimal values, JSON requires
                                                decimal values for mode bits. If not
                                                specified, the volume defaultMode
                                                will be used.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: path is 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: optional field specify whether
                                          the Secret or its keys must be defined
                                        type: boolean
                                      secretName:
                                        description: 'secretName is the 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: fsType is the 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: readOnly 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
                                        x-kubernetes-map-type: atomic
                                      volumeName:
                                        description: volumeName is the human-readable
                                          name of the StorageOS volume.  Volume names
                                          are only unique within a namespace.
                                        type: string
                                      volumeNamespace:
                                        description: volumeNamespace specifies the
                                          scope of the volume within StorageOS.  If
                                          no namespace is specified then the Pod's
                                          namespace will be used.  This allows the
                                          Kubernetes name scoping to be mirrored within
                                          StorageOS for tighter integration. Set VolumeName
                                          to any name to override the default behaviour.
                                          Set to "default" if you are not using namespaces
                                          within StorageOS.
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    description: vsphereVolume represents a vSphere
                                      volume attached and mounted on kubelets host
                                      machine
                                    properties:
                                      fsType:
                                        description: fsType is 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: storagePolicyID is the storage
                                          Policy Based Management (SPBM) profile ID
                                          associated with the StoragePolicyName.
                                        type: string
                                      storagePolicyName:
                                        description: storagePolicyName is the storage
                                          Policy Based Management (SPBM) profile name.
                                        type: string
                                      volumePath:
                                        description: volumePath is the path that identifies
                                          vSphere volume vmdk
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  type: object
                type: object
            required:
            - xgbReplicaSpecs
            type: object
          status:
            description: JobStatus represents the current observed state of the training
              Job.
            properties:
              completionTime:
                description: Represents time when the job was completed. It is not
                  guaranteed to be set in happens-before order across separate operations.
                  It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              conditions:
                description: Conditions is an array of current observed job conditions.
                items:
                  description: JobCondition describes the state of the job at a certain
                    point.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: The last time this condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of job condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              lastReconcileTime:
                description: Represents last time when the job was reconciled. It
                  is not guaranteed to be set in happens-before order across separate
                  operations. It is represented in RFC3339 form and is in UTC.
                format: date-time
                type: string
              replicaStatuses:
                additionalProperties:
                  description: ReplicaStatus represents the current observed state
                    of the replica.
                  properties:
                    active:
                      description: The number of actively running pods.
                      format: int32
                      type: integer
                    failed:
                      description: The number of pods which reached phase Failed.
                      format: int32
                      type: integer
                    labelSelector:
                      description: 'Deprecated: Use Selector instead'
                      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. This
                                  array is replaced during a strategic merge patch.
                                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.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    selector:
                      description: A Selector is a label query over a set of resources.
                        The result of matchLabels and matchExpressions are ANDed.
                        An empty Selector matches all objects. A null Selector matches
                        no objects.
                      type: string
                    succeeded:
                      description: The number of pods which reached phase Succeeded.
                      format: int32
                      type: integer
                  type: object
                description: ReplicaStatuses is map of ReplicaType and ReplicaStatus,
                  specifies the status of each replica.
                type: object
              startTime:
                description: Represents time when the job was acknowledged by the
                  job controller. It is not guaranteed to be set in happens-before
                  order across separate operations. It is represented in RFC3339 form
                  and is in UTC.
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/admission-webhook-cert
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    caBundle: ""
    service:
      name: admission-webhook-service
      namespace: kubeflow
      path: /apply-poddefault
  failurePolicy: Fail
  name: admission-webhook-deployment.kubeflow.org
  namespaceSelector:
    matchLabels:
      app.kubernetes.io/part-of: kubeflow-profile
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/kfp-cache-cert
  labels:
    app: cache-server-cert-manager
  name: cache-webhook-kubeflow
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: cache-server
      namespace: kubeflow
      path: /mutate
  failurePolicy: Ignore
  name: cache-server.kubeflow.svc
  objectSelector:
    matchLabels:
      pipelines.kubeflow.org/cache_enabled: "true"
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
  timeoutSeconds: 5
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from-secret: cert-manager/cert-manager-webhook-ca
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    service:
      name: cert-manager-webhook
      namespace: cert-manager
      path: /mutate
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: webhook.cert-manager.io
  rules:
  - apiGroups:
    - cert-manager.io
    - acme.cert-manager.io
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - '*/*'
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/serving-cert
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: inferenceservice.serving.kserve.io
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    caBundle: Cg==
    service:
      name: kserve-webhook-server-service
      namespace: kubeflow
      path: /mutate-serving-kserve-io-v1beta1-inferenceservice
  failurePolicy: Fail
  name: inferenceservice.kserve-webhook-server.defaulter
  rules:
  - apiGroups:
    - serving.kserve.io
    apiVersions:
    - v1beta1
    operations:
    - CREATE
    - UPDATE
    resources:
    - inferenceservices
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    caBundle: Cg==
    service:
      name: kserve-webhook-server-service
      namespace: kubeflow
      path: /mutate-pods
  failurePolicy: Fail
  name: inferenceservice.kserve-webhook-server.pod-mutator
  namespaceSelector:
    matchExpressions:
    - key: control-plane
      operator: DoesNotExist
  objectSelector:
    matchExpressions:
    - key: serving.kserve.io/inferenceservice
      operator: Exists
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - pods
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  labels:
    app: sidecar-injector
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: Pilot
    release: istio
  name: istio-sidecar-injector
webhooks:
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    service:
      name: istiod
      namespace: istio-system
      path: /inject
      port: 443
  failurePolicy: Fail
  name: rev.namespace.sidecar-injector.istio.io
  namespaceSelector:
    matchExpressions:
    - key: istio.io/rev
      operator: In
      values:
      - default
    - key: istio-injection
      operator: DoesNotExist
  objectSelector:
    matchExpressions:
    - key: sidecar.istio.io/inject
      operator: NotIn
      values:
      - "false"
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    service:
      name: istiod
      namespace: istio-system
      path: /inject
      port: 443
  failurePolicy: Fail
  name: rev.object.sidecar-injector.istio.io
  namespaceSelector:
    matchExpressions:
    - key: istio.io/rev
      operator: DoesNotExist
    - key: istio-injection
      operator: DoesNotExist
  objectSelector:
    matchExpressions:
    - key: sidecar.istio.io/inject
      operator: NotIn
      values:
      - "false"
    - key: istio.io/rev
      operator: In
      values:
      - default
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    service:
      name: istiod
      namespace: istio-system
      path: /inject
      port: 443
  failurePolicy: Fail
  name: namespace.sidecar-injector.istio.io
  namespaceSelector:
    matchExpressions:
    - key: istio-injection
      operator: In
      values:
      - enabled
  objectSelector:
    matchExpressions:
    - key: sidecar.istio.io/inject
      operator: NotIn
      values:
      - "false"
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    service:
      name: istiod
      namespace: istio-system
      path: /inject
      port: 443
  failurePolicy: Fail
  name: object.sidecar-injector.istio.io
  namespaceSelector:
    matchExpressions:
    - key: istio-injection
      operator: DoesNotExist
    - key: istio.io/rev
      operator: DoesNotExist
  objectSelector:
    matchExpressions:
    - key: sidecar.istio.io/inject
      operator: In
      values:
      - "true"
    - key: istio.io/rev
      operator: DoesNotExist
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/katib-webhook-cert
  name: katib.kubeflow.org
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    caBundle: Cg==
    service:
      name: katib-controller
      namespace: kubeflow
      path: /mutate-experiment
  name: defaulter.experiment.katib.kubeflow.org
  rules:
  - apiGroups:
    - kubeflow.org
    apiVersions:
    - v1beta1
    operations:
    - CREATE
    - UPDATE
    resources:
    - experiments
  sideEffects: None
- admissionReviewVersions:
  - v1
  clientConfig:
    caBundle: Cg==
    service:
      name: katib-controller
      namespace: kubeflow
      path: /mutate-pod
  name: mutator.pod.katib.kubeflow.org
  namespaceSelector:
    matchLabels:
      katib.kubeflow.org/metrics-collector-injection: enabled
  objectSelector:
    matchExpressions:
    - key: katib.kubeflow.org/metrics-collector-injection
      operator: NotIn
      values:
      - disabled
  rules:
  - apiGroups:
    - ""
    apiVersions:
    - v1
    operations:
    - CREATE
    resources:
    - pods
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: sinkbindings.webhook.sources.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: eventing-webhook
      namespace: knative-eventing
  failurePolicy: Fail
  name: sinkbindings.webhook.sources.knative.dev
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: domain-mapping
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: webhook.domainmapping.serving.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: domainmapping-webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: webhook.domainmapping.serving.knative.dev
  rules:
  - apiGroups:
    - serving.knative.dev
    apiVersions:
    - '*'
    operations:
    - CREATE
    - UPDATE
    resources:
    - domainmappings
    - domainmappings/status
    scope: '*'
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: webhook.eventing.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: eventing-webhook
      namespace: knative-eventing
  failurePolicy: Fail
  name: webhook.eventing.knative.dev
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: webhook.istio.networking.internal.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: net-istio-webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: webhook.istio.networking.internal.knative.dev
  objectSelector:
    matchExpressions:
    - key: serving.knative.dev/configuration
      operator: Exists
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: webhook.serving.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: webhook.serving.knative.dev
  rules:
  - apiGroups:
    - autoscaling.internal.knative.dev
    - networking.internal.knative.dev
    - serving.knative.dev
    apiVersions:
    - '*'
    operations:
    - CREATE
    - UPDATE
    resources:
    - metrics
    - podautoscalers
    - certificates
    - ingresses
    - serverlessservices
    - configurations
    - revisions
    - routes
    - services
    scope: '*'
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dex
  namespace: auth
---
apiVersion: v1
automountServiceAccountToken: true
kind: ServiceAccount
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager
  namespace: cert-manager
---
apiVersion: v1
automountServiceAccountToken: true
kind: ServiceAccount
metadata:
  labels:
    app: cainjector
    app.kubernetes.io/component: cainjector
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cainjector
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-cainjector
  namespace: cert-manager
---
apiVersion: v1
automountServiceAccountToken: true
kind: ServiceAccount
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook
  namespace: cert-manager
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: authservice
  namespace: istio-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: cluster-local-gateway
    install.operator.istio.io/owning-resource: unknown
    istio: cluster-local-gateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: cluster-local-gateway-service-account
  namespace: istio-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: istio-ingressgateway
    install.operator.istio.io/owning-resource: unknown
    istio: ingressgateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: istio-ingressgateway-service-account
  namespace: istio-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: istio-reader
    release: istio
  name: istio-reader-service-account
  namespace: istio-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod
  namespace: istio-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-service-account
  namespace: istio-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-controller
  namespace: knative-eventing
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook
  namespace: knative-eventing
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: pingsource-mt-adapter
  namespace: knative-eventing
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: controller
  namespace: knative-serving
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-service-account
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: argo
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-service-account
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: katib-controller
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: katib-ui
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: kserve
    app.kubernetes.io/instance: kserve-controller-manager
    app.kubernetes.io/managed-by: kserve-controller-manager
    app.kubernetes.io/name: kserve
  name: kserve-controller-manager
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-cache
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-container-builder
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-metadata-writer
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-viewer
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    kustomize.component: metacontroller
  name: meta-controller-service
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: metadata-grpc-server
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-persistenceagent
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-scheduledworkflow
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-viewer-crd-service-account
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-visualizationserver
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: mysql
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-service-account
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: pipeline-runner
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-controller-service-account
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-controller-manager
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app-service-account
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: training-operator
  name: training-operator
  namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook:dynamic-serving
  namespace: cert-manager
rules:
- apiGroups:
  - ""
  resourceNames:
  - cert-manager-webhook-ca
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
  - update
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: cluster-local-gateway-sds
  namespace: istio-system
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - watch
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: istio-ingressgateway-sds
  namespace: istio-system
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - watch
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod
  namespace: istio-system
rules:
- apiGroups:
  - networking.istio.io
  resources:
  - gateways
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
  - get
  - watch
  - list
  - update
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-istio-system
  namespace: istio-system
rules:
- apiGroups:
  - networking.istio.io
  resources:
  - gateways
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
  - get
  - watch
  - list
  - update
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing-webhook
  namespace: knative-eventing
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - create
  - update
  - list
  - watch
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: cainjector
    app.kubernetes.io/component: cainjector
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cainjector
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-cainjector:leaderelection
  namespace: kube-system
rules:
- apiGroups:
  - coordination.k8s.io
  resourceNames:
  - cert-manager-cainjector-leader-election
  - cert-manager-cainjector-leader-election-core
  resources:
  - leases
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager:leaderelection
  namespace: kube-system
rules:
- apiGroups:
  - coordination.k8s.io
  resourceNames:
  - cert-manager-controller
  resources:
  - leases
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: argo-role
  namespace: kubeflow
rules:
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
  - get
  - update
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  - app.k8s.io
  resources:
  - applications
  - pods
  - pods/exec
  - pods/log
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  - configmaps
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-jupyter-notebook-role
  namespace: kubeflow
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/finalizers
  - poddefaults
  verbs:
  - get
  - list
  - create
  - delete
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
- apiGroups:
  - ""
  resources:
  - events
  - nodes
  verbs:
  - list
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-leader-election-role
  namespace: kubeflow
rules:
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
  - get
  - list
  - update
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps/status
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-cache-role
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: kubeflow-pipelines-metadata-writer-role
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-metadata-writer-role
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: ml-pipeline
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - pods/log
  verbs:
  - get
  - list
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  verbs:
  - create
  - get
  - list
  - update
  - patch
  - delete
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-persistenceagent-role
  namespace: kubeflow
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: ml-pipeline-scheduledworkflow-role
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-scheduledworkflow-role
  namespace: kubeflow
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  - scheduledworkflows/finalizers
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - pods/log
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - list
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
- apiGroups:
  - kubeflow.org
  resources:
  - viewers
  verbs:
  - create
  - get
  - list
  - watch
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-viewer-controller-role
  namespace: kubeflow
rules:
- apiGroups:
  - '*'
  resources:
  - deployments
  - services
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - viewers
  - viewers/finalizers
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-leader-election-role
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps/status
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: pipeline-runner
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - ""
  resources:
  - persistentvolumes
  - persistentvolumeclaims
  verbs:
  - '*'
- apiGroups:
  - snapshot.storage.k8s.io
  resources:
  - volumesnapshots
  verbs:
  - create
  - delete
  - get
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - pods
  - pods/exec
  - pods/log
  - services
  verbs:
  - '*'
- apiGroups:
  - ""
  - apps
  - extensions
  resources:
  - deployments
  - replicasets
  verbs:
  - '*'
- apiGroups:
  - kubeflow.org
  resources:
  - '*'
  verbs:
  - '*'
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - '*'
- apiGroups:
  - machinelearning.seldon.io
  resources:
  - seldondeployments
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-leader-election-role
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps/status
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-leader-election-role
  namespace: kubeflow
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      duck.knative.dev/addressable: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: addressable-resolver
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-cluster-role
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - poddefaults
  verbs:
  - get
  - watch
  - list
  - update
  - create
  - patch
  - delete
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: admission-webhook-kubeflow-poddefaults-admin
rules: []
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-edit: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: admission-webhook-kubeflow-poddefaults-edit
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: admission-webhook-kubeflow-poddefaults-view
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - poddefaults
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pipelines-edit: "true"
  name: aggregate-to-kubeflow-pipelines-edit
rules:
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - pipelines
  - pipelines/versions
  verbs:
  - create
  - delete
  - update
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - experiments
  verbs:
  - archive
  - create
  - delete
  - unarchive
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - runs
  verbs:
  - archive
  - create
  - delete
  - retry
  - terminate
  - unarchive
  - reportMetrics
  - readArtifact
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - jobs
  verbs:
  - create
  - delete
  - disable
  - enable
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  verbs:
  - '*'
- apiGroups:
  - argoproj.io
  resources:
  - cronworkflows
  - cronworkflows/finalizers
  - workflows
  - workflows/finalizers
  - workfloweventbindings
  - workflowtemplates
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pipelines-view: "true"
  name: aggregate-to-kubeflow-pipelines-view
rules:
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - pipelines
  - pipelines/versions
  - experiments
  - jobs
  verbs:
  - get
  - list
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - runs
  verbs:
  - get
  - list
  - readArtifact
- apiGroups:
  - kubeflow.org
  resources:
  - viewers
  verbs:
  - create
  - get
  - delete
- apiGroups:
  - pipelines.kubeflow.org
  resources:
  - visualizations
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
  name: argo-aggregate-to-admin
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  - workflows/finalizers
  - workfloweventbindings
  - workfloweventbindings/finalizers
  - workflowtemplates
  - workflowtemplates/finalizers
  - cronworkflows
  - cronworkflows/finalizers
  - clusterworkflowtemplates
  - clusterworkflowtemplates/finalizers
  - workflowtasksets
  - workflowtasksets/finalizers
  verbs:
  - create
  - delete
  - deletecollection
  - get
  - list
  - patch
  - update
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
  name: argo-aggregate-to-edit
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  - workflows/finalizers
  - workfloweventbindings
  - workfloweventbindings/finalizers
  - workflowtemplates
  - workflowtemplates/finalizers
  - cronworkflows
  - cronworkflows/finalizers
  - clusterworkflowtemplates
  - clusterworkflowtemplates/finalizers
  verbs:
  - create
  - delete
  - deletecollection
  - get
  - list
  - patch
  - update
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    rbac.authorization.k8s.io/aggregate-to-view: "true"
  name: argo-aggregate-to-view
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  - workflows/finalizers
  - workfloweventbindings
  - workfloweventbindings/finalizers
  - workflowtemplates
  - workflowtemplates/finalizers
  - cronworkflows
  - cronworkflows/finalizers
  - clusterworkflowtemplates
  - clusterworkflowtemplates/finalizers
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: argo-cluster-role
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - pods/exec
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  - persistentvolumeclaims/finalizers
  verbs:
  - create
  - update
  - delete
  - get
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  - workflows/finalizers
  - workflowtasksets
  - workflowtasksets/finalizers
  verbs:
  - get
  - list
  - watch
  - update
  - patch
  - delete
  - create
- apiGroups:
  - argoproj.io
  resources:
  - workflowtemplates
  - workflowtemplates/finalizers
  - clusterworkflowtemplates
  - clusterworkflowtemplates/finalizers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - argoproj.io
  resources:
  - workflowtaskresults
  verbs:
  - list
  - watch
  - deletecollection
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  verbs:
  - get
  - list
- apiGroups:
  - argoproj.io
  resources:
  - cronworkflows
  - cronworkflows/finalizers
  verbs:
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - policy
  resources:
  - poddisruptionbudgets
  verbs:
  - create
  - get
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: authn-delegator
rules:
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    kustomize.component: knative
  name: broker-addressable-resolver
rules:
- apiGroups:
  - eventing.knative.dev
  resources:
  - brokers
  - brokers/status
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/podspecable: "true"
    kustomize.component: knative
  name: builtin-podspecable-binding
rules:
- apiGroups:
  - apps
  resources:
  - deployments
  - daemonsets
  - statefulsets
  - replicasets
  verbs:
  - list
  - watch
  - patch
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - list
  - watch
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
rules:
- apiGroups:
  - ""
  resources:
  - events
  - namespaces
  - nodes
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cainjector
    app.kubernetes.io/component: cainjector
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cainjector
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-cainjector
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - get
  - create
  - update
  - patch
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - validatingwebhookconfigurations
  - mutatingwebhookconfigurations
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - apiregistration.k8s.io
  resources:
  - apiservices
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - watch
  - update
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-approve:cert-manager-io
rules:
- apiGroups:
  - cert-manager.io
  resourceNames:
  - issuers.cert-manager.io/*
  - clusterissuers.cert-manager.io/*
  resources:
  - signers
  verbs:
  - approve
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-certificates
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  - certificates/status
  - certificaterequests
  - certificaterequests/status
  verbs:
  - update
  - patch
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  - certificaterequests
  - clusterissuers
  - issuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - cert-manager.io
  resources:
  - certificates/finalizers
  - certificaterequests/finalizers
  verbs:
  - update
- apiGroups:
  - acme.cert-manager.io
  resources:
  - orders
  verbs:
  - create
  - delete
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - delete
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-certificatesigningrequests
rules:
- apiGroups:
  - certificates.k8s.io
  resources:
  - certificatesigningrequests
  verbs:
  - get
  - list
  - watch
  - update
- apiGroups:
  - certificates.k8s.io
  resources:
  - certificatesigningrequests/status
  verbs:
  - update
  - patch
- apiGroups:
  - certificates.k8s.io
  resourceNames:
  - issuers.cert-manager.io/*
  - clusterissuers.cert-manager.io/*
  resources:
  - signers
  verbs:
  - sign
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-challenges
rules:
- apiGroups:
  - acme.cert-manager.io
  resources:
  - challenges
  - challenges/status
  verbs:
  - update
  - patch
- apiGroups:
  - acme.cert-manager.io
  resources:
  - challenges
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - cert-manager.io
  resources:
  - issuers
  - clusterissuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - ""
  resources:
  - pods
  - services
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - update
- apiGroups:
  - gateway.networking.k8s.io
  resources:
  - httproutes
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - update
- apiGroups:
  - route.openshift.io
  resources:
  - routes/custom-host
  verbs:
  - create
- apiGroups:
  - acme.cert-manager.io
  resources:
  - challenges/finalizers
  verbs:
  - update
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-clusterissuers
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - clusterissuers
  - clusterissuers/status
  verbs:
  - update
  - patch
- apiGroups:
  - cert-manager.io
  resources:
  - clusterissuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-ingress-shim
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  - certificaterequests
  verbs:
  - create
  - update
  - delete
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  - certificaterequests
  - issuers
  - clusterissuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses/finalizers
  verbs:
  - update
- apiGroups:
  - gateway.networking.k8s.io
  resources:
  - gateways
  - httproutes
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - gateway.networking.k8s.io
  resources:
  - gateways/finalizers
  - httproutes/finalizers
  verbs:
  - update
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-issuers
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - issuers
  - issuers/status
  verbs:
  - update
  - patch
- apiGroups:
  - cert-manager.io
  resources:
  - issuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-orders
rules:
- apiGroups:
  - acme.cert-manager.io
  resources:
  - orders
  - orders/status
  verbs:
  - update
  - patch
- apiGroups:
  - acme.cert-manager.io
  resources:
  - orders
  - challenges
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - cert-manager.io
  resources:
  - clusterissuers
  - issuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - acme.cert-manager.io
  resources:
  - challenges
  verbs:
  - create
  - delete
- apiGroups:
  - acme.cert-manager.io
  resources:
  - orders/finalizers
  verbs:
  - update
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
  name: cert-manager-edit
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  - certificaterequests
  - issuers
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - cert-manager.io
  resources:
  - certificates/status
  verbs:
  - update
- apiGroups:
  - acme.cert-manager.io
  resources:
  - challenges
  - orders
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
    rbac.authorization.k8s.io/aggregate-to-view: "true"
  name: cert-manager-view
rules:
- apiGroups:
  - cert-manager.io
  resources:
  - certificates
  - certificaterequests
  - issuers
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - acme.cert-manager.io
  resources:
  - challenges
  - orders
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook:subjectaccessreviews
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    kustomize.component: knative
  name: channel-addressable-resolver
rules:
- apiGroups:
  - messaging.knative.dev
  resources:
  - channels
  - channels/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - messaging.knative.dev
  resources:
  - channels/finalizers
  verbs:
  - update
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      duck.knative.dev/channelable: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: channelable-manipulator
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: dex
rules:
- apiGroups:
  - dex.coreos.com
  resources:
  - '*'
  verbs:
  - '*'
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-broker-filter
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - eventing.knative.dev
  resources:
  - triggers
  - triggers/status
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-broker-ingress
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-config-reader
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/source: "true"
    kustomize.component: knative
  name: eventing-sources-source-observer
rules:
- apiGroups:
  - sources.knative.dev
  resources:
  - apiserversources
  - pingsources
  - sinkbindings
  - containersources
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    kustomize.component: knative
  name: flows-addressable-resolver
rules:
- apiGroups:
  - flows.knative.dev
  resources:
  - sequences
  - sequences/status
  - parallels
  - parallels/status
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: istio-reader
    release: istio
  name: istio-reader-clusterrole-istio-system
rules:
- apiGroups:
  - config.istio.io
  - security.istio.io
  - networking.istio.io
  - authentication.istio.io
  - rbac.istio.io
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints
  - pods
  - services
  - nodes
  - replicationcontrollers
  - namespaces
  - secrets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.istio.io
  resources:
  - workloadentries
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceexports
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceimports
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - replicasets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: istio-reader
    release: istio
  name: istio-reader-istio-system
rules:
- apiGroups:
  - config.istio.io
  - security.istio.io
  - networking.istio.io
  - authentication.istio.io
  - rbac.istio.io
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints
  - pods
  - services
  - nodes
  - replicationcontrollers
  - namespaces
  - secrets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.istio.io
  resources:
  - workloadentries
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - replicasets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceexports
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceimports
  verbs:
  - get
  - watch
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-clusterrole-istio-system
rules:
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - mutatingwebhookconfigurations
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - watch
  - update
- apiGroups:
  - config.istio.io
  - security.istio.io
  - networking.istio.io
  - authentication.istio.io
  - rbac.istio.io
  - telemetry.istio.io
  - extensions.istio.io
  resources:
  - '*'
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - networking.istio.io
  resources:
  - workloadentries
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
- apiGroups:
  - networking.istio.io
  resources:
  - workloadentries/status
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  - nodes
  - services
  - namespaces
  - endpoints
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  - ingressclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses/status
  verbs:
  - '*'
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - get
  - list
  - watch
  - update
- apiGroups:
  - certificates.k8s.io
  resources:
  - certificatesigningrequests
  - certificatesigningrequests/approval
  - certificatesigningrequests/status
  verbs:
  - update
  - create
  - get
  - delete
  - watch
- apiGroups:
  - certificates.k8s.io
  resourceNames:
  - kubernetes.io/legacy-unknown
  resources:
  - signers
  verbs:
  - approve
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - networking.x-k8s.io
  - gateway.networking.k8s.io
  resources:
  - '*'
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - networking.x-k8s.io
  - gateway.networking.k8s.io
  resources:
  - '*'
  verbs:
  - update
  - patch
- apiGroups:
  - gateway.networking.k8s.io
  resources:
  - gatewayclasses
  verbs:
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceexports
  verbs:
  - get
  - watch
  - list
  - create
  - delete
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceimports
  verbs:
  - get
  - watch
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-gateway-controller-istio-system
rules:
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-istio-system
rules:
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - mutatingwebhookconfigurations
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - watch
  - update
- apiGroups:
  - config.istio.io
  - security.istio.io
  - networking.istio.io
  - authentication.istio.io
  - rbac.istio.io
  - telemetry.istio.io
  resources:
  - '*'
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - networking.istio.io
  resources:
  - workloadentries
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
- apiGroups:
  - networking.istio.io
  resources:
  - workloadentries/status
  verbs:
  - get
  - watch
  - list
  - update
  - patch
  - create
  - delete
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  - nodes
  - services
  - namespaces
  - endpoints
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  - ingressclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses/status
  verbs:
  - '*'
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - get
  - list
  - watch
  - update
- apiGroups:
  - certificates.k8s.io
  resources:
  - certificatesigningrequests
  - certificatesigningrequests/approval
  - certificatesigningrequests/status
  verbs:
  - update
  - create
  - get
  - delete
  - watch
- apiGroups:
  - certificates.k8s.io
  resourceNames:
  - kubernetes.io/legacy-unknown
  resources:
  - signers
  verbs:
  - approve
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - networking.x-k8s.io
  - gateway.networking.k8s.io
  resources:
  - '*'
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - networking.x-k8s.io
  - gateway.networking.k8s.io
  resources:
  - '*'
  verbs:
  - update
- apiGroups:
  - gateway.networking.k8s.io
  resources:
  - gatewayclasses
  verbs:
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceexports
  verbs:
  - get
  - watch
  - list
  - create
  - delete
- apiGroups:
  - multicluster.x-k8s.io
  resources:
  - serviceimports
  verbs:
  - get
  - watch
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-cluster-role
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/finalizers
  - poddefaults
  verbs:
  - get
  - list
  - create
  - delete
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
- apiGroups:
  - ""
  resources:
  - events
  - nodes
  verbs:
  - list
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  - pods/log
  verbs:
  - list
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: jupyter-web-app-kubeflow-notebook-ui-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: jupyter-web-app-kubeflow-notebook-ui-edit
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/finalizers
  - poddefaults
  verbs:
  - get
  - list
  - create
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: jupyter-web-app-kubeflow-notebook-ui-view
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/finalizers
  - poddefaults
  verbs:
  - get
  - list
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: katib-controller
rules:
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  - persistentvolumes
  - persistentvolumeclaims
  verbs:
  - get
  - list
  - watch
  - create
- apiGroups:
  - ""
  resources:
  - namespaces
  - configmaps
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  - pods/status
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
  - patch
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - roles
  - rolebindings
  verbs:
  - get
  - create
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - jobs
  - cronjobs
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - tfjobs
  - pytorchjobs
  - mpijobs
  - xgboostjobs
  - mxjobs
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - experiments
  - experiments/status
  - experiments/finalizers
  - trials
  - trials/status
  - trials/finalizers
  - suggestions
  - suggestions/status
  - suggestions/finalizers
  verbs:
  - '*'
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - validatingwebhookconfigurations
  - mutatingwebhookconfigurations
  verbs:
  - get
  - watch
  - list
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: katib-ui
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  - namespaces
  verbs:
  - '*'
- apiGroups:
  - kubeflow.org
  resources:
  - experiments
  - trials
  - suggestions
  verbs:
  - '*'
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - list
- apiGroups:
  - ""
  resources:
  - pods/log
  verbs:
  - get
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: knative-bindings-namespaced-admin
rules:
- apiGroups:
  - bindings.knative.dev
  resources:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing-controller
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  - secrets
  - configmaps
  - services
  - endpoints
  - events
  - serviceaccounts
  - pods
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - apps
  resources:
  - deployments/finalizers
  verbs:
  - update
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - rolebindings
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - eventing.knative.dev
  resources:
  - brokers
  - brokers/status
  - triggers
  - triggers/status
  - eventtypes
  - eventtypes/status
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - eventing.knative.dev
  resources:
  - brokers/finalizers
  - triggers/finalizers
  verbs:
  - update
- apiGroups:
  - messaging.knative.dev
  resources:
  - sequences
  - sequences/status
  - channels
  - channels/status
  - parallels
  - parallels/status
  - subscriptions
  - subscriptions/status
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - flows.knative.dev
  resources:
  - sequences
  - sequences/status
  - parallels
  - parallels/status
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - messaging.knative.dev
  resources:
  - sequences/finalizers
  - parallels/finalizers
  - channels/finalizers
  verbs:
  - update
- apiGroups:
  - flows.knative.dev
  resources:
  - sequences/finalizers
  - parallels/finalizers
  verbs:
  - update
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: knative-eventing-namespaced-admin
rules:
- apiGroups:
  - eventing.knative.dev
  resources:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-view: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: knative-eventing-namespaced-edit
rules:
- apiGroups:
  - eventing.knative.dev
  - messaging.knative.dev
  - sources.knative.dev
  - flows.knative.dev
  - bindings.knative.dev
  resources:
  - '*'
  verbs:
  - create
  - update
  - patch
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-view: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: knative-eventing-namespaced-view
rules:
- apiGroups:
  - eventing.knative.dev
  - messaging.knative.dev
  - sources.knative.dev
  - flows.knative.dev
  - bindings.knative.dev
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing-pingsource-mt-adapter
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - sources.knative.dev
  resources:
  - pingsources
  - pingsources/status
  verbs:
  - get
  - list
  - watch
  - patch
- apiGroups:
  - sources.knative.dev
  resources:
  - pingsources/finalizers
  verbs:
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing-sources-controller
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  - configmaps
  - services
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - sources.knative.dev
  resources:
  - sinkbindings
  - sinkbindings/status
  - sinkbindings/finalizers
  - apiserversources
  - apiserversources/status
  - apiserversources/finalizers
  - pingsources
  - pingsources/status
  - pingsources/finalizers
  - containersources
  - containersources/status
  - containersources/finalizers
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - serving.knative.dev
  resources:
  - services
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - eventing.knative.dev
  resources:
  - eventtypes
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing-webhook
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
  - create
  - update
  - list
  - watch
  - patch
- apiGroups:
  - ""
  resources:
  - namespaces/finalizers
  verbs:
  - update
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - get
- apiGroups:
  - apps
  resources:
  - deployments/finalizers
  verbs:
  - update
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - mutatingwebhookconfigurations
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - sources.knative.dev
  resources:
  - sinkbindings
  - sinkbindings/status
  - sinkbindings/finalizers
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - ""
  - events.k8s.io
  resources:
  - events
  verbs:
  - get
  - list
  - create
  - patch
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: knative-flows-namespaced-admin
rules:
- apiGroups:
  - flows.knative.dev
  resources:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: knative-messaging-namespaced-admin
rules:
- apiGroups:
  - messaging.knative.dev
  resources:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    duck.knative.dev/addressable: "true"
  name: knative-serving-addressable-resolver
rules:
- apiGroups:
  - serving.knative.dev
  resources:
  - routes
  - routes/status
  - services
  - services/status
  verbs:
  - get
  - list
  - watch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      serving.knative.dev/controller: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: knative-serving-admin
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      duck.knative.dev/addressable: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: knative-serving-aggregated-addressable-resolver
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    serving.knative.dev/controller: "true"
  name: knative-serving-core
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - namespaces
  - secrets
  - configmaps
  - endpoints
  - services
  - events
  - serviceaccounts
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints/restricted
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - namespaces/finalizers
  verbs:
  - update
- apiGroups:
  - apps
  resources:
  - deployments
  - deployments/finalizers
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - mutatingwebhookconfigurations
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  - customresourcedefinitions/status
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - serving.knative.dev
  - autoscaling.internal.knative.dev
  - networking.internal.knative.dev
  resources:
  - '*'
  - '*/status'
  - '*/finalizers'
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - deletecollection
  - patch
  - watch
- apiGroups:
  - caching.internal.knative.dev
  resources:
  - images
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
    serving.knative.dev/controller: "true"
  name: knative-serving-istio
rules:
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices
  - gateways
  - destinationrules
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: knative-serving-namespaced-admin
rules:
- apiGroups:
  - serving.knative.dev
  resources:
  - '*'
  verbs:
  - '*'
- apiGroups:
  - networking.internal.knative.dev
  - autoscaling.internal.knative.dev
  - caching.internal.knative.dev
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: knative-serving-namespaced-edit
rules:
- apiGroups:
  - serving.knative.dev
  resources:
  - '*'
  verbs:
  - create
  - update
  - patch
  - delete
- apiGroups:
  - networking.internal.knative.dev
  - autoscaling.internal.knative.dev
  - caching.internal.knative.dev
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    rbac.authorization.k8s.io/aggregate-to-view: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: knative-serving-namespaced-view
rules:
- apiGroups:
  - serving.knative.dev
  - networking.internal.knative.dev
  - autoscaling.internal.knative.dev
  - caching.internal.knative.dev
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    duck.knative.dev/podspecable: "true"
  name: knative-serving-podspecable-binding
rules:
- apiGroups:
  - serving.knative.dev
  resources:
  - configurations
  - services
  verbs:
  - list
  - watch
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: knative-sources-namespaced-admin
rules:
- apiGroups:
  - sources.knative.dev
  resources:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-manager-role
rules:
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - mutatingwebhookconfigurations
  - validatingwebhookconfigurations
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - get
  - list
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.knative.dev
  resources:
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.knative.dev
  resources:
  - services/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.knative.dev
  resources:
  - services/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - serving.kserve.io
  resources:
  - clusterservingruntimes
  - clusterservingruntimes/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.kserve.io
  resources:
  - clusterservingruntimes/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - serving.kserve.io
  resources:
  - inferencegraphs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.kserve.io
  resources:
  - inferencegraphs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - serving.kserve.io
  resources:
  - inferenceservices
  - inferenceservices/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.kserve.io
  resources:
  - inferenceservices/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - serving.kserve.io
  resources:
  - servingruntimes
  - servingruntimes/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.kserve.io
  resources:
  - servingruntimes/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - serving.kserve.io
  resources:
  - trainedmodels
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - serving.kserve.io
  resources:
  - trainedmodels/status
  verbs:
  - get
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app-cluster-role
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - namespaces
  - pods
  - pods/log
  - events
  verbs:
  - get
  - list
- apiGroups:
  - serving.kserve.io
  resources:
  - inferenceservices
  - inferenceservices/status
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - serving.knative.dev
  resources:
  - services
  - services/status
  - routes
  - routes/status
  - configurations
  - configurations/status
  - revisions
  - revisions/status
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-proxy-role
rules:
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: kubeflow-admin
rules: []
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: kubeflow-edit
rules: []
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-istio-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: kubeflow-istio-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-istio-admin: "true"
  name: kubeflow-istio-edit
rules:
- apiGroups:
  - istio.io
  - networking.istio.io
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - deletecollection
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: kubeflow-istio-view
rules:
- apiGroups:
  - istio.io
  - networking.istio.io
  resources:
  - '*'
  verbs:
  - get
  - list
  - watch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-katib-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: kubeflow-katib-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-katib-admin: "true"
  name: kubeflow-katib-edit
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - experiments
  - trials
  - suggestions
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - list
- apiGroups:
  - ""
  resources:
  - pods/log
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: kubeflow-katib-view
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - experiments
  - trials
  - suggestions
  verbs:
  - get
  - list
  - watch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-kserve-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: kubeflow-kserve-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-kserve-admin: "true"
  name: kubeflow-kserve-edit
rules:
- apiGroups:
  - serving.kserve.io
  resources:
  - inferenceservices
  - servingruntimes
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - serving.knative.dev
  resources:
  - services
  - services/status
  - routes
  - routes/status
  - configurations
  - configurations/status
  - revisions
  - revisions/status
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - deletecollection
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: kubeflow-kserve-view
rules:
- apiGroups:
  - serving.kserve.io
  resources:
  - inferenceservices
  - servingruntimes
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - serving.knative.dev
  resources:
  - services
  - services/status
  - routes
  - routes/status
  - configurations
  - configurations/status
  - revisions
  - revisions/status
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: kubeflow-kubernetes-admin
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - localsubjectaccessreviews
  verbs:
  - create
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - rolebindings
  - roles
  verbs:
  - create
  - delete
  - deletecollection
  - get
  - list
  - patch
  - update
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: kubeflow-kubernetes-edit
rules:
- apiGroups:
  - ""
  resources:
  - pods/attach
  - pods/exec
  - pods/portforward
  - pods/proxy
  - secrets
  - services/proxy
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  verbs:
  - impersonate
- apiGroups:
  - ""
  resources:
  - pods
  - pods/attach
  - pods/exec
  - pods/portforward
  - pods/proxy
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - configmaps
  - endpoints
  - persistentvolumeclaims
  - replicationcontrollers
  - replicationcontrollers/scale
  - secrets
  - serviceaccounts
  - services
  - services/proxy
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - apps
  resources:
  - daemonsets
  - deployments
  - deployments/rollback
  - deployments/scale
  - replicasets
  - replicasets/scale
  - statefulsets
  - statefulsets/scale
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - batch
  resources:
  - cronjobs
  - jobs
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - deployments
  - deployments/rollback
  - deployments/scale
  - ingresses
  - networkpolicies
  - replicasets
  - replicasets/scale
  - replicationcontrollers/scale
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - policy
  resources:
  - poddisruptionbudgets
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  - networkpolicies
  verbs:
  - create
  - delete
  - deletecollection
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: kubeflow-kubernetes-view
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  - endpoints
  - persistentvolumeclaims
  - persistentvolumeclaims/status
  - pods
  - replicationcontrollers
  - replicationcontrollers/scale
  - serviceaccounts
  - services
  - services/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - bindings
  - events
  - limitranges
  - namespaces/status
  - pods/log
  - pods/status
  - replicationcontrollers/status
  - resourcequotas
  - resourcequotas/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - controllerrevisions
  - daemonsets
  - daemonsets/status
  - deployments
  - deployments/scale
  - deployments/status
  - replicasets
  - replicasets/scale
  - replicasets/status
  - statefulsets
  - statefulsets/scale
  - statefulsets/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  - horizontalpodautoscalers/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - cronjobs
  - cronjobs/status
  - jobs
  - jobs/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - daemonsets/status
  - deployments
  - deployments/scale
  - deployments/status
  - ingresses
  - ingresses/status
  - networkpolicies
  - replicasets
  - replicasets/scale
  - replicasets/status
  - replicationcontrollers/scale
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - policy
  resources:
  - poddisruptionbudgets
  - poddisruptionbudgets/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  - ingresses/status
  - networkpolicies
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-cache-role
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pipelines-edit: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: kubeflow-pipelines-edit
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-metadata-writer-role
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pipelines-view: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-pipelines-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: kubeflow-pipelines-view
rules: []
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-training-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: kubeflow-training-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-training-admin: "true"
  name: kubeflow-training-edit
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs
  - tfjobs
  - pytorchjobs
  - mxjobs
  - xgboostjobs
  - paddlejobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs/status
  - tfjobs/status
  - pytorchjobs/status
  - mxjobs/status
  - xgboostjobs/status
  - paddlejobs/status
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: kubeflow-training-view
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs
  - tfjobs
  - pytorchjobs
  - mxjobs
  - xgboostjobs
  - paddlejobs
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs/status
  - tfjobs/status
  - pytorchjobs/status
  - mxjobs/status
  - xgboostjobs/status
  - paddlejobs/status
  verbs:
  - get
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: kubeflow-view
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/channelable: "true"
    kustomize.component: knative
  name: meta-channelable-manipulator
rules:
- apiGroups:
  - messaging.knative.dev
  resources:
  - channels
  - channels/status
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - pods/log
  verbs:
  - get
  - list
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  verbs:
  - create
  - get
  - list
  - update
  - patch
  - delete
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-persistenceagent-role
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-scheduledworkflow-role
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - scheduledworkflows
  - scheduledworkflows/finalizers
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - pods/log
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - list
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
- apiGroups:
  - kubeflow.org
  resources:
  - viewers
  verbs:
  - create
  - get
  - list
  - watch
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-viewer-controller-role
rules:
- apiGroups:
  - '*'
  resources:
  - deployments
  - services
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - kubeflow.org
  resources:
  - viewers
  - viewers/finalizers
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      rbac.authorization.kubeflow.org/aggregate-to-kubeflow-notebooks-admin: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: notebook-controller-kubeflow-notebooks-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-notebooks-admin: "true"
  name: notebook-controller-kubeflow-notebooks-edit
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/status
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - deletecollection
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: notebook-controller-kubeflow-notebooks-view
rules:
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/status
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-role
rules:
- apiGroups:
  - apps
  resources:
  - statefulsets
  verbs:
  - '*'
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - get
  - list
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - '*'
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  - notebooks/finalizers
  - notebooks/status
  verbs:
  - '*'
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices
  verbs:
  - '*'
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      duck.knative.dev/podspecable: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: podspecable-binding
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    kustomize.component: knative
  name: service-addressable-resolver
rules:
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    duck.knative.dev/addressable: "true"
    kustomize.component: knative
  name: serving-addressable-resolver
rules:
- apiGroups:
  - serving.knative.dev
  resources:
  - routes
  - routes/status
  - services
  - services/status
  verbs:
  - get
  - list
  - watch
---
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      duck.knative.dev/source: "true"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: source-observer
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-manager-role
rules:
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - create
  - get
  - list
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - create
  - get
  - list
  - update
  - watch
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices
  verbs:
  - create
  - get
  - list
  - update
  - watch
- apiGroups:
  - tensorboard.kubeflow.org
  resources:
  - tensorboards
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - tensorboard.kubeflow.org
  resources:
  - tensorboards/finalizers
  verbs:
  - update
- apiGroups:
  - tensorboard.kubeflow.org
  resources:
  - tensorboards/status
  verbs:
  - get
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-metrics-reader
rules:
- nonResourceURLs:
  - /metrics
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-proxy-role
rules:
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app-cluster-role
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
  - list
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - tensorboard.kubeflow.org
  resources:
  - tensorboards
  - tensorboards/finalizers
  verbs:
  - get
  - list
  - create
  - delete
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: tensorboards-web-app-kubeflow-tensorboard-ui-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: tensorboards-web-app-kubeflow-tensorboard-ui-edit
rules:
- apiGroups:
  - tensorboard.kubeflow.org
  resources:
  - tensorboards
  - tensorboards/finalizers
  verbs:
  - get
  - list
  - create
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: tensorboards-web-app-kubeflow-tensorboard-ui-view
rules:
- apiGroups:
  - tensorboard.kubeflow.org
  resources:
  - tensorboards
  - tensorboards/finalizers
  verbs:
  - get
  - list
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: training-operator
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - list
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - pods/exec
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  verbs:
  - create
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - watch
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs/finalizers
  verbs:
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - mpijobs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - mxjobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - mxjobs/finalizers
  verbs:
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - mxjobs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - paddlejobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - paddlejobs/finalizers
  verbs:
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - paddlejobs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - pytorchjobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - pytorchjobs/finalizers
  verbs:
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - pytorchjobs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - tfjobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - tfjobs/finalizers
  verbs:
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - tfjobs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - xgboostjobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - kubeflow.org
  resources:
  - xgboostjobs/finalizers
  verbs:
  - update
- apiGroups:
  - kubeflow.org
  resources:
  - xgboostjobs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - rolebindings
  verbs:
  - create
  - list
  - update
  - watch
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - roles
  verbs:
  - create
  - list
  - update
  - watch
- apiGroups:
  - scheduling.volcano.sh
  resources:
  - podgroups
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - scheduling.x-k8s.io
  resources:
  - podgroups
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app-cluster-role
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  - pods
  verbs:
  - get
  - list
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - list
- apiGroups:
  - kubeflow.org
  resources:
  - notebooks
  verbs:
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
  name: volumes-web-app-kubeflow-volume-ui-admin
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
  name: volumes-web-app-kubeflow-volume-ui-edit
rules:
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
  - watch
  - update
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
    rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
  name: volumes-web-app-kubeflow-volume-ui-view
rules:
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook:dynamic-serving
  namespace: cert-manager
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: cert-manager-webhook:dynamic-serving
subjects:
- apiGroup: ""
  kind: ServiceAccount
  name: cert-manager-webhook
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: cluster-local-gateway-sds
  namespace: istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: cluster-local-gateway-sds
subjects:
- kind: ServiceAccount
  name: cluster-local-gateway-service-account
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: istio-ingressgateway-sds
  namespace: istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: istio-ingressgateway-sds
subjects:
- kind: ServiceAccount
  name: istio-ingressgateway-service-account
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod
  namespace: istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: istiod
subjects:
- kind: ServiceAccount
  name: istiod
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-istio-system
  namespace: istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: istiod-istio-system
subjects:
- kind: ServiceAccount
  name: istiod-service-account
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook
  namespace: knative-eventing
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: knative-eventing-webhook
subjects:
- kind: ServiceAccount
  name: eventing-webhook
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: cainjector
    app.kubernetes.io/component: cainjector
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cainjector
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-cainjector:leaderelection
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: cert-manager-cainjector:leaderelection
subjects:
- kind: ServiceAccount
  name: cert-manager-cainjector
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager:leaderelection
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: cert-manager:leaderelection
subjects:
- apiGroup: ""
  kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: argo-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: argo-role
subjects:
- kind: ServiceAccount
  name: argo
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: centraldashboard
subjects:
- kind: ServiceAccount
  name: centraldashboard
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-jupyter-notebook-role-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: jupyter-web-app-jupyter-notebook-role
subjects:
- kind: ServiceAccount
  name: jupyter-notebook
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-leader-election-rolebinding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kserve-leader-election-role
subjects:
- kind: ServiceAccount
  name: kserve-controller-manager
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-cache-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubeflow-pipelines-cache-role
subjects:
- kind: ServiceAccount
  name: kubeflow-pipelines-cache
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-metadata-writer-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubeflow-pipelines-metadata-writer-role
subjects:
- kind: ServiceAccount
  name: kubeflow-pipelines-metadata-writer
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: ml-pipeline
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: ml-pipeline
subjects:
- kind: ServiceAccount
  name: ml-pipeline
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-persistenceagent-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: ml-pipeline-persistenceagent-role
subjects:
- kind: ServiceAccount
  name: ml-pipeline-persistenceagent
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-scheduledworkflow-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: ml-pipeline-scheduledworkflow-role
subjects:
- kind: ServiceAccount
  name: ml-pipeline-scheduledworkflow
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: ml-pipeline-ui
subjects:
- kind: ServiceAccount
  name: ml-pipeline-ui
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-viewer-crd-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: ml-pipeline-viewer-controller-role
subjects:
- kind: ServiceAccount
  name: ml-pipeline-viewer-crd-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-leader-election-rolebinding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: notebook-controller-leader-election-role
subjects:
- kind: ServiceAccount
  name: notebook-controller-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: pipeline-runner-binding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pipeline-runner
subjects:
- kind: ServiceAccount
  name: pipeline-runner
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-leader-election-rolebinding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: profiles-leader-election-role
subjects:
- kind: ServiceAccount
  name: profiles-controller-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-leader-election-rolebinding
  namespace: kubeflow
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: tensorboard-controller-leader-election-role
subjects:
- kind: ServiceAccount
  name: tensorboard-controller-controller-manager
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admission-webhook-cluster-role
subjects:
- kind: ServiceAccount
  name: admission-webhook-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: argo-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argo-cluster-role
subjects:
- kind: ServiceAccount
  name: argo
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: authn-delegators
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: authn-delegator
subjects:
- kind: ServiceAccount
  name: authservice
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: centraldashboard
subjects:
- kind: ServiceAccount
  name: centraldashboard
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cainjector
    app.kubernetes.io/component: cainjector
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cainjector
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-cainjector
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-cainjector
subjects:
- kind: ServiceAccount
  name: cert-manager-cainjector
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-approve:cert-manager-io
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-approve:cert-manager-io
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-certificates
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-certificates
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: cert-manager
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-certificatesigningrequests
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-certificatesigningrequests
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-challenges
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-challenges
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-clusterissuers
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-clusterissuers
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-ingress-shim
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-ingress-shim
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-issuers
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-issuers
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-controller-orders
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-controller-orders
subjects:
- kind: ServiceAccount
  name: cert-manager
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook:subjectaccessreviews
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cert-manager-webhook:subjectaccessreviews
subjects:
- apiGroup: ""
  kind: ServiceAccount
  name: cert-manager-webhook
  namespace: cert-manager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dex
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: dex
subjects:
- kind: ServiceAccount
  name: dex
  namespace: auth
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: knative-eventing-controller
subjects:
- kind: ServiceAccount
  name: eventing-controller
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-controller-manipulator
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: channelable-manipulator
subjects:
- kind: ServiceAccount
  name: eventing-controller
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-controller-resolver
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: addressable-resolver
subjects:
- kind: ServiceAccount
  name: eventing-controller
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-controller-source-observer
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: source-observer
subjects:
- kind: ServiceAccount
  name: eventing-controller
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-controller-sources-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: knative-eventing-sources-controller
subjects:
- kind: ServiceAccount
  name: eventing-controller
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: knative-eventing-webhook
subjects:
- kind: ServiceAccount
  name: eventing-webhook
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook-podspecable-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: podspecable-binding
subjects:
- kind: ServiceAccount
  name: eventing-webhook
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook-resolver
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: addressable-resolver
subjects:
- kind: ServiceAccount
  name: eventing-webhook
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: istio-reader
    release: istio
  name: istio-reader-clusterrole-istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: istio-reader-clusterrole-istio-system
subjects:
- kind: ServiceAccount
  name: istio-reader-service-account
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: istio-reader
    release: istio
  name: istio-reader-istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: istio-reader-istio-system
subjects:
- kind: ServiceAccount
  name: istio-reader-service-account
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-clusterrole-istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: istiod-clusterrole-istio-system
subjects:
- kind: ServiceAccount
  name: istiod
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-gateway-controller-istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: istiod-gateway-controller-istio-system
subjects:
- kind: ServiceAccount
  name: istiod
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: istiod
    release: istio
  name: istiod-istio-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: istiod-istio-system
subjects:
- kind: ServiceAccount
  name: istiod-service-account
  namespace: istio-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jupyter-web-app-cluster-role
subjects:
- kind: ServiceAccount
  name: jupyter-web-app-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: katib-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: katib-controller
subjects:
- kind: ServiceAccount
  name: katib-controller
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: katib-ui
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: katib-ui
subjects:
- kind: ServiceAccount
  name: katib-ui
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: knative-eventing-pingsource-mt-adapter
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: knative-eventing-pingsource-mt-adapter
subjects:
- kind: ServiceAccount
  name: pingsource-mt-adapter
  namespace: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: knative-serving-controller-addressable-resolver
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: knative-serving-aggregated-addressable-resolver
subjects:
- kind: ServiceAccount
  name: controller
  namespace: knative-serving
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: knative-serving-controller-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: knative-serving-admin
subjects:
- kind: ServiceAccount
  name: controller
  namespace: knative-serving
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-manager-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kserve-manager-role
subjects:
- kind: ServiceAccount
  name: kserve-controller-manager
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kserve-models-web-app-cluster-role
subjects:
- kind: ServiceAccount
  name: kserve-models-web-app
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-proxy-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kserve-proxy-role
subjects:
- kind: ServiceAccount
  name: kserve-controller-manager
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-cache-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kubeflow-pipelines-cache-role
subjects:
- kind: ServiceAccount
  name: kubeflow-pipelines-cache
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-metadata-writer-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kubeflow-pipelines-metadata-writer-role
subjects:
- kind: ServiceAccount
  name: kubeflow-pipelines-metadata-writer
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    kustomize.component: metacontroller
  name: meta-controller-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: meta-controller-service
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ml-pipeline
subjects:
- kind: ServiceAccount
  name: ml-pipeline
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-persistenceagent-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ml-pipeline-persistenceagent-role
subjects:
- kind: ServiceAccount
  name: ml-pipeline-persistenceagent
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-scheduledworkflow-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ml-pipeline-scheduledworkflow-role
subjects:
- kind: ServiceAccount
  name: ml-pipeline-scheduledworkflow
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ml-pipeline-ui
subjects:
- kind: ServiceAccount
  name: ml-pipeline-ui
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-viewer-crd-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ml-pipeline-viewer-controller-role
subjects:
- kind: ServiceAccount
  name: ml-pipeline-viewer-crd-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: notebook-controller-role
subjects:
- kind: ServiceAccount
  name: notebook-controller-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-cluster-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: profiles-controller-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-manager-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: tensorboard-controller-manager-role
subjects:
- kind: ServiceAccount
  name: tensorboard-controller-controller-manager
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: tensorboard-controller
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-proxy-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: tensorboard-controller-proxy-role
subjects:
- kind: ServiceAccount
  name: tensorboard-controller-controller-manager
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: tensorboards-web-app-cluster-role
subjects:
- kind: ServiceAccount
  name: tensorboards-web-app-service-account
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: training-operator
  name: training-operator
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: training-operator
subjects:
- kind: ServiceAccount
  name: training-operator
  namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: volumes-web-app-cluster-role
subjects:
- kind: ServiceAccount
  name: volumes-web-app-service-account
  namespace: kubeflow
---
apiVersion: v1
data:
  config.yaml: |
    issuer: http://dex.auth.svc.cluster.local:5556/dex
    storage:
      type: kubernetes
      config:
        inCluster: true
    web:
      http: 0.0.0.0:5556
    logger:
      level: "debug"
      format: text
    oauth2:
      skipApprovalScreen: true
    enablePasswordDB: true
    staticPasswords:
    - email: user@example.com
      hash: $2y$12$4K/VkmDd1q1Orb3xAt82zu8gk7Ad6ReFR4LCP9UeYE90NLiN9Df72
      # https://github.com/dexidp/dex/pull/1601/commits
      # FIXME: Use hashFromEnv instead
      username: user
      userID: "15841185641784"
    staticClients:
    # https://github.com/dexidp/dex/pull/1664
    - idEnv: OIDC_CLIENT_ID
      redirectURIs: ["/authservice/oidc/callback"]
      name: 'Dex Login Application'
      secretEnv: OIDC_CLIENT_SECRET
kind: ConfigMap
metadata:
  name: dex
  namespace: auth
---
apiVersion: v1
data: null
kind: ConfigMap
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook
  namespace: cert-manager
---
apiVersion: v1
data:
  mesh: |-
    accessLogFile: /dev/stdout
    defaultConfig:
      discoveryAddress: istiod.istio-system.svc:15012
      proxyMetadata: {}
      tracing: {}
    enablePrometheusMerge: true
    rootNamespace: istio-system
    tcpKeepalive:
      interval: 5s
      probes: 3
      time: 10s
    trustDomain: cluster.local
  meshNetworks: 'networks: {}'
kind: ConfigMap
metadata:
  labels:
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: Pilot
    release: istio
  name: istio
  namespace: istio-system
---
apiVersion: v1
data:
  config: |-
    # defaultTemplates defines the default template to use for pods that do not explicitly specify a template
    defaultTemplates: [sidecar]
    policy: enabled
    alwaysInjectSelector:
      []
    neverInjectSelector:
      []
    injectedAnnotations:
    template: "{{ "{{" }} Template_Version_And_Istio_Version_Mismatched_Check_Installation }}"
    templates:
      sidecar: |
        {{ "{{" }}- define "resources"  }}
          {{ "{{" }}- if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit`) }}
            {{ "{{" }}- if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) }}
              requests:
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) -}}
                cpu: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU` }}"
                {{ "{{" }} end }}
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) -}}
                memory: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory` }}"
                {{ "{{" }} end }}
            {{ "{{" }}- end }}
            {{ "{{" }}- if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit`) }}
              limits:
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit`) -}}
                cpu: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit` }}"
                {{ "{{" }} end }}
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit`) -}}
                memory: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit` }}"
                {{ "{{" }} end }}
            {{ "{{" }}- end }}
          {{ "{{" }}- else }}
            {{ "{{" }}- if .Values.global.proxy.resources }}
              {{ "{{" }} toYaml .Values.global.proxy.resources | indent 6 }}
            {{ "{{" }}- end }}
          {{ "{{" }}- end }}
        {{ "{{" }}- end }}
        {{ "{{" }}- $containers := list }}
        {{ "{{" }}- range $index, $container := .Spec.Containers }}{{ "{{" }} if not (eq $container.Name "istio-proxy") }}{{ "{{" }} $containers = append $containers $container.Name }}{{ "{{" }}end}}{{ "{{" }}- end}}
        metadata:
          labels:
            security.istio.io/tlsMode: {{ "{{" }} index .ObjectMeta.Labels `security.istio.io/tlsMode` | default "istio"  | quote }}
            {{ "{{" }}- if eq (index .ProxyConfig.ProxyMetadata "ISTIO_META_ENABLE_HBONE") "true" }}
            networking.istio.io/tunnel: {{ "{{" }} index .ObjectMeta.Labels `networking.istio.io/tunnel` | default "http"  | quote }}
            {{ "{{" }}- end }}
            service.istio.io/canonical-name: {{ "{{" }} index .ObjectMeta.Labels `service.istio.io/canonical-name` | default (index .ObjectMeta.Labels `app.kubernetes.io/name`) | default (index .ObjectMeta.Labels `app`) | default .DeploymentMeta.Name  | quote }}
            service.istio.io/canonical-revision: {{ "{{" }} index .ObjectMeta.Labels `service.istio.io/canonical-revision` | default (index .ObjectMeta.Labels `app.kubernetes.io/version`) | default (index .ObjectMeta.Labels `version`) | default "latest"  | quote }}
          annotations: {
            {{ "{{" }}- if ge (len $containers) 1 }}
            {{ "{{" }}- if not (isset .ObjectMeta.Annotations `kubectl.kubernetes.io/default-logs-container`) }}
            kubectl.kubernetes.io/default-logs-container: "{{ "{{" }} index $containers 0 }}",
            {{ "{{" }}- end }}
            {{ "{{" }}- if not (isset .ObjectMeta.Annotations `kubectl.kubernetes.io/default-container`) }}
            kubectl.kubernetes.io/default-container: "{{ "{{" }} index $containers 0 }}",
            {{ "{{" }}- end }}
            {{ "{{" }}- end }}
        {{ "{{" }}- if .Values.istio_cni.enabled }}
            {{ "{{" }}- if not .Values.istio_cni.chained }}
            k8s.v1.cni.cncf.io/networks: '{{ "{{" }} appendMultusNetwork (index .ObjectMeta.Annotations `k8s.v1.cni.cncf.io/networks`) `istio-cni` }}',
            {{ "{{" }}- end }}
            sidecar.istio.io/interceptionMode: "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode }}",
            {{ "{{" }} with annotation .ObjectMeta `traffic.sidecar.istio.io/includeOutboundIPRanges` .Values.global.proxy.includeIPRanges }}traffic.sidecar.istio.io/includeOutboundIPRanges: "{{ "{{" }}.}}",{{ "{{" }} end }}
            {{ "{{" }} with annotation .ObjectMeta `traffic.sidecar.istio.io/excludeOutboundIPRanges` .Values.global.proxy.excludeIPRanges }}traffic.sidecar.istio.io/excludeOutboundIPRanges: "{{ "{{" }}.}}",{{ "{{" }} end }}
            {{ "{{" }} with annotation .ObjectMeta `traffic.sidecar.istio.io/includeInboundPorts` .Values.global.proxy.includeInboundPorts }}traffic.sidecar.istio.io/includeInboundPorts: "{{ "{{" }}.}}",{{ "{{" }} end }}
            traffic.sidecar.istio.io/excludeInboundPorts: "{{ "{{" }} excludeInboundPort (annotation .ObjectMeta `status.sidecar.istio.io/port` .Values.global.proxy.statusPort) (annotation .ObjectMeta `traffic.sidecar.istio.io/excludeInboundPorts` .Values.global.proxy.excludeInboundPorts) }}",
            {{ "{{" }} if or (isset .ObjectMeta.Annotations `traffic.sidecar.istio.io/includeOutboundPorts`) (ne (valueOrDefault .Values.global.proxy.includeOutboundPorts "") "") }}
            traffic.sidecar.istio.io/includeOutboundPorts: "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/includeOutboundPorts` .Values.global.proxy.includeOutboundPorts }}",
            {{ "{{" }}- end }}
            {{ "{{" }} if or (isset .ObjectMeta.Annotations `traffic.sidecar.istio.io/excludeOutboundPorts`) (ne .Values.global.proxy.excludeOutboundPorts "") }}
            traffic.sidecar.istio.io/excludeOutboundPorts: "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/excludeOutboundPorts` .Values.global.proxy.excludeOutboundPorts }}",
            {{ "{{" }}- end }}
            {{ "{{" }} with index .ObjectMeta.Annotations `traffic.sidecar.istio.io/kubevirtInterfaces` }}traffic.sidecar.istio.io/kubevirtInterfaces: "{{ "{{" }}.}}",{{ "{{" }} end }}
            {{ "{{" }} with index .ObjectMeta.Annotations `traffic.sidecar.istio.io/excludeInterfaces` }}traffic.sidecar.istio.io/excludeInterfaces: "{{ "{{" }}.}}",{{ "{{" }} end }}
        {{ "{{" }}- end }}
          }
        spec:
          {{ "{{" }}- $holdProxy := or .ProxyConfig.HoldApplicationUntilProxyStarts.GetValue .Values.global.proxy.holdApplicationUntilProxyStarts }}
          initContainers:
          {{ "{{" }} if ne (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) `NONE` }}
          {{ "{{" }} if .Values.istio_cni.enabled -}}
          - name: istio-validation
          {{ "{{" }} else -}}
          - name: istio-init
          {{ "{{" }} end -}}
          {{ "{{" }}- if contains "/" (annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy_init.image) }}
            image: "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy_init.image }}"
          {{ "{{" }}- else }}
            image: "{{ "{{" }} .ProxyImage }}"
          {{ "{{" }}- end }}
            args:
            - istio-iptables
            - "-p"
            - {{ "{{" }} .MeshConfig.ProxyListenPort | default "15001" | quote }}
            - "-z"
            - "15006"
            - "-u"
            - "1337"
            - "-m"
            - "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode }}"
            - "-i"
            - "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/includeOutboundIPRanges` .Values.global.proxy.includeIPRanges }}"
            - "-x"
            - "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/excludeOutboundIPRanges` .Values.global.proxy.excludeIPRanges }}"
            - "-b"
            - "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/includeInboundPorts` .Values.global.proxy.includeInboundPorts }}"
            - "-d"
          {{ "{{" }}- if excludeInboundPort (annotation .ObjectMeta `status.sidecar.istio.io/port` .Values.global.proxy.statusPort) (annotation .ObjectMeta `traffic.sidecar.istio.io/excludeInboundPorts` .Values.global.proxy.excludeInboundPorts) }}
            - "15090,15021,{{ "{{" }} excludeInboundPort (annotation .ObjectMeta `status.sidecar.istio.io/port` .Values.global.proxy.statusPort) (annotation .ObjectMeta `traffic.sidecar.istio.io/excludeInboundPorts` .Values.global.proxy.excludeInboundPorts) }}"
          {{ "{{" }}- else }}
            - "15090,15021"
          {{ "{{" }}- end }}
            {{ "{{" }} if or (isset .ObjectMeta.Annotations `traffic.sidecar.istio.io/includeOutboundPorts`) (ne (valueOrDefault .Values.global.proxy.includeOutboundPorts "") "") -}}
            - "-q"
            - "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/includeOutboundPorts` .Values.global.proxy.includeOutboundPorts }}"
            {{ "{{" }} end -}}
            {{ "{{" }} if or (isset .ObjectMeta.Annotations `traffic.sidecar.istio.io/excludeOutboundPorts`) (ne (valueOrDefault .Values.global.proxy.excludeOutboundPorts "") "") -}}
            - "-o"
            - "{{ "{{" }} annotation .ObjectMeta `traffic.sidecar.istio.io/excludeOutboundPorts` .Values.global.proxy.excludeOutboundPorts }}"
            {{ "{{" }} end -}}
            {{ "{{" }} if (isset .ObjectMeta.Annotations `traffic.sidecar.istio.io/kubevirtInterfaces`) -}}
            - "-k"
            - "{{ "{{" }} index .ObjectMeta.Annotations `traffic.sidecar.istio.io/kubevirtInterfaces` }}"
            {{ "{{" }} end -}}
             {{ "{{" }} if (isset .ObjectMeta.Annotations `traffic.sidecar.istio.io/excludeInterfaces`) -}}
            - "-c"
            - "{{ "{{" }} index .ObjectMeta.Annotations `traffic.sidecar.istio.io/excludeInterfaces` }}"
            {{ "{{" }} end -}}
            - "--log_output_level={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/agentLogLevel` .Values.global.logging.level }}"
            {{ "{{" }} if .Values.global.logAsJson -}}
            - "--log_as_json"
            {{ "{{" }} end -}}
            {{ "{{" }} if .Values.istio_cni.enabled -}}
            - "--run-validation"
            - "--skip-rule-apply"
            {{ "{{" }} end -}}
            {{ "{{" }}with .Values.global.imagePullPolicy }}imagePullPolicy: "{{ "{{" }}.}}"{{ "{{" }}end}}
          {{ "{{" }}- if .ProxyConfig.ProxyMetadata }}
            env:
            {{ "{{" }}- range $key, $value := .ProxyConfig.ProxyMetadata }}
            - name: {{ "{{" }} $key }}
              value: "{{ "{{" }} $value }}"
            {{ "{{" }}- end }}
          {{ "{{" }}- end }}
            resources:
          {{ "{{" }} template "resources" . }}
            securityContext:
              allowPrivilegeEscalation: {{ "{{" }} .Values.global.proxy.privileged }}
              privileged: {{ "{{" }} .Values.global.proxy.privileged }}
              capabilities:
            {{ "{{" }}- if not .Values.istio_cni.enabled }}
                add:
                - NET_ADMIN
                - NET_RAW
            {{ "{{" }}- end }}
                drop:
                - ALL
            {{ "{{" }}- if not .Values.istio_cni.enabled }}
              readOnlyRootFilesystem: false
              runAsGroup: 0
              runAsNonRoot: false
              runAsUser: 0
            {{ "{{" }}- else }}
              readOnlyRootFilesystem: true
              runAsGroup: 1337
              runAsUser: 1337
              runAsNonRoot: true
            {{ "{{" }}- end }}
          {{ "{{" }} end -}}
          {{ "{{" }}- if eq (annotation .ObjectMeta `sidecar.istio.io/enableCoreDump` .Values.global.proxy.enableCoreDump) "true" }}
          - name: enable-core-dump
            args:
            - -c
            - sysctl -w kernel.core_pattern=/var/lib/istio/data/core.proxy && ulimit -c unlimited
            command:
              - /bin/sh
          {{ "{{" }}- if contains "/" (annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy_init.image) }}
            image: "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy_init.image }}"
          {{ "{{" }}- else }}
            image: "{{ "{{" }} .ProxyImage }}"
          {{ "{{" }}- end }}
            {{ "{{" }}with .Values.global.imagePullPolicy }}imagePullPolicy: "{{ "{{" }}.}}"{{ "{{" }}end}}
            resources:
          {{ "{{" }} template "resources" . }}
            securityContext:
              allowPrivilegeEscalation: true
              capabilities:
                add:
                - SYS_ADMIN
                drop:
                - ALL
              privileged: true
              readOnlyRootFilesystem: false
              runAsGroup: 0
              runAsNonRoot: false
              runAsUser: 0
          {{ "{{" }} end }}
          containers:
          - name: istio-proxy
          {{ "{{" }}- if contains "/" (annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy.image) }}
            image: "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy.image }}"
          {{ "{{" }}- else }}
            image: "{{ "{{" }} .ProxyImage }}"
          {{ "{{" }}- end }}
            ports:
            - containerPort: 15090
              protocol: TCP
              name: http-envoy-prom
            args:
            - proxy
            - sidecar
            - --domain
            - $(POD_NAMESPACE).svc.{{ "{{" }} .Values.global.proxy.clusterDomain }}
            - --proxyLogLevel={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/logLevel` .Values.global.proxy.logLevel }}
            - --proxyComponentLogLevel={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/componentLogLevel` .Values.global.proxy.componentLogLevel }}
            - --log_output_level={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/agentLogLevel` .Values.global.logging.level }}
          {{ "{{" }}- if .Values.global.sts.servicePort }}
            - --stsPort={{ "{{" }} .Values.global.sts.servicePort }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.logAsJson }}
            - --log_as_json
          {{ "{{" }}- end }}
          {{ "{{" }}- if gt .EstimatedConcurrency 0 }}
            - --concurrency
            - "{{ "{{" }} .EstimatedConcurrency }}"
          {{ "{{" }}- end -}}
          {{ "{{" }}- if .Values.global.proxy.lifecycle }}
            lifecycle:
              {{ "{{" }} toYaml .Values.global.proxy.lifecycle | indent 6 }}
          {{ "{{" }}- else if $holdProxy }}
            lifecycle:
              postStart:
                exec:
                  command:
                  - pilot-agent
                  - wait
          {{ "{{" }}- end }}
            env:
            {{ "{{" }}- if eq (env "PILOT_ENABLE_INBOUND_PASSTHROUGH" "true") "false" }}
            - name: REWRITE_PROBE_LEGACY_LOCALHOST_DESTINATION
              value: "true"
            {{ "{{" }}- end }}
            - name: JWT_POLICY
              value: {{ "{{" }} .Values.global.jwtPolicy }}
            - name: PILOT_CERT_PROVIDER
              value: {{ "{{" }} .Values.global.pilotCertProvider }}
            - name: CA_ADDR
            {{ "{{" }}- if .Values.global.caAddress }}
              value: {{ "{{" }} .Values.global.caAddress }}
            {{ "{{" }}- else }}
              value: istiod{{ "{{" }}- if not (eq .Values.revision "") }}-{{ "{{" }} .Values.revision }}{{ "{{" }}- end }}.{{ "{{" }} .Values.global.istioNamespace }}.svc:15012
            {{ "{{" }}- end }}
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: INSTANCE_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: SERVICE_ACCOUNT
              valueFrom:
                fieldRef:
                  fieldPath: spec.serviceAccountName
            - name: HOST_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: PROXY_CONFIG
              value: |
                     {{ "{{" }} protoToJSON .ProxyConfig }}
            - name: ISTIO_META_POD_PORTS
              value: |-
                [
                {{ "{{" }}- $first := true }}
                {{ "{{" }}- range $index1, $c := .Spec.Containers }}
                  {{ "{{" }}- range $index2, $p := $c.Ports }}
                    {{ "{{" }}- if (structToJSON $p) }}
                    {{ "{{" }}if not $first}},{{ "{{" }}end}}{{ "{{" }} structToJSON $p }}
                    {{ "{{" }}- $first = false }}
                    {{ "{{" }}- end }}
                  {{ "{{" }}- end}}
                {{ "{{" }}- end}}
                ]
            - name: ISTIO_META_APP_CONTAINERS
              value: "{{ "{{" }} $containers | join "," }}"
            - name: ISTIO_META_CLUSTER_ID
              value: "{{ "{{" }} valueOrDefault .Values.global.multiCluster.clusterName `Kubernetes` }}"
            - name: ISTIO_META_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: ISTIO_META_INTERCEPTION_MODE
              value: "{{ "{{" }} or (index .ObjectMeta.Annotations `sidecar.istio.io/interceptionMode`) .ProxyConfig.InterceptionMode.String }}"
            {{ "{{" }}- if .Values.global.network }}
            - name: ISTIO_META_NETWORK
              value: "{{ "{{" }} .Values.global.network }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- if .DeploymentMeta.Name }}
            - name: ISTIO_META_WORKLOAD_NAME
              value: "{{ "{{" }} .DeploymentMeta.Name }}"
            {{ "{{" }} end }}
            {{ "{{" }}- if and .TypeMeta.APIVersion .DeploymentMeta.Name }}
            - name: ISTIO_META_OWNER
              value: kubernetes://apis/{{ "{{" }} .TypeMeta.APIVersion }}/namespaces/{{ "{{" }} valueOrDefault .DeploymentMeta.Namespace `default` }}/{{ "{{" }} toLower .TypeMeta.Kind}}s/{{ "{{" }} .DeploymentMeta.Name }}
            {{ "{{" }}- end}}
            {{ "{{" }}- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) }}
            - name: ISTIO_BOOTSTRAP_OVERRIDE
              value: "/etc/istio/custom-bootstrap/custom_bootstrap.json"
            {{ "{{" }}- end }}
            {{ "{{" }}- if .Values.global.meshID }}
            - name: ISTIO_META_MESH_ID
              value: "{{ "{{" }} .Values.global.meshID }}"
            {{ "{{" }}- else if (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain) }}
            - name: ISTIO_META_MESH_ID
              value: "{{ "{{" }} (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain) }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- with (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain)  }}
            - name: TRUST_DOMAIN
              value: "{{ "{{" }} . }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- if and (eq .Values.global.proxy.tracer "datadog") (isset .ObjectMeta.Annotations `apm.datadoghq.com/env`) }}
            {{ "{{" }}- range $key, $value := fromJSON (index .ObjectMeta.Annotations `apm.datadoghq.com/env`) }}
            - name: {{ "{{" }} $key }}
              value: "{{ "{{" }} $value }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- end }}
            {{ "{{" }}- range $key, $value := .ProxyConfig.ProxyMetadata }}
            - name: {{ "{{" }} $key }}
              value: "{{ "{{" }} $value }}"
            {{ "{{" }}- end }}
            {{ "{{" }}with .Values.global.imagePullPolicy }}imagePullPolicy: "{{ "{{" }}.}}"{{ "{{" }}end}}
            {{ "{{" }} if ne (annotation .ObjectMeta `status.sidecar.istio.io/port` .Values.global.proxy.statusPort) `0` }}
            readinessProbe:
              httpGet:
                path: /healthz/ready
                port: 15021
              initialDelaySeconds: {{ "{{" }} annotation .ObjectMeta `readiness.status.sidecar.istio.io/initialDelaySeconds` .Values.global.proxy.readinessInitialDelaySeconds }}
              periodSeconds: {{ "{{" }} annotation .ObjectMeta `readiness.status.sidecar.istio.io/periodSeconds` .Values.global.proxy.readinessPeriodSeconds }}
              timeoutSeconds: 3
              failureThreshold: {{ "{{" }} annotation .ObjectMeta `readiness.status.sidecar.istio.io/failureThreshold` .Values.global.proxy.readinessFailureThreshold }}
            {{ "{{" }} end -}}
            securityContext:
              {{ "{{" }}- if eq (index .ProxyConfig.ProxyMetadata "IPTABLES_TRACE_LOGGING") "true" }}
              allowPrivilegeEscalation: true
              capabilities:
                add:
                - NET_ADMIN
                drop:
                - ALL
              privileged: true
              readOnlyRootFilesystem: {{ "{{" }} ne (annotation .ObjectMeta `sidecar.istio.io/enableCoreDump` .Values.global.proxy.enableCoreDump) "true" }}
              runAsGroup: 1337
              runAsNonRoot: false
              runAsUser: 0
              {{ "{{" }}- else }}
              allowPrivilegeEscalation: {{ "{{" }} .Values.global.proxy.privileged }}
              capabilities:
                {{ "{{" }} if or (eq (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) `TPROXY`) (eq (annotation .ObjectMeta `sidecar.istio.io/capNetBindService` .Values.global.proxy.capNetBindService) `true`) -}}
                add:
                {{ "{{" }} if eq (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) `TPROXY` -}}
                - NET_ADMIN
                {{ "{{" }}- end }}
                {{ "{{" }} if eq (annotation .ObjectMeta `sidecar.istio.io/capNetBindService` .Values.global.proxy.capNetBindService) `true` -}}
                - NET_BIND_SERVICE
                {{ "{{" }}- end }}
                {{ "{{" }}- end }}
                drop:
                - ALL
              privileged: {{ "{{" }} .Values.global.proxy.privileged }}
              readOnlyRootFilesystem: {{ "{{" }} ne (annotation .ObjectMeta `sidecar.istio.io/enableCoreDump` .Values.global.proxy.enableCoreDump) "true" }}
              runAsGroup: 1337
              {{ "{{" }} if or (eq (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) `TPROXY`) (eq (annotation .ObjectMeta `sidecar.istio.io/capNetBindService` .Values.global.proxy.capNetBindService) `true`) -}}
              runAsNonRoot: false
              runAsUser: 0
              {{ "{{" }}- else -}}
              runAsNonRoot: true
              runAsUser: 1337
              {{ "{{" }}- end }}
              {{ "{{" }}- end }}
            resources:
          {{ "{{" }} template "resources" . }}
            volumeMounts:
            - name: workload-socket
              mountPath: /var/run/secrets/workload-spiffe-uds
            - name: credential-socket
              mountPath: /var/run/secrets/credential-uds
            {{ "{{" }}- if eq .Values.global.caName "GkeWorkloadCertificate" }}
            - name: gke-workload-certificate
              mountPath: /var/run/secrets/workload-spiffe-credentials
              readOnly: true
            {{ "{{" }}- else }}
            - name: workload-certs
              mountPath: /var/run/secrets/workload-spiffe-credentials
            {{ "{{" }}- end }}
            {{ "{{" }}- if eq .Values.global.pilotCertProvider "istiod" }}
            - mountPath: /var/run/secrets/istio
              name: istiod-ca-cert
            {{ "{{" }}- end }}
            {{ "{{" }}- if eq .Values.global.pilotCertProvider "kubernetes" }}
            - mountPath: /var/run/secrets/istio/kubernetes
              name: kube-ca-cert
            {{ "{{" }}- end }}
            - mountPath: /var/lib/istio/data
              name: istio-data
            {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) }}
            - mountPath: /etc/istio/custom-bootstrap
              name: custom-bootstrap-volume
            {{ "{{" }}- end }}
            # SDS channel between istioagent and Envoy
            - mountPath: /etc/istio/proxy
              name: istio-envoy
            {{ "{{" }}- if eq .Values.global.jwtPolicy "third-party-jwt" }}
            - mountPath: /var/run/secrets/tokens
              name: istio-token
            {{ "{{" }}- end }}
            {{ "{{" }}- if .Values.global.mountMtlsCerts }}
            # Use the key and cert mounted to /etc/certs/ for the in-cluster mTLS communications.
            - mountPath: /etc/certs/
              name: istio-certs
              readOnly: true
            {{ "{{" }}- end }}
            - name: istio-podinfo
              mountPath: /etc/istio/pod
             {{ "{{" }}- if and (eq .Values.global.proxy.tracer "lightstep") .ProxyConfig.GetTracing.GetTlsSettings }}
            - mountPath: {{ "{{" }} directory .ProxyConfig.GetTracing.GetTlsSettings.GetCaCertificates }}
              name: lightstep-certs
              readOnly: true
            {{ "{{" }}- end }}
              {{ "{{" }}- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount` }}
              {{ "{{" }} range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount`) }}
            - name: "{{ "{{" }}  $index }}"
              {{ "{{" }} toYaml $value | indent 6 }}
              {{ "{{" }} end }}
              {{ "{{" }}- end }}
          volumes:
          - emptyDir:
            name: workload-socket
          - emptyDir:
            name: credential-socket
          {{ "{{" }}- if eq .Values.global.caName "GkeWorkloadCertificate" }}
          - name: gke-workload-certificate
            csi:
              driver: workloadcertificates.security.cloud.google.com
          {{ "{{" }}- else }}
          - emptyDir:
            name: workload-certs
          {{ "{{" }}- end }}
          {{ "{{" }}- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) }}
          - name: custom-bootstrap-volume
            configMap:
              name: {{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/bootstrapOverride` "" }}
          {{ "{{" }}- end }}
          # SDS channel between istioagent and Envoy
          - emptyDir:
              medium: Memory
            name: istio-envoy
          - name: istio-data
            emptyDir: {}
          - name: istio-podinfo
            downwardAPI:
              items:
                - path: "labels"
                  fieldRef:
                    fieldPath: metadata.labels
                - path: "annotations"
                  fieldRef:
                    fieldPath: metadata.annotations
          {{ "{{" }}- if eq .Values.global.jwtPolicy "third-party-jwt" }}
          - name: istio-token
            projected:
              sources:
              - serviceAccountToken:
                  path: istio-token
                  expirationSeconds: 43200
                  audience: {{ "{{" }} .Values.global.sds.token.aud }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq .Values.global.pilotCertProvider "istiod" }}
          - name: istiod-ca-cert
            configMap:
              name: istio-ca-root-cert
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq .Values.global.pilotCertProvider "kubernetes" }}
          - name: kube-ca-cert
            configMap:
              name: kube-root-ca.crt
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.mountMtlsCerts }}
          # Use the key and cert mounted to /etc/certs/ for the in-cluster mTLS communications.
          - name: istio-certs
            secret:
              optional: true
              {{ "{{" }} if eq .Spec.ServiceAccountName "" }}
              secretName: istio.default
              {{ "{{" }} else -}}
              secretName: {{ "{{" }}  printf "istio.%s" .Spec.ServiceAccountName }}
              {{ "{{" }}  end -}}
          {{ "{{" }}- end }}
            {{ "{{" }}- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolume` }}
            {{ "{{" }}range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolume`) }}
          - name: "{{ "{{" }} $index }}"
            {{ "{{" }} toYaml $value | indent 4 }}
            {{ "{{" }} end }}
            {{ "{{" }} end }}
          {{ "{{" }}- if and (eq .Values.global.proxy.tracer "lightstep") .ProxyConfig.GetTracing.GetTlsSettings }}
          - name: lightstep-certs
            secret:
              optional: true
              secretName: lightstep.cacert
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.imagePullSecrets }}
          imagePullSecrets:
            {{ "{{" }}- range .Values.global.imagePullSecrets }}
            - name: {{ "{{" }} . }}
            {{ "{{" }}- end }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq (env "ENABLE_LEGACY_FSGROUP_INJECTION" "false") "true" }}
          securityContext:
            fsGroup: 1337
          {{ "{{" }}- end }}
      gateway: |
        {{ "{{" }}- $containers := list }}
        {{ "{{" }}- range $index, $container := .Spec.Containers }}{{ "{{" }} if not (eq $container.Name "istio-proxy") }}{{ "{{" }} $containers = append $containers $container.Name }}{{ "{{" }}end}}{{ "{{" }}- end}}
        metadata:
          labels:
            service.istio.io/canonical-name: {{ "{{" }} index .ObjectMeta.Labels `service.istio.io/canonical-name` | default (index .ObjectMeta.Labels `app.kubernetes.io/name`) | default (index .ObjectMeta.Labels `app`) | default .DeploymentMeta.Name  | quote }}
            service.istio.io/canonical-revision: {{ "{{" }} index .ObjectMeta.Labels `service.istio.io/canonical-revision` | default (index .ObjectMeta.Labels `app.kubernetes.io/version`) | default (index .ObjectMeta.Labels `version`) | default "latest"  | quote }}
            istio.io/rev: {{ "{{" }} index .ObjectMeta.Labels `istio.io/rev` | default .Revision | default "default" | quote }}
          annotations: {
            {{ "{{" }}- if eq (len $containers) 1 }}
            kubectl.kubernetes.io/default-logs-container: "{{ "{{" }} index $containers 0 }}",
            kubectl.kubernetes.io/default-container: "{{ "{{" }} index $containers 0 }}",
            {{ "{{" }} end }}
          }
        spec:
          containers:
          - name: istio-proxy
          {{ "{{" }}- if contains "/" .Values.global.proxy.image }}
            image: "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy.image }}"
          {{ "{{" }}- else }}
            image: "{{ "{{" }} .ProxyImage }}"
          {{ "{{" }}- end }}
            ports:
            - containerPort: 15090
              protocol: TCP
              name: http-envoy-prom
            args:
            - proxy
            - router
            - --domain
            - $(POD_NAMESPACE).svc.{{ "{{" }} .Values.global.proxy.clusterDomain }}
            - --proxyLogLevel={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/logLevel` .Values.global.proxy.logLevel }}
            - --proxyComponentLogLevel={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/componentLogLevel` .Values.global.proxy.componentLogLevel }}
            - --log_output_level={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/agentLogLevel` .Values.global.logging.level }}
          {{ "{{" }}- if .Values.global.sts.servicePort }}
            - --stsPort={{ "{{" }} .Values.global.sts.servicePort }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.logAsJson }}
            - --log_as_json
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.proxy.lifecycle }}
            lifecycle:
              {{ "{{" }} toYaml .Values.global.proxy.lifecycle | indent 6 }}
          {{ "{{" }}- end }}
            env:
            - name: JWT_POLICY
              value: {{ "{{" }} .Values.global.jwtPolicy }}
            - name: PILOT_CERT_PROVIDER
              value: {{ "{{" }} .Values.global.pilotCertProvider }}
            - name: CA_ADDR
            {{ "{{" }}- if .Values.global.caAddress }}
              value: {{ "{{" }} .Values.global.caAddress }}
            {{ "{{" }}- else }}
              value: istiod{{ "{{" }}- if not (eq .Values.revision "") }}-{{ "{{" }} .Values.revision }}{{ "{{" }}- end }}.{{ "{{" }} .Values.global.istioNamespace }}.svc:15012
            {{ "{{" }}- end }}
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: INSTANCE_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: SERVICE_ACCOUNT
              valueFrom:
                fieldRef:
                  fieldPath: spec.serviceAccountName
            - name: HOST_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: PROXY_CONFIG
              value: |
                     {{ "{{" }} protoToJSON .ProxyConfig }}
            - name: ISTIO_META_POD_PORTS
              value: |-
                [
                {{ "{{" }}- $first := true }}
                {{ "{{" }}- range $index1, $c := .Spec.Containers }}
                  {{ "{{" }}- range $index2, $p := $c.Ports }}
                    {{ "{{" }}- if (structToJSON $p) }}
                    {{ "{{" }}if not $first}},{{ "{{" }}end}}{{ "{{" }} structToJSON $p }}
                    {{ "{{" }}- $first = false }}
                    {{ "{{" }}- end }}
                  {{ "{{" }}- end}}
                {{ "{{" }}- end}}
                ]
            - name: ISTIO_META_APP_CONTAINERS
              value: "{{ "{{" }} $containers | join "," }}"
            - name: ISTIO_META_CLUSTER_ID
              value: "{{ "{{" }} valueOrDefault .Values.global.multiCluster.clusterName `Kubernetes` }}"
            - name: ISTIO_META_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: ISTIO_META_INTERCEPTION_MODE
              value: "{{ "{{" }} .ProxyConfig.InterceptionMode.String }}"
            {{ "{{" }}- if .Values.global.network }}
            - name: ISTIO_META_NETWORK
              value: "{{ "{{" }} .Values.global.network }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- if .DeploymentMeta.Name }}
            - name: ISTIO_META_WORKLOAD_NAME
              value: "{{ "{{" }} .DeploymentMeta.Name }}"
            {{ "{{" }} end }}
            {{ "{{" }}- if and .TypeMeta.APIVersion .DeploymentMeta.Name }}
            - name: ISTIO_META_OWNER
              value: kubernetes://apis/{{ "{{" }} .TypeMeta.APIVersion }}/namespaces/{{ "{{" }} valueOrDefault .DeploymentMeta.Namespace `default` }}/{{ "{{" }} toLower .TypeMeta.Kind}}s/{{ "{{" }} .DeploymentMeta.Name }}
            {{ "{{" }}- end}}
            {{ "{{" }}- if .Values.global.meshID }}
            - name: ISTIO_META_MESH_ID
              value: "{{ "{{" }} .Values.global.meshID }}"
            {{ "{{" }}- else if (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain) }}
            - name: ISTIO_META_MESH_ID
              value: "{{ "{{" }} (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain) }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- with (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain)  }}
            - name: TRUST_DOMAIN
              value: "{{ "{{" }} . }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- range $key, $value := .ProxyConfig.ProxyMetadata }}
            - name: {{ "{{" }} $key }}
              value: "{{ "{{" }} $value }}"
            {{ "{{" }}- end }}
            {{ "{{" }}with .Values.global.imagePullPolicy }}imagePullPolicy: "{{ "{{" }}.}}"{{ "{{" }}end}}
            readinessProbe:
              httpGet:
                path: /healthz/ready
                port: 15021
              initialDelaySeconds: {{ "{{" }}.Values.global.proxy.readinessInitialDelaySeconds }}
              periodSeconds: {{ "{{" }} .Values.global.proxy.readinessPeriodSeconds }}
              timeoutSeconds: 3
              failureThreshold: {{ "{{" }} .Values.global.proxy.readinessFailureThreshold }}
            volumeMounts:
            - name: workload-socket
              mountPath: /var/run/secrets/workload-spiffe-uds
            - name: credential-socket
              mountPath: /var/run/secrets/credential-uds
            {{ "{{" }}- if eq .Values.global.caName "GkeWorkloadCertificate" }}
            - name: gke-workload-certificate
              mountPath: /var/run/secrets/workload-spiffe-credentials
              readOnly: true
            {{ "{{" }}- else }}
            - name: workload-certs
              mountPath: /var/run/secrets/workload-spiffe-credentials
            {{ "{{" }}- end }}
            {{ "{{" }}- if eq .Values.global.pilotCertProvider "istiod" }}
            - mountPath: /var/run/secrets/istio
              name: istiod-ca-cert
            {{ "{{" }}- end }}
            - mountPath: /var/lib/istio/data
              name: istio-data
            # SDS channel between istioagent and Envoy
            - mountPath: /etc/istio/proxy
              name: istio-envoy
            {{ "{{" }}- if eq .Values.global.jwtPolicy "third-party-jwt" }}
            - mountPath: /var/run/secrets/tokens
              name: istio-token
            {{ "{{" }}- end }}
            {{ "{{" }}- if .Values.global.mountMtlsCerts }}
            # Use the key and cert mounted to /etc/certs/ for the in-cluster mTLS communications.
            - mountPath: /etc/certs/
              name: istio-certs
              readOnly: true
            {{ "{{" }}- end }}
            - name: istio-podinfo
              mountPath: /etc/istio/pod
          volumes:
          - emptyDir: {}
            name: workload-socket
          - emptyDir: {}
            name: credential-socket
          {{ "{{" }}- if eq .Values.global.caName "GkeWorkloadCertificate" }}
          - name: gke-workload-certificate
            csi:
              driver: workloadcertificates.security.cloud.google.com
          {{ "{{" }}- else}}
          - emptyDir: {}
            name: workload-certs
          {{ "{{" }}- end }}
          # SDS channel between istioagent and Envoy
          - emptyDir:
              medium: Memory
            name: istio-envoy
          - name: istio-data
            emptyDir: {}
          - name: istio-podinfo
            downwardAPI:
              items:
                - path: "labels"
                  fieldRef:
                    fieldPath: metadata.labels
                - path: "annotations"
                  fieldRef:
                    fieldPath: metadata.annotations
          {{ "{{" }}- if eq .Values.global.jwtPolicy "third-party-jwt" }}
          - name: istio-token
            projected:
              sources:
              - serviceAccountToken:
                  path: istio-token
                  expirationSeconds: 43200
                  audience: {{ "{{" }} .Values.global.sds.token.aud }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq .Values.global.pilotCertProvider "istiod" }}
          - name: istiod-ca-cert
            configMap:
              name: istio-ca-root-cert
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.mountMtlsCerts }}
          # Use the key and cert mounted to /etc/certs/ for the in-cluster mTLS communications.
          - name: istio-certs
            secret:
              optional: true
              {{ "{{" }} if eq .Spec.ServiceAccountName "" }}
              secretName: istio.default
              {{ "{{" }} else -}}
              secretName: {{ "{{" }}  printf "istio.%s" .Spec.ServiceAccountName }}
              {{ "{{" }}  end -}}
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.imagePullSecrets }}
          imagePullSecrets:
            {{ "{{" }}- range .Values.global.imagePullSecrets }}
            - name: {{ "{{" }} . }}
            {{ "{{" }}- end }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq (env "ENABLE_LEGACY_FSGROUP_INJECTION" "false") "true" }}
          securityContext:
            fsGroup: 1337
          {{ "{{" }}- end }}
      grpc-simple: |
        metadata:
          annotations:
            sidecar.istio.io/rewriteAppHTTPProbers: "false"
        spec:
          initContainers:
            - name: grpc-bootstrap-init
              image: busybox:1.28
              volumeMounts:
                - mountPath: /var/lib/grpc/data/
                  name: grpc-io-proxyless-bootstrap
              env:
                - name: INSTANCE_IP
                  valueFrom:
                    fieldRef:
                      fieldPath: status.podIP
                - name: POD_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: POD_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: ISTIO_NAMESPACE
                  value: |
                     {{ "{{" }} .Values.global.istioNamespace }}
              command:
                - sh
                - "-c"
                - |-
                  NODE_ID="sidecar~${INSTANCE_IP}~${POD_NAME}.${POD_NAMESPACE}~cluster.local"
                  SERVER_URI="dns:///istiod.${ISTIO_NAMESPACE}.svc:15010"
                  echo '
                  {
                    "xds_servers": [
                      {
                        "server_uri": "'${SERVER_URI}'",
                        "channel_creds": [{"type": "insecure"}],
                        "server_features" : ["xds_v3"]
                      }
                    ],
                    "node": {
                      "id": "'${NODE_ID}'",
                      "metadata": {
                        "GENERATOR": "grpc"
                      }
                    }
                  }' > /var/lib/grpc/data/bootstrap.json
          containers:
          {{ "{{" }}- range $index, $container := .Spec.Containers }}
          - name: {{ "{{" }} $container.Name }}
            env:
              - name: GRPC_XDS_BOOTSTRAP
                value: /var/lib/grpc/data/bootstrap.json
              - name: GRPC_GO_LOG_VERBOSITY_LEVEL
                value: "99"
              - name: GRPC_GO_LOG_SEVERITY_LEVEL
                value: info
            volumeMounts:
              - mountPath: /var/lib/grpc/data/
                name: grpc-io-proxyless-bootstrap
          {{ "{{" }}- end }}
          volumes:
            - name: grpc-io-proxyless-bootstrap
              emptyDir: {}
      grpc-agent: |
        {{ "{{" }}- define "resources"  }}
          {{ "{{" }}- if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit`) }}
            {{ "{{" }}- if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) }}
              requests:
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) -}}
                cpu: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU` }}"
                {{ "{{" }} end }}
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) -}}
                memory: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory` }}"
                {{ "{{" }} end }}
            {{ "{{" }}- end }}
            {{ "{{" }}- if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit`) }}
              limits:
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit`) -}}
                cpu: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyCPULimit` }}"
                {{ "{{" }} end }}
                {{ "{{" }} if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit`) -}}
                memory: "{{ "{{" }} index .ObjectMeta.Annotations `sidecar.istio.io/proxyMemoryLimit` }}"
                {{ "{{" }} end }}
            {{ "{{" }}- end }}
          {{ "{{" }}- else }}
            {{ "{{" }}- if .Values.global.proxy.resources }}
              {{ "{{" }} toYaml .Values.global.proxy.resources | indent 6 }}
            {{ "{{" }}- end }}
          {{ "{{" }}- end }}
        {{ "{{" }}- end }}
        {{ "{{" }}- $containers := list }}
        {{ "{{" }}- range $index, $container := .Spec.Containers }}{{ "{{" }} if not (eq $container.Name "istio-proxy") }}{{ "{{" }} $containers = append $containers $container.Name }}{{ "{{" }}end}}{{ "{{" }}- end}}
        metadata:
          labels:
            {{ "{{" }}/* security.istio.io/tlsMode: istio must be set by user, if gRPC is using mTLS initialization code. We can't set it automatically. */}}
            service.istio.io/canonical-name: {{ "{{" }} index .ObjectMeta.Labels `service.istio.io/canonical-name` | default (index .ObjectMeta.Labels `app.kubernetes.io/name`) | default (index .ObjectMeta.Labels `app`) | default .DeploymentMeta.Name  | quote }}
            service.istio.io/canonical-revision: {{ "{{" }} index .ObjectMeta.Labels `service.istio.io/canonical-revision` | default (index .ObjectMeta.Labels `app.kubernetes.io/version`) | default (index .ObjectMeta.Labels `version`) | default "latest"  | quote }}
          annotations: {
            {{ "{{" }}- if ge (len $containers) 1 }}
            {{ "{{" }}- if not (isset .ObjectMeta.Annotations `kubectl.kubernetes.io/default-logs-container`) }}
            kubectl.kubernetes.io/default-logs-container: "{{ "{{" }} index $containers 0 }}",
            {{ "{{" }}- end }}
            {{ "{{" }}- if not (isset .ObjectMeta.Annotations `kubectl.kubernetes.io/default-container`) }}
            kubectl.kubernetes.io/default-container: "{{ "{{" }} index $containers 0 }}",
            {{ "{{" }}- end }}
            {{ "{{" }}- end }}
            sidecar.istio.io/rewriteAppHTTPProbers: "false",
          }
        spec:
          containers:
          - name: istio-proxy
          {{ "{{" }}- if contains "/" (annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy.image) }}
            image: "{{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/proxyImage` .Values.global.proxy.image }}"
          {{ "{{" }}- else }}
            image: "{{ "{{" }} .ProxyImage }}"
          {{ "{{" }}- end }}
            ports:
            - containerPort: 15020
              protocol: TCP
              name: mesh-metrics
            args:
            - proxy
            - sidecar
            - --domain
            - $(POD_NAMESPACE).svc.{{ "{{" }} .Values.global.proxy.clusterDomain }}
            - --proxyLogLevel={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/logLevel` .Values.global.proxy.logLevel }}
            - --proxyComponentLogLevel={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/componentLogLevel` .Values.global.proxy.componentLogLevel }}
            - --log_output_level={{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/agentLogLevel` .Values.global.logging.level }}
          {{ "{{" }}- if .Values.global.sts.servicePort }}
            - --stsPort={{ "{{" }} .Values.global.sts.servicePort }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.logAsJson }}
            - --log_as_json
          {{ "{{" }}- end }}
            lifecycle:
              postStart:
                exec:
                  command:
                  - pilot-agent
                  - wait
                  - --url=http://localhost:15020/healthz/ready
            env:
            - name: ISTIO_META_GENERATOR
              value: grpc
            - name: OUTPUT_CERTS
              value: /var/lib/istio/data
            {{ "{{" }}- if eq (env "PILOT_ENABLE_INBOUND_PASSTHROUGH" "true") "false" }}
            - name: REWRITE_PROBE_LEGACY_LOCALHOST_DESTINATION
              value: "true"
            {{ "{{" }}- end }}
            - name: JWT_POLICY
              value: {{ "{{" }} .Values.global.jwtPolicy }}
            - name: PILOT_CERT_PROVIDER
              value: {{ "{{" }} .Values.global.pilotCertProvider }}
            - name: CA_ADDR
            {{ "{{" }}- if .Values.global.caAddress }}
              value: {{ "{{" }} .Values.global.caAddress }}
            {{ "{{" }}- else }}
              value: istiod{{ "{{" }}- if not (eq .Values.revision "") }}-{{ "{{" }} .Values.revision }}{{ "{{" }}- end }}.{{ "{{" }} .Values.global.istioNamespace }}.svc:15012
            {{ "{{" }}- end }}
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: INSTANCE_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: SERVICE_ACCOUNT
              valueFrom:
                fieldRef:
                  fieldPath: spec.serviceAccountName
            - name: HOST_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: PROXY_CONFIG
              value: |
                     {{ "{{" }} protoToJSON .ProxyConfig }}
            - name: ISTIO_META_POD_PORTS
              value: |-
                [
                {{ "{{" }}- $first := true }}
                {{ "{{" }}- range $index1, $c := .Spec.Containers }}
                  {{ "{{" }}- range $index2, $p := $c.Ports }}
                    {{ "{{" }}- if (structToJSON $p) }}
                    {{ "{{" }}if not $first}},{{ "{{" }}end}}{{ "{{" }} structToJSON $p }}
                    {{ "{{" }}- $first = false }}
                    {{ "{{" }}- end }}
                  {{ "{{" }}- end}}
                {{ "{{" }}- end}}
                ]
            - name: ISTIO_META_APP_CONTAINERS
              value: "{{ "{{" }} $containers | join "," }}"
            - name: ISTIO_META_CLUSTER_ID
              value: "{{ "{{" }} valueOrDefault .Values.global.multiCluster.clusterName `Kubernetes` }}"
            - name: ISTIO_META_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            {{ "{{" }}- if .Values.global.network }}
            - name: ISTIO_META_NETWORK
              value: "{{ "{{" }} .Values.global.network }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- if .DeploymentMeta.Name }}
            - name: ISTIO_META_WORKLOAD_NAME
              value: "{{ "{{" }} .DeploymentMeta.Name }}"
            {{ "{{" }} end }}
            {{ "{{" }}- if and .TypeMeta.APIVersion .DeploymentMeta.Name }}
            - name: ISTIO_META_OWNER
              value: kubernetes://apis/{{ "{{" }} .TypeMeta.APIVersion }}/namespaces/{{ "{{" }} valueOrDefault .DeploymentMeta.Namespace `default` }}/{{ "{{" }} toLower .TypeMeta.Kind}}s/{{ "{{" }} .DeploymentMeta.Name }}
            {{ "{{" }}- end}}
            {{ "{{" }}- if .Values.global.meshID }}
            - name: ISTIO_META_MESH_ID
              value: "{{ "{{" }} .Values.global.meshID }}"
            {{ "{{" }}- else if (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain) }}
            - name: ISTIO_META_MESH_ID
              value: "{{ "{{" }} (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain) }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- with (valueOrDefault .MeshConfig.TrustDomain .Values.global.trustDomain)  }}
            - name: TRUST_DOMAIN
              value: "{{ "{{" }} . }}"
            {{ "{{" }}- end }}
            {{ "{{" }}- range $key, $value := .ProxyConfig.ProxyMetadata }}
            - name: {{ "{{" }} $key }}
              value: "{{ "{{" }} $value }}"
            {{ "{{" }}- end }}
            # grpc uses xds:/// to resolve – no need to resolve VIP
            - name: ISTIO_META_DNS_CAPTURE
              value: "false"
            - name: DISABLE_ENVOY
              value: "true"
            {{ "{{" }}with .Values.global.imagePullPolicy }}imagePullPolicy: "{{ "{{" }}.}}"{{ "{{" }}end}}
            {{ "{{" }} if ne (annotation .ObjectMeta `status.sidecar.istio.io/port` .Values.global.proxy.statusPort) `0` }}
            readinessProbe:
              httpGet:
                path: /healthz/ready
                port: 15020
              initialDelaySeconds: {{ "{{" }} annotation .ObjectMeta `readiness.status.sidecar.istio.io/initialDelaySeconds` .Values.global.proxy.readinessInitialDelaySeconds }}
              periodSeconds: {{ "{{" }} annotation .ObjectMeta `readiness.status.sidecar.istio.io/periodSeconds` .Values.global.proxy.readinessPeriodSeconds }}
              timeoutSeconds: 3
              failureThreshold: {{ "{{" }} annotation .ObjectMeta `readiness.status.sidecar.istio.io/failureThreshold` .Values.global.proxy.readinessFailureThreshold }}
            resources:
          {{ "{{" }} template "resources" . }}
            volumeMounts:
            - name: workload-socket
              mountPath: /var/run/secrets/workload-spiffe-uds
            {{ "{{" }}- if eq .Values.global.caName "GkeWorkloadCertificate" }}
            - name: gke-workload-certificate
              mountPath: /var/run/secrets/workload-spiffe-credentials
              readOnly: true
            {{ "{{" }}- else }}
            - name: workload-certs
              mountPath: /var/run/secrets/workload-spiffe-credentials
            {{ "{{" }}- end }}
            {{ "{{" }}- if eq .Values.global.pilotCertProvider "istiod" }}
            - mountPath: /var/run/secrets/istio
              name: istiod-ca-cert
            {{ "{{" }}- end }}
            - mountPath: /var/lib/istio/data
              name: istio-data
            # UDS channel between istioagent and gRPC client for XDS/SDS
            - mountPath: /etc/istio/proxy
              name: istio-xds
            {{ "{{" }}- if eq .Values.global.jwtPolicy "third-party-jwt" }}
            - mountPath: /var/run/secrets/tokens
              name: istio-token
            {{ "{{" }}- end }}
            {{ "{{" }}- if .Values.global.mountMtlsCerts }}
            # Use the key and cert mounted to /etc/certs/ for the in-cluster mTLS communications.
            - mountPath: /etc/certs/
              name: istio-certs
              readOnly: true
            {{ "{{" }}- end }}
            - name: istio-podinfo
              mountPath: /etc/istio/pod
            {{ "{{" }}- end }}
              {{ "{{" }}- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount` }}
              {{ "{{" }} range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount`) }}
            - name: "{{ "{{" }}  $index }}"
              {{ "{{" }} toYaml $value | indent 6 }}
              {{ "{{" }} end }}
              {{ "{{" }}- end }}
        {{ "{{" }}- range $index, $container := .Spec.Containers  }}
        {{ "{{" }} if not (eq $container.Name "istio-proxy") }}
          - name: {{ "{{" }} $container.Name }}
            env:
              - name: "GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT"
                value: "true"
              - name: "GRPC_XDS_BOOTSTRAP"
                value: "/etc/istio/proxy/grpc-bootstrap.json"
            volumeMounts:
              - mountPath: /var/lib/istio/data
                name: istio-data
              # UDS channel between istioagent and gRPC client for XDS/SDS
              - mountPath: /etc/istio/proxy
                name: istio-xds
              {{ "{{" }}- if eq $.Values.global.caName "GkeWorkloadCertificate" }}
              - name: gke-workload-certificate
                mountPath: /var/run/secrets/workload-spiffe-credentials
                readOnly: true
              {{ "{{" }}- else }}
              - name: workload-certs
                mountPath: /var/run/secrets/workload-spiffe-credentials
              {{ "{{" }}- end }}
        {{ "{{" }}- end }}
        {{ "{{" }}- end }}
          volumes:
          - emptyDir:
            name: workload-socket
          {{ "{{" }}- if eq .Values.global.caName "GkeWorkloadCertificate" }}
          - name: gke-workload-certificate
            csi:
              driver: workloadcertificates.security.cloud.google.com
          {{ "{{" }}- else }}
          - emptyDir:
            name: workload-certs
          {{ "{{" }}- end }}
          {{ "{{" }}- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) }}
          - name: custom-bootstrap-volume
            configMap:
              name: {{ "{{" }} annotation .ObjectMeta `sidecar.istio.io/bootstrapOverride` "" }}
          {{ "{{" }}- end }}
          # SDS channel between istioagent and Envoy
          - emptyDir:
              medium: Memory
            name: istio-xds
          - name: istio-data
            emptyDir: {}
          - name: istio-podinfo
            downwardAPI:
              items:
                - path: "labels"
                  fieldRef:
                    fieldPath: metadata.labels
                - path: "annotations"
                  fieldRef:
                    fieldPath: metadata.annotations
          {{ "{{" }}- if eq .Values.global.jwtPolicy "third-party-jwt" }}
          - name: istio-token
            projected:
              sources:
              - serviceAccountToken:
                  path: istio-token
                  expirationSeconds: 43200
                  audience: {{ "{{" }} .Values.global.sds.token.aud }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq .Values.global.pilotCertProvider "istiod" }}
          - name: istiod-ca-cert
            configMap:
              name: istio-ca-root-cert
          {{ "{{" }}- end }}
          {{ "{{" }}- if .Values.global.mountMtlsCerts }}
          # Use the key and cert mounted to /etc/certs/ for the in-cluster mTLS communications.
          - name: istio-certs
            secret:
              optional: true
              {{ "{{" }} if eq .Spec.ServiceAccountName "" }}
              secretName: istio.default
              {{ "{{" }} else -}}
              secretName: {{ "{{" }}  printf "istio.%s" .Spec.ServiceAccountName }}
              {{ "{{" }}  end -}}
          {{ "{{" }}- end }}
            {{ "{{" }}- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolume` }}
            {{ "{{" }}range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolume`) }}
          - name: "{{ "{{" }} $index }}"
            {{ "{{" }} toYaml $value | indent 4 }}
            {{ "{{" }} end }}
            {{ "{{" }} end }}
          {{ "{{" }}- if .Values.global.imagePullSecrets }}
          imagePullSecrets:
            {{ "{{" }}- range .Values.global.imagePullSecrets }}
            - name: {{ "{{" }} . }}
            {{ "{{" }}- end }}
          {{ "{{" }}- end }}
          {{ "{{" }}- if eq (env "ENABLE_LEGACY_FSGROUP_INJECTION" "false") "true" }}
          securityContext:
            fsGroup: 1337
          {{ "{{" }}- end }}
  values: |-
    {
      "global": {
        "autoscalingv2API": true,
        "caAddress": "",
        "caName": "",
        "certSigners": [],
        "configCluster": false,
        "configValidation": true,
        "defaultNodeSelector": {},
        "defaultPodDisruptionBudget": {
          "enabled": true
        },
        "defaultResources": {
          "requests": {
            "cpu": "10m"
          }
        },
        "enabled": true,
        "externalIstiod": false,
        "hub": "docker.io/istio",
        "imagePullPolicy": "",
        "imagePullSecrets": [],
        "istioNamespace": "istio-system",
        "istiod": {
          "enableAnalysis": false
        },
        "jwtPolicy": "third-party-jwt",
        "logAsJson": false,
        "logging": {
          "level": "default:info"
        },
        "meshID": "",
        "meshNetworks": {},
        "mountMtlsCerts": false,
        "multiCluster": {
          "clusterName": "",
          "enabled": false
        },
        "namespace": "istio-system",
        "network": "",
        "omitSidecarInjectorConfigMap": false,
        "oneNamespace": false,
        "operatorManageWebhooks": false,
        "pilotCertProvider": "istiod",
        "priorityClassName": "",
        "proxy": {
          "autoInject": "enabled",
          "clusterDomain": "cluster.local",
          "componentLogLevel": "misc:error",
          "enableCoreDump": false,
          "excludeIPRanges": "",
          "excludeInboundPorts": "",
          "excludeOutboundPorts": "",
          "holdApplicationUntilProxyStarts": false,
          "image": "proxyv2",
          "includeIPRanges": "*",
          "includeInboundPorts": "*",
          "includeOutboundPorts": "",
          "logLevel": "warning",
          "privileged": false,
          "readinessFailureThreshold": 30,
          "readinessInitialDelaySeconds": 1,
          "readinessPeriodSeconds": 2,
          "resources": {
            "limits": {
              "cpu": "2000m",
              "memory": "1024Mi"
            },
            "requests": {
              "cpu": "100m",
              "memory": "128Mi"
            }
          },
          "statusPort": 15020,
          "tracer": "zipkin"
        },
        "proxy_init": {
          "image": "proxyv2",
          "resources": {
            "limits": {
              "cpu": "2000m",
              "memory": "1024Mi"
            },
            "requests": {
              "cpu": "10m",
              "memory": "10Mi"
            }
          }
        },
        "remotePilotAddress": "",
        "sds": {
          "token": {
            "aud": "istio-ca"
          }
        },
        "sts": {
          "servicePort": 0
        },
        "tag": "1.17.3",
        "tracer": {
          "datadog": {
            "address": "$(HOST_IP):8126"
          },
          "lightstep": {
            "accessToken": "",
            "address": ""
          },
          "stackdriver": {
            "debug": false,
            "maxNumberOfAnnotations": 200,
            "maxNumberOfAttributes": 200,
            "maxNumberOfMessageEvents": 200
          },
          "zipkin": {
            "address": ""
          }
        },
        "useMCP": false,
        "variant": ""
      },
      "istio_cni": {
        "enabled": false
      },
      "revision": "",
      "sidecarInjectorWebhook": {
        "alwaysInjectSelector": [],
        "defaultTemplates": [],
        "enableNamespacesByDefault": false,
        "injectedAnnotations": {},
        "neverInjectSelector": [],
        "rewriteAppHTTPProbe": true,
        "templates": {}
      }
    }
kind: ConfigMap
metadata:
  labels:
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: Pilot
    release: istio
  name: istio-sidecar-injector
  namespace: istio-system
---
apiVersion: v1
data:
  AFTER_LOGOUT_URL: /
  AUTHSERVICE_URL_PREFIX: /authservice/
  OIDC_AUTH_URL: /dex/auth
  OIDC_PROVIDER: http://dex.auth.svc.cluster.local:5556/dex
  OIDC_SCOPES: profile email groups
  PORT: '"8080"'
  SKIP_AUTH_URLS: /dex
  STORE_PATH: /var/lib/authservice/data.db
  USERID_CLAIM: email
  USERID_HEADER: kubeflow-userid
  USERID_PREFIX: ""
kind: ConfigMap
metadata:
  name: oidc-authservice-parameters
  namespace: istio-system
---
apiVersion: v1
data:
  channel-template-spec: |
    apiVersion: messaging.knative.dev/v1
    kind: InMemoryChannel
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: config-br-default-channel
  namespace: knative-eventing
---
apiVersion: v1
data:
  default-br-config: |
    clusterDefault:
      brokerClass: MTChannelBasedBroker
      apiVersion: v1
      kind: ConfigMap
      name: config-br-default-channel
      namespace: knative-eventing
      delivery:
        retry: 10
        backoffPolicy: exponential
        backoffDelay: PT0.2S
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: config-br-defaults
  namespace: knative-eventing
---
apiVersion: v1
data:
  delivery-retryafter: disabled
  delivery-timeout: enabled
  kreference-group: disabled
  kreference-mapping: disabled
  new-trigger-filters: disabled
  transport-encryption: disabled
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/config-category: eventing
    knative.dev/config-propagation: original
    kustomize.component: knative
  name: config-features
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.

    # this is an example of mapping from pod to addressable-pod service
    # the data key must be of the form "kind.version.group"
    # the data value must be a valid URL. Valid template data are:
    # - Name: reference name
    # - Namespace: reference namespace
    # - SystemNamespace: knative namespace
    # - UID: reference UID
    #
    # Pod.v1: https://addressable-pod.{{ "{{" }} .SystemNamespace }}.svc.cluster.local/{{ "{{" }} .Name }}
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 7375dbe1
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    knative.dev/config-category: eventing
    knative.dev/config-propagation: original
    kustomize.component: knative
  name: config-kreference-mapping
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # lease-duration is how long non-leaders will wait to try to acquire the
    # lock; 15 seconds is the value used by core kubernetes controllers.
    lease-duration: "15s"

    # renew-deadline is how long a leader will try to renew the lease before
    # giving up; 10 seconds is the value used by core kubernetes controllers.
    renew-deadline: "10s"

    # retry-period is how long the leader election client waits between tries of
    # actions; 2 seconds is the value used by core kubernetes controllers.
    retry-period: "2s"

    # buckets is the number of buckets used to partition key space of each
    # Reconciler. If this number is M and the replica number of the controller
    # is N, the N replicas will compete for the M buckets. The owner of a
    # bucket will take care of the reconciling for the keys partitioned into
    # that bucket.
    buckets: "1"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: f7948630
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: config-leader-election
  namespace: knative-eventing
---
apiVersion: v1
data:
  loglevel.controller: info
  loglevel.webhook: info
  zap-logger-config: |
    {
      "level": "info",
      "development": false,
      "outputPaths": ["stdout"],
      "errorOutputPaths": ["stderr"],
      "encoding": "json",
      "encoderConfig": {
        "timeKey": "ts",
        "levelKey": "level",
        "nameKey": "logger",
        "callerKey": "caller",
        "messageKey": "msg",
        "stacktraceKey": "stacktrace",
        "lineEnding": "",
        "levelEncoder": "",
        "timeEncoder": "iso8601",
        "durationEncoder": "",
        "callerEncoder": ""
      }
    }
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/config-category: eventing
    knative.dev/config-propagation: original
    kustomize.component: knative
  name: config-logging
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # metrics.backend-destination field specifies the system metrics destination.
    # It supports either prometheus (the default) or stackdriver.
    # Note: Using stackdriver will incur additional charges
    metrics.backend-destination: prometheus

    # metrics.request-metrics-backend-destination specifies the request metrics
    # destination. If non-empty, it enables queue proxy to send request metrics.
    # Currently supported values: prometheus, stackdriver.
    metrics.request-metrics-backend-destination: prometheus

    # metrics.stackdriver-project-id field specifies the stackdriver project ID. This
    # field is optional. When running on GCE, application default credentials will be
    # used if this field is not provided.
    metrics.stackdriver-project-id: "<your stackdriver project id>"

    # metrics.allow-stackdriver-custom-metrics indicates whether it is allowed to send metrics to
    # Stackdriver using "global" resource type and custom metric type if the
    # metrics are not supported by "knative_broker", "knative_trigger", and "knative_source" resource types.
    # Setting this flag to "true" could cause extra Stackdriver charge.
    # If metrics.backend-destination is not Stackdriver, this is ignored.
    metrics.allow-stackdriver-custom-metrics: "false"

    # profiling.enable indicates whether it is allowed to retrieve runtime profiling data from
    # the pods via an HTTP server in the format expected by the pprof visualization tool. When
    # enabled, the Knative Eventing pods expose the profiling data on an alternate HTTP port 8008.
    # The HTTP context root for profiling is then /debug/pprof/.
    profiling.enable: "false"

    # sink-event-error-reporting.enable whether the adapter reports a kube event to the CRD indicating
    # a failure to send a cloud event to the sink.
    sink-event-error-reporting.enable: "false"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: f46cf09d
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/config-category: eventing
    knative.dev/config-propagation: original
    kustomize.component: knative
  name: config-observability
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # Max number of bytes allowed to be sent for message excluding any
    # base64 decoding. Default is no limit set for data
    data-max-size: -1
kind: ConfigMap
metadata:
  annotations:
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/example-checksum: 9185c153
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    kustomize.component: knative
  name: config-ping-defaults
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################
    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # namespace-selector specifies a LabelSelector which
    # determines which namespaces the Sugar Controller should operate upon
    # Use an empty value to disable the feature (this is the default):
    namespace-selector: ""

    # Use an empty object as a string to enable for all namespaces
    namespace-selector: "{}"

    # trigger-selector specifies a LabelSelector which
    # determines which triggers the Sugar Controller should operate upon
    # Use an empty value to disable the feature (this is the default):
    trigger-selector: ""

    # Use an empty object as string to enable for all triggers
    trigger-selector: "{}"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 62dfac6f
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: config-sugar
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################
    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.
    #
    # This may be "zipkin" or "none". the default is "none"
    backend: "none"

    # URL to zipkin collector where traces are sent.
    # This must be specified when backend is "zipkin"
    zipkin-endpoint: "http://zipkin.istio-system.svc.cluster.local:9411/api/v2/spans"

    # Enable zipkin debug mode. This allows all spans to be sent to the server
    # bypassing sampling.
    debug: "false"

    # Percentage (0-1) of requests to trace
    sample-rate: "0.1"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 0492ceb0
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/config-category: eventing
    knative.dev/config-propagation: original
    kustomize.component: knative
  name: config-tracing
  namespace: knative-eventing
---
apiVersion: v1
data:
  default-ch-config: |
    clusterDefault:
      apiVersion: messaging.knative.dev/v1
      kind: InMemoryChannel
    namespaceDefaults:
      some-namespace:
        apiVersion: messaging.knative.dev/v1
        kind: InMemoryChannel
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: default-ch-webhook
  namespace: knative-eventing
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # The Revision ContainerConcurrency field specifies the maximum number
    # of requests the Container can handle at once. Container concurrency
    # target percentage is how much of that maximum to use in a stable
    # state. E.g. if a Revision specifies ContainerConcurrency of 10, then
    # the Autoscaler will try to maintain 7 concurrent connections per pod
    # on average.
    # Note: this limit will be applied to container concurrency set at every
    # level (ConfigMap, Revision Spec or Annotation).
    # For legacy and backwards compatibility reasons, this value also accepts
    # fractional values in (0, 1] interval (i.e. 0.7 ⇒ 70%).
    # Thus minimal percentage value must be greater than 1.0, or it will be
    # treated as a fraction.
    # NOTE: that this value does not affect actual number of concurrent requests
    #       the user container may receive, but only the average number of requests
    #       that the revision pods will receive.
    container-concurrency-target-percentage: "70"

    # The container concurrency target default is what the Autoscaler will
    # try to maintain when concurrency is used as the scaling metric for the
    # Revision and the Revision specifies unlimited concurrency.
    # When revision explicitly specifies container concurrency, that value
    # will be used as a scaling target for autoscaler.
    # When specifying unlimited concurrency, the autoscaler will
    # horizontally scale the application based on this target concurrency.
    # This is what we call "soft limit" in the documentation, i.e. it only
    # affects number of pods and does not affect the number of requests
    # individual pod processes.
    # The value must be a positive number such that the value multiplied
    # by container-concurrency-target-percentage is greater than 0.01.
    # NOTE: that this value will be adjusted by application of
    #       container-concurrency-target-percentage, i.e. by default
    #       the system will target on average 70 concurrent requests
    #       per revision pod.
    # NOTE: Only one metric can be used for autoscaling a Revision.
    container-concurrency-target-default: "100"

    # The requests per second (RPS) target default is what the Autoscaler will
    # try to maintain when RPS is used as the scaling metric for a Revision and
    # the Revision specifies unlimited RPS. Even when specifying unlimited RPS,
    # the autoscaler will horizontally scale the application based on this
    # target RPS.
    # Must be greater than 1.0.
    # NOTE: Only one metric can be used for autoscaling a Revision.
    requests-per-second-target-default: "200"

    # The target burst capacity specifies the size of burst in concurrent
    # requests that the system operator expects the system will receive.
    # Autoscaler will try to protect the system from queueing by introducing
    # Activator in the request path if the current spare capacity of the
    # service is less than this setting.
    # If this setting is 0, then Activator will be in the request path only
    # when the revision is scaled to 0.
    # If this setting is > 0 and container-concurrency-target-percentage is
    # 100% or 1.0, then activator will always be in the request path.
    # -1 denotes unlimited target-burst-capacity and activator will always
    # be in the request path.
    # Other negative values are invalid.
    target-burst-capacity: "211"

    # When operating in a stable mode, the autoscaler operates on the
    # average concurrency over the stable window.
    # Stable window must be in whole seconds.
    stable-window: "60s"

    # When observed average concurrency during the panic window reaches
    # panic-threshold-percentage the target concurrency, the autoscaler
    # enters panic mode. When operating in panic mode, the autoscaler
    # scales on the average concurrency over the panic window which is
    # panic-window-percentage of the stable-window.
    # Must be in the [1, 100] range.
    # When computing the panic window it will be rounded to the closest
    # whole second, at least 1s.
    panic-window-percentage: "10.0"

    # The percentage of the container concurrency target at which to
    # enter panic mode when reached within the panic window.
    panic-threshold-percentage: "200.0"

    # Max scale up rate limits the rate at which the autoscaler will
    # increase pod count. It is the maximum ratio of desired pods versus
    # observed pods.
    # Cannot be less or equal to 1.
    # I.e with value of 2.0 the number of pods can at most go N to 2N
    # over single Autoscaler period (2s), but at least N to
    # N+1, if Autoscaler needs to scale up.
    max-scale-up-rate: "1000.0"

    # Max scale down rate limits the rate at which the autoscaler will
    # decrease pod count. It is the maximum ratio of observed pods versus
    # desired pods.
    # Cannot be less or equal to 1.
    # I.e. with value of 2.0 the number of pods can at most go N to N/2
    # over single Autoscaler evaluation period (2s), but at
    # least N to N-1, if Autoscaler needs to scale down.
    max-scale-down-rate: "2.0"

    # Scale to zero feature flag.
    enable-scale-to-zero: "true"

    # Scale to zero grace period is the time an inactive revision is left
    # running before it is scaled to zero (must be positive, but recommended
    # at least a few seconds if running with mesh networking).
    # This is the upper limit and is provided not to enforce timeout after
    # the revision stopped receiving requests for stable window, but to
    # ensure network reprogramming to put activator in the path has completed.
    # If the system determines that a shorter period is satisfactory,
    # then the system will only wait that amount of time before scaling to 0.
    # NOTE: this period might actually be 0, if activator has been
    # in the request path sufficiently long.
    # If there is necessity for the last pod to linger longer use
    # scale-to-zero-pod-retention-period flag.
    scale-to-zero-grace-period: "30s"

    # Scale to zero pod retention period defines the minimum amount
    # of time the last pod will remain after Autoscaler has decided to
    # scale to zero.
    # This flag is for the situations where the pod startup is very expensive
    # and the traffic is bursty (requiring smaller windows for fast action),
    # but patchy.
    # The larger of this flag and `scale-to-zero-grace-period` will effectively
    # determine how the last pod will hang around.
    scale-to-zero-pod-retention-period: "0s"

    # pod-autoscaler-class specifies the default pod autoscaler class
    # that should be used if none is specified. If omitted,
    # the Knative Pod Autoscaler (KPA) is used by default.
    pod-autoscaler-class: "kpa.autoscaling.knative.dev"

    # The capacity of a single activator task.
    # The `unit` is one concurrent request proxied by the activator.
    # activator-capacity must be at least 1.
    # This value is used for computation of the Activator subset size.
    # See the algorithm here: http://bit.ly/38XiCZ3.
    # TODO(vagababov): tune after actual benchmarking.
    activator-capacity: "100.0"

    # initial-scale is the cluster-wide default value for the initial target
    # scale of a revision after creation, unless overridden by the
    # "autoscaling.knative.dev/initialScale" annotation.
    # This value must be greater than 0 unless allow-zero-initial-scale is true.
    initial-scale: "1"

    # allow-zero-initial-scale controls whether either the cluster-wide initial-scale flag,
    # or the "autoscaling.knative.dev/initialScale" annotation, can be set to 0.
    allow-zero-initial-scale: "false"

    # min-scale is the cluster-wide default value for the min scale of a revision,
    # unless overridden by the "autoscaling.knative.dev/minScale" annotation.
    min-scale: "0"

    # max-scale is the cluster-wide default value for the max scale of a revision,
    # unless overridden by the "autoscaling.knative.dev/maxScale" annotation.
    # If set to 0, the revision has no maximum scale.
    max-scale: "0"

    # scale-down-delay is the amount of time that must pass at reduced
    # concurrency before a scale down decision is applied. This can be useful,
    # for example, to maintain replica count and avoid a cold start penalty if
    # more requests come in within the scale down delay period.
    # The default, 0s, imposes no delay at all.
    scale-down-delay: "0s"

    # max-scale-limit sets the maximum permitted value for the max scale of a revision.
    # When this is set to a positive value, a revision with a maxScale above that value
    # (including a maxScale of "0" = unlimited) is disallowed.
    # A value of zero (the default) allows any limit, including unlimited.
    max-scale-limit: "0"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 47c2487f
  labels:
    app.kubernetes.io/component: autoscaler
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-autoscaler
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # revision-timeout-seconds contains the default number of
    # seconds to use for the revision's per-request timeout, if
    # none is specified.
    revision-timeout-seconds: "300"  # 5 minutes

    # max-revision-timeout-seconds contains the maximum number of
    # seconds that can be used for revision-timeout-seconds.
    # This value must be greater than or equal to revision-timeout-seconds.
    # If omitted, the system default is used (600 seconds).
    #
    # If this value is increased, the activator's terminationGraceTimeSeconds
    # should also be increased to prevent in-flight requests being disrupted.
    max-revision-timeout-seconds: "600"  # 10 minutes

    # revision-response-start-timeout-seconds contains the default number of
    # seconds a request will be allowed to stay open while waiting to
    # receive any bytes from the user's application, if none is specified.
    #
    # This defaults to 'revision-timeout-seconds'
    revision-response-start-timeout-seconds: "300"

    # revision-idle-timeout-seconds contains the default number of
    # seconds a request will be allowed to stay open while not receiving any
    # bytes from the user's application, if none is specified.
    revision-idle-timeout-seconds: "0"  # infinite

    # revision-cpu-request contains the cpu allocation to assign
    # to revisions by default.  If omitted, no value is specified
    # and the system default is used.
    # Below is an example of setting revision-cpu-request.
    # By default, it is not set by Knative.
    revision-cpu-request: "400m"  # 0.4 of a CPU (aka 400 milli-CPU)

    # revision-memory-request contains the memory allocation to assign
    # to revisions by default.  If omitted, no value is specified
    # and the system default is used.
    # Below is an example of setting revision-memory-request.
    # By default, it is not set by Knative.
    revision-memory-request: "100M"  # 100 megabytes of memory

    # revision-ephemeral-storage-request contains the ephemeral storage
    # allocation to assign to revisions by default.  If omitted, no value is
    # specified and the system default is used.
    revision-ephemeral-storage-request: "500M"  # 500 megabytes of storage

    # revision-cpu-limit contains the cpu allocation to limit
    # revisions to by default.  If omitted, no value is specified
    # and the system default is used.
    # Below is an example of setting revision-cpu-limit.
    # By default, it is not set by Knative.
    revision-cpu-limit: "1000m"  # 1 CPU (aka 1000 milli-CPU)

    # revision-memory-limit contains the memory allocation to limit
    # revisions to by default.  If omitted, no value is specified
    # and the system default is used.
    # Below is an example of setting revision-memory-limit.
    # By default, it is not set by Knative.
    revision-memory-limit: "200M"  # 200 megabytes of memory

    # revision-ephemeral-storage-limit contains the ephemeral storage
    # allocation to limit revisions to by default.  If omitted, no value is
    # specified and the system default is used.
    revision-ephemeral-storage-limit: "750M"  # 750 megabytes of storage

    # container-name-template contains a template for the default
    # container name, if none is specified.  This field supports
    # Go templating and is supplied with the ObjectMeta of the
    # enclosing Service or Configuration, so values such as
    # {{ "{{" }}.Name}} are also valid.
    container-name-template: "user-container"

    # init-container-name-template contains a template for the default
    # init container name, if none is specified.  This field supports
    # Go templating and is supplied with the ObjectMeta of the
    # enclosing Service or Configuration, so values such as
    # {{ "{{" }}.Name}} are also valid.
    init-container-name-template: "init-container"

    # container-concurrency specifies the maximum number
    # of requests the Container can handle at once, and requests
    # above this threshold are queued.  Setting a value of zero
    # disables this throttling and lets through as many requests as
    # the pod receives.
    container-concurrency: "0"

    # The container concurrency max limit is an operator setting ensuring that
    # the individual revisions cannot have arbitrary large concurrency
    # values, or autoscaling targets. `container-concurrency` default setting
    # must be at or below this value.
    #
    # Must be greater than 1.
    #
    # Note: even with this set, a user can choose a containerConcurrency
    # of 0 (i.e. unbounded) unless allow-container-concurrency-zero is
    # set to "false".
    container-concurrency-max-limit: "1000"

    # allow-container-concurrency-zero controls whether users can
    # specify 0 (i.e. unbounded) for containerConcurrency.
    allow-container-concurrency-zero: "true"

    # enable-service-links specifies the default value used for the
    # enableServiceLinks field of the PodSpec, when it is omitted by the user.
    # See: https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#accessing-the-service
    #
    # This is a tri-state flag with possible values of (true|false|default).
    #
    # In environments with large number of services it is suggested
    # to set this value to `false`.
    # See https://github.com/knative/serving/issues/8498.
    enable-service-links: "false"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: e7973912
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-defaults
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |-
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # List of repositories for which tag to digest resolving should be skipped
    registries-skipping-tag-resolving: "kind.local,ko.local,dev.local"

    # Maximum time allowed for an image's digests to be resolved.
    digest-resolution-timeout: "10s"

    # Duration we wait for the deployment to be ready before considering it failed.
    progress-deadline: "600s"

    # Sets the queue proxy's CPU request.
    # If omitted, a default value (currently "25m"), is used.
    queue-sidecar-cpu-request: "25m"

    # Sets the queue proxy's CPU limit.
    # If omitted, no value is specified and the system default is used.
    queue-sidecar-cpu-limit: "1000m"

    # Sets the queue proxy's memory request.
    # If omitted, no value is specified and the system default is used.
    queue-sidecar-memory-request: "400Mi"

    # Sets the queue proxy's memory limit.
    # If omitted, no value is specified and the system default is used.
    queue-sidecar-memory-limit: "800Mi"

    # Sets the queue proxy's ephemeral storage request.
    # If omitted, no value is specified and the system default is used.
    queue-sidecar-ephemeral-storage-request: "512Mi"

    # Sets the queue proxy's ephemeral storage limit.
    # If omitted, no value is specified and the system default is used.
    queue-sidecar-ephemeral-storage-limit: "1024Mi"

    # Sets tokens associated with specific audiences for queue proxy - used by QPOptions
    #
    # For example, to add the `service-x` audience:
    #    queue-sidecar-token-audiences: "service-x"
    # Also supports a list of audiences, for example:
    #    queue-sidecar-token-audiences: "service-x,service-y"
    # If omitted, or empty, no tokens are created
    queue-sidecar-token-audiences: ""

    # Sets rootCA for the queue proxy - used by QPOptions
    # If omitted, or empty, no rootCA is added to the golang rootCAs
    queue-sidecar-rootca: ""
  progressDeadline: 600s
  queue-sidecar-image: gcr.io/knative-releases/knative.dev/serving/cmd/queue@sha256:dabaecec38860ca4c972e6821d5dc825549faf50c6feb8feb4c04802f2338b8a
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 410041a0
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-deployment
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # Default value for domain.
    # Routes having the cluster domain suffix (by default 'svc.cluster.local')
    # will not be exposed through Ingress. You can define your own label
    # selector to assign that domain suffix to your Route here, or you can set
    # the label
    #    "networking.knative.dev/visibility=cluster-local"
    # to achieve the same effect.  This shows how to make routes having
    # the label app=secret only exposed to the local cluster.
    svc.cluster.local: |
      selector:
        app: secret

    # These are example settings of domain.
    # example.com will be used for all routes, but it is the least-specific rule so it
    # will only be used if no other domain matches.
    example.com: |

    # example.org will be used for routes having app=nonprofit.
    example.org: |
      selector:
        app: nonprofit
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 26c09de5
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-domain
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |-
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # Default SecurityContext settings to secure-by-default values
    # if unset.
    #
    # This value will default to "enabled" in a future release,
    # probably Knative 1.10
    secure-pod-defaults: "disabled"

    # Indicates whether multi container support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#multi-containers
    multi-container: "enabled"

    # Indicates whether Kubernetes affinity support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-node-affinity
    kubernetes.podspec-affinity: "disabled"

    # Indicates whether Kubernetes topologySpreadConstraints support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-topology-spread-constraints
    kubernetes.podspec-topologyspreadconstraints: "disabled"

    # Indicates whether Kubernetes hostAliases support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-host-aliases
    kubernetes.podspec-hostaliases: "disabled"

    # Indicates whether Kubernetes nodeSelector support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-node-selector
    kubernetes.podspec-nodeselector: "disabled"

    # Indicates whether Kubernetes tolerations support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-toleration
    kubernetes.podspec-tolerations: "disabled"

    # Indicates whether Kubernetes FieldRef support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-fieldref
    kubernetes.podspec-fieldref: "disabled"

    # Indicates whether Kubernetes RuntimeClassName support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-runtime-class
    kubernetes.podspec-runtimeclassname: "disabled"

    # Indicates whether Kubernetes DNSPolicy support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-dnspolicy
    kubernetes.podspec-dnspolicy: "disabled"

    # Indicates whether Kubernetes DNSConfig support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-dnsconfig
    kubernetes.podspec-dnsconfig: "disabled"

    # This feature allows end-users to set a subset of fields on the Pod's SecurityContext
    #
    # When set to "enabled" or "allowed" it allows the following
    # PodSecurityContext properties:
    # - FSGroup
    # - RunAsGroup
    # - RunAsNonRoot
    # - SupplementalGroups
    # - RunAsUser
    # - SeccompProfile
    #
    # This feature flag should be used with caution as the PodSecurityContext
    # properties may have a side-effect on non-user sidecar containers that come
    # from Knative or your service mesh
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-security-context
    kubernetes.podspec-securitycontext: "disabled"

    # Indicates whether Kubernetes PriorityClassName support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-priority-class-name
    kubernetes.podspec-priorityclassname: "disabled"

    # Indicates whether Kubernetes SchedulerName support is enabled
    #
    # WARNING: Cannot safely be disabled once enabled.
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-scheduler-name
    kubernetes.podspec-schedulername: "disabled"

    # This feature flag allows end-users to add a subset of capabilities on the Pod's SecurityContext.
    #
    # When set to "enabled" or "allowed" it allows capabilities to be added to the container.
    # For a list of possible capabilities, see https://man7.org/linux/man-pages/man7/capabilities.7.html
    kubernetes.containerspec-addcapabilities: "disabled"

    # This feature validates PodSpecs from the validating webhook
    # against the K8s API Server.
    #
    # When "enabled", the server will always run the extra validation.
    # When "allowed", the server will not run the dry-run validation by default.
    #   However, clients may enable the behavior on an individual Service by
    #   attaching the following metadata annotation: "features.knative.dev/podspec-dryrun":"enabled".
    # See: https://knative.dev/docs/serving/feature-flags/#kubernetes-dry-run
    kubernetes.podspec-dryrun: "allowed"

    # Controls whether tag header based routing feature are enabled or not.
    # 1. Enabled: enabling tag header based routing
    # 2. Disabled: disabling tag header based routing
    # See: https://knative.dev/docs/serving/feature-flags/#tag-header-based-routing
    tag-header-based-routing: "disabled"

    # Controls whether http2 auto-detection should be enabled or not.
    # 1. Enabled: http2 connection will be attempted via upgrade.
    # 2. Disabled: http2 connection will only be attempted when port name is set to "h2c".
    autodetect-http2: "disabled"

    # Controls whether volume support for EmptyDir is enabled or not.
    # 1. Enabled: enabling EmptyDir volume support
    # 2. Disabled: disabling EmptyDir volume support
    kubernetes.podspec-volumes-emptydir: "enabled"

    # Controls whether init containers support is enabled or not.
    # 1. Enabled: enabling init containers support
    # 2. Disabled: disabling init containers support
    kubernetes.podspec-init-containers: "disabled"

    # Controls whether persistent volume claim support is enabled or not.
    # 1. Enabled: enabling persistent volume claim support
    # 2. Disabled: disabling persistent volume claim support
    kubernetes.podspec-persistent-volume-claim: "disabled"

    # Controls whether write access for persistent volumes is enabled or not.
    # 1. Enabled: enabling write access for persistent volumes
    # 2. Disabled: disabling write access for persistent volumes
    kubernetes.podspec-persistent-volume-write: "disabled"

    # Controls if the queue proxy podInfo feature is enabled, allowed or disabled
    #
    # This feature should be enabled/allowed when using queue proxy Options (Extensions)
    # Enabling will mount a podInfo volume to the queue proxy container.
    # The volume will contains an 'annotations' file (from the pod's annotation field).
    # The annotations in this file include the Service annotations set by the client creating the service.
    # If mounted, the annotations can be accessed by queue proxy extensions at /etc/podinfo/annnotations
    #
    # 1. "enabled": always mount a podInfo volume
    # 2. "disabled": never mount a podInfo volume
    # 3. "allowed": by default, do not mount a podInfo volume
    #   However, a client may mount the podInfo volume on an individual Service by attaching
    #   the following metadata annotation to the Service: "features.knative.dev/queueproxy-podinfo":"enabled".
    #
    # NOTE THAT THIS IS AN EXPERIMENTAL / ALPHA FEATURE
    queueproxy.mount-podinfo: "disabled"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: d3565159
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-features
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # ---------------------------------------
    # Garbage Collector Settings
    # ---------------------------------------
    #
    # Active
    #   * Revisions which are referenced by a Route are considered active.
    #   * Individual revisions may be marked with the annotation
    #      "serving.knative.dev/no-gc":"true" to be permanently considered active.
    #   * Active revisions are not considered for GC.
    # Retention
    #   * Revisions are retained if they are any of the following:
    #       1. Active
    #       2. Were created within "retain-since-create-time"
    #       3. Were last referenced by a route within
    #           "retain-since-last-active-time"
    #       4. There are fewer than "min-non-active-revisions"
    #     If none of these conditions are met, or if the count of revisions exceed
    #      "max-non-active-revisions", they will be deleted by GC.
    #     The special value "disabled" may be used to turn off these limits.
    #
    # Example config to immediately collect any inactive revision:
    #    min-non-active-revisions: "0"
    #    max-non-active-revisions: "0"
    #    retain-since-create-time: "disabled"
    #    retain-since-last-active-time: "disabled"
    #
    # Example config to always keep around the last ten non-active revisions:
    #     retain-since-create-time: "disabled"
    #     retain-since-last-active-time: "disabled"
    #     max-non-active-revisions: "10"
    #
    # Example config to disable all garbage collection:
    #     retain-since-create-time: "disabled"
    #     retain-since-last-active-time: "disabled"
    #     max-non-active-revisions: "disabled"
    #
    # Example config to keep recently deployed or active revisions,
    # always maintain the last two in case of rollback, and prevent
    # burst activity from exploding the count of old revisions:
    #      retain-since-create-time: "48h"
    #      retain-since-last-active-time: "15h"
    #      min-non-active-revisions: "2"
    #      max-non-active-revisions: "1000"

    # Duration since creation before considering a revision for GC or "disabled".
    retain-since-create-time: "48h"

    # Duration since active before considering a revision for GC or "disabled".
    retain-since-last-active-time: "15h"

    # Minimum number of non-active revisions to retain.
    min-non-active-revisions: "20"

    # Maximum number of non-active revisions to retain
    # or "disabled" to disable any maximum limit.
    max-non-active-revisions: "1000"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: aa3813a8
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-gc
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # A gateway and Istio service to serve external traffic.
    # The configuration format should be
    # `gateway.{{ "{{" }}gateway_namespace}}.{{ "{{" }}gateway_name}}: "{{ "{{" }}ingress_name}}.{{ "{{" }}ingress_namespace}}.svc.cluster.local"`.
    # The {{ "{{" }}gateway_namespace}} is optional; when it is omitted, the system will search for
    # the gateway in the serving system namespace `knative-serving`
    gateway.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"

    # A cluster local gateway to allow pods outside of the mesh to access
    # Services and Routes not exposing through an ingress.  If the users
    # do have a service mesh setup, this isn't required and can be removed.
    #
    # An example use case is when users want to use Istio without any
    # sidecar injection (like Knative's istio-ci-no-mesh.yaml).  Since every pod
    # is outside of the service mesh in that case, a cluster-local  service
    # will need to be exposed to a cluster-local gateway to be accessible.
    # The configuration format should be `local-gateway.{{ "{{" }}local_gateway_namespace}}.
    # {{ "{{" }}local_gateway_name}}: "{{ "{{" }}cluster_local_gateway_name}}.
    # {{ "{{" }}cluster_local_gateway_namespace}}.svc.cluster.local"`. The
    # {{ "{{" }}local_gateway_namespace}} is optional; when it is omitted, the system
    # will search for the local gateway in the serving system namespace
    # `knative-serving`
    local-gateway.knative-serving.knative-local-gateway: "knative-local-gateway.istio-system.svc.cluster.local"

    # If true, knative will use the Istio VirtualService's status to determine
    # endpoint readiness. Otherwise, probe as usual.
    # NOTE: This feature is currently experimental and should not be used in production.
    enable-virtualservice-status: "false"
  gateway.kubeflow.kubeflow-gateway: istio-ingressgateway.istio-system.svc.cluster.local
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: config-istio
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # lease-duration is how long non-leaders will wait to try to acquire the
    # lock; 15 seconds is the value used by core kubernetes controllers.
    lease-duration: "60s"

    # renew-deadline is how long a leader will try to renew the lease before
    # giving up; 10 seconds is the value used by core kubernetes controllers.
    renew-deadline: "40s"

    # retry-period is how long the leader election client waits between tries of
    # actions; 2 seconds is the value used by core kubernetes controllers.
    retry-period: "10s"

    # buckets is the number of buckets used to partition key space of each
    # Reconciler. If this number is M and the replica number of the controller
    # is N, the N replicas will compete for the M buckets. The owner of a
    # bucket will take care of the reconciling for the keys partitioned into
    # that bucket.
    buckets: "1"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: f4b71f57
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-leader-election
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # Common configuration for all Knative codebase
    zap-logger-config: |
      {
        "level": "info",
        "development": false,
        "outputPaths": ["stdout"],
        "errorOutputPaths": ["stderr"],
        "encoding": "json",
        "encoderConfig": {
          "timeKey": "timestamp",
          "levelKey": "severity",
          "nameKey": "logger",
          "callerKey": "caller",
          "messageKey": "message",
          "stacktraceKey": "stacktrace",
          "lineEnding": "",
          "levelEncoder": "",
          "timeEncoder": "iso8601",
          "durationEncoder": "",
          "callerEncoder": ""
        }
      }

    # Log level overrides
    # For all components except the queue proxy,
    # changes are picked up immediately.
    # For queue proxy, changes require recreation of the pods.
    loglevel.controller: "info"
    loglevel.autoscaler: "info"
    loglevel.queueproxy: "info"
    loglevel.webhook: "info"
    loglevel.activator: "info"
    loglevel.hpaautoscaler: "info"
    loglevel.net-certmanager-controller: "info"
    loglevel.net-istio-controller: "info"
    loglevel.net-contour-controller: "info"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: b0f3c6f2
  labels:
    app.kubernetes.io/component: logging
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-logging
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # ingress-class specifies the default ingress class
    # to use when not dictated by Route annotation.
    #
    # If not specified, will use the Istio ingress.
    #
    # Note that changing the Ingress class of an existing Route
    # will result in undefined behavior.  Therefore it is best to only
    # update this value during the setup of Knative, to avoid getting
    # undefined behavior.
    ingress-class: "istio.ingress.networking.knative.dev"

    # certificate-class specifies the default Certificate class
    # to use when not dictated by Route annotation.
    #
    # If not specified, will use the Cert-Manager Certificate.
    #
    # Note that changing the Certificate class of an existing Route
    # will result in undefined behavior.  Therefore it is best to only
    # update this value during the setup of Knative, to avoid getting
    # undefined behavior.
    certificate-class: "cert-manager.certificate.networking.knative.dev"

    # namespace-wildcard-cert-selector specifies a LabelSelector which
    # determines which namespaces should have a wildcard certificate
    # provisioned.
    #
    # Use an empty value to disable the feature (this is the default):
    #   namespace-wildcard-cert-selector: ""
    #
    # Use an empty object to enable for all namespaces
    #   namespace-wildcard-cert-selector: {}
    #
    # Useful labels include the "kubernetes.io/metadata.name" label to
    # avoid provisioning a certifcate for the "kube-system" namespaces.
    # Use the following selector to match pre-1.0 behavior of using
    # "networking.knative.dev/disableWildcardCert" to exclude namespaces:
    #
    # matchExpressions:
    # - key: "networking.knative.dev/disableWildcardCert"
    #   operator: "NotIn"
    #   values: ["true"]
    namespace-wildcard-cert-selector: ""

    # domain-template specifies the golang text template string to use
    # when constructing the Knative service's DNS name. The default
    # value is "{{ "{{" }}.Name}}.{{ "{{" }}.Namespace}}.{{ "{{" }}.Domain}}".
    #
    # Valid variables defined in the template include Name, Namespace, Domain,
    # Labels, and Annotations. Name will be the result of the tagTemplate
    # below, if a tag is specified for the route.
    #
    # Changing this value might be necessary when the extra levels in
    # the domain name generated is problematic for wildcard certificates
    # that only support a single level of domain name added to the
    # certificate's domain. In those cases you might consider using a value
    # of "{{ "{{" }}.Name}}-{{ "{{" }}.Namespace}}.{{ "{{" }}.Domain}}", or removing the Namespace
    # entirely from the template. When choosing a new value be thoughtful
    # of the potential for conflicts - for example, when users choose to use
    # characters such as `-` in their service, or namespace, names.
    # {{ "{{" }}.Annotations}} or {{ "{{" }}.Labels}} can be used for any customization in the
    # go template if needed.
    # We strongly recommend keeping namespace part of the template to avoid
    # domain name clashes:
    # eg. '{{ "{{" }}.Name}}-{{ "{{" }}.Namespace}}.{{ "{{" }} index .Annotations "sub"}}.{{ "{{" }}.Domain}}'
    # and you have an annotation {"sub":"foo"}, then the generated template
    # would be {Name}-{Namespace}.foo.{Domain}
    domain-template: "{{ "{{" }}.Name}}.{{ "{{" }}.Namespace}}.{{ "{{" }}.Domain}}"

    # tagTemplate specifies the golang text template string to use
    # when constructing the DNS name for "tags" within the traffic blocks
    # of Routes and Configuration.  This is used in conjunction with the
    # domainTemplate above to determine the full URL for the tag.
    tag-template: "{{ "{{" }}.Tag}}-{{ "{{" }}.Name}}"

    # Controls whether TLS certificates are automatically provisioned and
    # installed in the Knative ingress to terminate external TLS connection.
    # 1. Enabled: enabling auto-TLS feature.
    # 2. Disabled: disabling auto-TLS feature.
    auto-tls: "Disabled"

    # Controls the behavior of the HTTP endpoint for the Knative ingress.
    # It requires autoTLS to be enabled.
    # 1. Enabled: The Knative ingress will be able to serve HTTP connection.
    # 2. Redirected: The Knative ingress will send a 301 redirect for all
    # http connections, asking the clients to use HTTPS.
    #
    # "Disabled" option is deprecated.
    http-protocol: "Enabled"

    # rollout-duration contains the minimal duration in seconds over which the
    # Configuration traffic targets are rolled out to the newest revision.
    rollout-duration: "0"

    # autocreate-cluster-domain-claims controls whether ClusterDomainClaims should
    # be automatically created (and deleted) as needed when DomainMappings are
    # reconciled.
    #
    # If this is "false" (the default), the cluster administrator is
    # responsible for creating ClusterDomainClaims and delegating them to
    # namespaces via their spec.Namespace field. This setting should be used in
    # multitenant environments which need to control which namespace can use a
    # particular domain name in a domain mapping.
    #
    # If this is "true", users are able to associate arbitrary names with their
    # services via the DomainMapping feature.
    autocreate-cluster-domain-claims: "false"

    # If true, networking plugins can add additional information to deployed
    # applications to make their pods directly accessible via their IPs even if mesh is
    # enabled and thus direct-addressability is usually not possible.
    # Consumers like Knative Serving can use this setting to adjust their behavior
    # accordingly, i.e. to drop fallback solutions for non-pod-addressable systems.
    #
    # NOTE: This flag is in an alpha state and is mostly here to enable internal testing
    #       for now. Use with caution.
    enable-mesh-pod-addressability: "false"

    # mesh-compatibility-mode indicates whether consumers of network plugins
    # should directly contact Pod IPs (most efficient), or should use the
    # Cluster IP (less efficient, needed when mesh is enabled unless
    # `enable-mesh-pod-addressability`, above, is set).
    # Permitted values are:
    #  - "auto" (default): automatically determine which mesh mode to use by trying Pod IP and falling back to Cluster IP as needed.
    #  - "enabled": always use Cluster IP and do not attempt to use Pod IPs.
    #  - "disabled": always use Pod IPs and do not fall back to Cluster IP on failure.
    mesh-compatibility-mode: "auto"

    # Defines the scheme used for external URLs if autoTLS is not enabled.
    # This can be used for making Knative report all URLs as "HTTPS" for example, if you're
    # fronting Knative with an external loadbalancer that deals with TLS termination and
    # Knative doesn't know about that otherwise.
    default-external-scheme: "http"

    # internal-encryption indicates whether internal traffic is encrypted or not.
    # If this is "true", the following traffic are encrypted:
    #  - ingress to activator
    #  - ingress to queue-proxy
    #  - activator to queue-proxy
    #
    # NOTE: This flag is in an alpha state and is mostly here to enable internal testing
    #       for now. Use with caution.
    internal-encryption: "false"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: 73d96d1b
  labels:
    app.kubernetes.io/component: networking
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-network
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # logging.enable-var-log-collection defaults to false.
    # The fluentd daemon set will be set up to collect /var/log if
    # this flag is true.
    logging.enable-var-log-collection: "false"

    # logging.revision-url-template provides a template to use for producing the
    # logging URL that is injected into the status of each Revision.
    logging.revision-url-template: "http://logging.example.com/?revisionUID=${REVISION_UID}"

    # If non-empty, this enables queue proxy writing user request logs to stdout, excluding probe
    # requests.
    # NB: after 0.18 release logging.enable-request-log must be explicitly set to true
    # in order for request logging to be enabled.
    #
    # The value determines the shape of the request logs and it must be a valid go text/template.
    # It is important to keep this as a single line. Multiple lines are parsed as separate entities
    # by most collection agents and will split the request logs into multiple records.
    #
    # The following fields and functions are available to the template:
    #
    # Request: An http.Request (see https://golang.org/pkg/net/http/#Request)
    # representing an HTTP request received by the server.
    #
    # Response:
    # struct {
    #   Code    int       // HTTP status code (see https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)
    #   Size    int       // An int representing the size of the response.
    #   Latency float64   // A float64 representing the latency of the response in seconds.
    # }
    #
    # Revision:
    # struct {
    #   Name          string  // Knative revision name
    #   Namespace     string  // Knative revision namespace
    #   Service       string  // Knative service name
    #   Configuration string  // Knative configuration name
    #   PodName       string  // Name of the pod hosting the revision
    #   PodIP         string  // IP of the pod hosting the revision
    # }
    #
    logging.request-log-template: '{"httpRequest": {"requestMethod": "{{ "{{" }}.Request.Method}}", "requestUrl": "{{ "{{" }}js .Request.RequestURI}}", "requestSize": "{{ "{{" }}.Request.ContentLength}}", "status": {{ "{{" }}.Response.Code}}, "responseSize": "{{ "{{" }}.Response.Size}}", "userAgent": "{{ "{{" }}js .Request.UserAgent}}", "remoteIp": "{{ "{{" }}js .Request.RemoteAddr}}", "serverIp": "{{ "{{" }}.Revision.PodIP}}", "referer": "{{ "{{" }}js .Request.Referer}}", "latency": "{{ "{{" }}.Response.Latency}}s", "protocol": "{{ "{{" }}.Request.Proto}}"}, "traceId": "{{ "{{" }}index .Request.Header "X-B3-Traceid"}}"}'

    # If true, the request logging will be enabled.
    # NB: up to and including Knative version 0.18 if logging.request-log-template is non-empty, this value
    # will be ignored.
    logging.enable-request-log: "false"

    # If true, this enables queue proxy writing request logs for probe requests to stdout.
    # It uses the same template for user requests, i.e. logging.request-log-template.
    logging.enable-probe-request-log: "false"

    # metrics.backend-destination field specifies the system metrics destination.
    # It supports either prometheus (the default) or opencensus.
    metrics.backend-destination: prometheus

    # metrics.request-metrics-backend-destination specifies the request metrics
    # destination. It enables queue proxy to send request metrics.
    # Currently supported values: prometheus (the default), opencensus.
    metrics.request-metrics-backend-destination: prometheus

    # profiling.enable indicates whether it is allowed to retrieve runtime profiling data from
    # the pods via an HTTP server in the format expected by the pprof visualization tool. When
    # enabled, the Knative Serving pods expose the profiling data on an alternate HTTP port 8008.
    # The HTTP context root for profiling is then /debug/pprof/.
    profiling.enable: "false"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: fed4756e
  labels:
    app.kubernetes.io/component: observability
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-observability
  namespace: knative-serving
---
apiVersion: v1
data:
  _example: |
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.
    #
    # This may be "zipkin" or "none" (default)
    backend: "none"

    # URL to zipkin collector where traces are sent.
    # This must be specified when backend is "zipkin"
    zipkin-endpoint: "http://zipkin.istio-system.svc.cluster.local:9411/api/v2/spans"

    # Enable zipkin debug mode. This allows all spans to be sent to the server
    # bypassing sampling.
    debug: "false"

    # Percentage (0-1) of requests to trace
    sample-rate: "0.1"
kind: ConfigMap
metadata:
  annotations:
    knative.dev/example-checksum: "26614636"
  labels:
    app.kubernetes.io/component: tracing
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config-tracing
  namespace: knative-serving
---
apiVersion: v1
data:
  links: |-
    {
      "menuLinks": [
        {
          "type": "item",
          "link": "/jupyter/",
          "text": "Notebooks",
          "icon": "book"
        },
        {
          "type": "item",
          "link": "/tensorboards/",
          "text": "Tensorboards",
          "icon": "assessment"
        },
        {
          "type": "item",
          "link": "/volumes/",
          "text": "Volumes",
          "icon": "device:storage"
        },
        {
          "type": "item",
          "link": "/kserve-endpoints/",
          "text": "Endpoints",
          "icon": "kubeflow:models"
        },
        {
          "type": "item",
          "link": "/katib/",
          "text": "Experiments (AutoML)",
          "icon": "kubeflow:katib"
        },
        {
          "type": "item",
          "text": "Experiments (KFP)",
          "link": "/pipeline/#/experiments",
          "icon": "done-all"
        },
        {
          "type": "item",
          "link": "/pipeline/#/pipelines",
          "text": "Pipelines",
          "icon": "kubeflow:pipeline-centered"
        },
        {
          "type": "item",
          "link": "/pipeline/#/runs",
          "text": "Runs",
          "icon": "maps:directions-run"
        },
        {
          "type": "item",
          "link": "/pipeline/#/recurringruns",
          "text": "Recurring Runs",
          "icon": "device:access-alarm"
        },
        {
          "type": "item",
          "link": "/pipeline/#/artifacts",
          "text": "Artifacts",
          "icon": "editor:bubble-chart"
        },
        {
          "type": "item",
          "link": "/pipeline/#/executions",
          "text": "Executions",
          "icon": "av:play-arrow"
        }
      ],
      "externalLinks": [ ],
        "quickLinks": [
          {
            "text": "Upload a pipeline",
            "desc": "Pipelines",
            "link": "/pipeline/"
          },
          {
            "text": "View all pipeline runs",
            "desc": "Pipelines",
            "link": "/pipeline/#/runs"
          },
          {
            "text": "Create a new Notebook server",
            "desc": "Notebook Servers",
            "link": "/jupyter/new?namespace=kubeflow"
          },
          {
            "text": "View Katib Experiments",
            "desc": "Katib",
            "link": "/katib/"
          }
        ],
        "documentationItems": [
          {
            "text": "Getting Started with Kubeflow",
            "desc": "Get your machine-learning workflow up and running on Kubeflow",
            "link": "https://www.kubeflow.org/docs/started/getting-started/"
          },
          {
            "text": "MiniKF",
            "desc": "A fast and easy way to deploy Kubeflow locally",
            "link": "https://www.kubeflow.org/docs/distributions/minikf/"
          },
          {
            "text": "Microk8s for Kubeflow",
            "desc": "Quickly get Kubeflow running locally on native hypervisors",
            "link": "https://www.kubeflow.org/docs/distributions/microk8s/kubeflow-on-microk8s/"
          },
          {
            "text": "Kubeflow on GCP",
            "desc": "Running Kubeflow on Kubernetes Engine and Google Cloud Platform",
            "link": "https://www.kubeflow.org/docs/gke/"
          },
          {
            "text": "Kubeflow on AWS",
            "desc": "Running Kubeflow on Elastic Container Service and Amazon Web Services",
            "link": "https://www.kubeflow.org/docs/aws/"
          },
          {
            "text": "Requirements for Kubeflow",
            "desc": "Get more detailed information about using Kubeflow and its components",
            "link": "https://www.kubeflow.org/docs/started/requirements/"
          }
        ]
    }
  settings: |-
    {
      "DASHBOARD_FORCE_IFRAME": true
    }
kind: ConfigMap
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard-config
  namespace: kubeflow
---
apiVersion: v1
data:
  CD_CLUSTER_DOMAIN: cluster.local
  CD_REGISTRATION_FLOW: "false"
  CD_USERID_HEADER: kubeflow-userid
  CD_USERID_PREFIX: ""
kind: ConfigMap
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard-parameters
  namespace: kubeflow
---
apiVersion: v1
data:
  agent: |-
    {
        "image" : "kserve/agent:v0.10.0",
        "memoryRequest": "100Mi",
        "memoryLimit": "1Gi",
        "cpuRequest": "100m",
        "cpuLimit": "1"
    }
  batcher: |-
    {
        "image" : "kserve/agent:v0.10.0",
        "memoryRequest": "1Gi",
        "memoryLimit": "1Gi",
        "cpuRequest": "1",
        "cpuLimit": "1"
    }
  credentials: |-
    {
       "gcs": {
           "gcsCredentialFileName": "gcloud-application-credentials.json"
       },
       "s3": {
           "s3AccessKeyIDName": "AWS_ACCESS_KEY_ID",
           "s3SecretAccessKeyName": "AWS_SECRET_ACCESS_KEY",
           "s3Endpoint": "",
           "s3UseHttps": "",
           "s3Region": "",
           "s3VerifySSL": "",
           "s3UseVirtualBucket": "",
           "s3UseAnonymousCredential": "",
           "s3CABundle": ""
       }
    }
  deploy: |-
    {
      "defaultDeploymentMode": "Serverless"
    }
  explainers: |-
    {
        "alibi": {
            "image" : "kserve/alibi-explainer",
            "defaultImageVersion": "latest"
        },
        "aix": {
            "image" : "kserve/aix-explainer",
            "defaultImageVersion": "latest"
        },
        "art": {
            "image" : "kserve/art-explainer",
            "defaultImageVersion": "latest"
        }
    }
  ingress: |-
    {
      "ingressGateway": "kubeflow/kubeflow-gateway",
      "ingressService": "istio-ingressgateway.istio-system.svc.cluster.local",
      "localGateway": "knative-serving/knative-local-gateway",
      "localGatewayService": "knative-local-gateway.istio-system.svc.cluster.local",
      "ingressDomain": "example.com",
      "ingressClassName": "istio",
      "domainTemplate": "{{ "{{" }} .Name }}-{{ "{{" }} .Namespace }}.{{ "{{" }} .IngressDomain }}",
      "urlScheme": "http",
      "disableIstioVirtualHost": false
    }
  logger: |-
    {
        "image" : "kserve/agent:v0.10.0",
        "memoryRequest": "100Mi",
        "memoryLimit": "1Gi",
        "cpuRequest": "100m",
        "cpuLimit": "1",
        "defaultUrl": "http://default-broker"
    }
  metricsAggregator: |-
    {
      "enableMetricAggregation": "false",
      "enablePrometheusScraping" : "false"
    }
  router: |-
    {
        "image" : "kserve/router:v0.10.0",
        "memoryRequest": "100Mi",
        "memoryLimit": "1Gi",
        "cpuRequest": "100m",
        "cpuLimit": "1"
    }
  storageInitializer: |-
    {
        "image" : "kserve/storage-initializer:v0.10.0",
        "memoryRequest": "100Mi",
        "memoryLimit": "1Gi",
        "cpuRequest": "100m",
        "cpuLimit": "1",
        "storageSpecSecretName": "storage-config"
    }
kind: ConfigMap
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: inferenceservice-config
  namespace: kubeflow
---
apiVersion: v1
data:
  spawner_ui_config.yaml: |
    # Configuration file for the Jupyter UI.
    #
    # Each Jupyter UI option is configured by two keys: 'value' and 'readOnly'
    # - The 'value' key contains the default value
    # - The 'readOnly' key determines if the option will be available to users
    #
    # If the 'readOnly' key is present and set to 'true', the respective option
    # will be disabled for users and only set by the admin. Also when a
    # Notebook is POSTED to the API if a necessary field is not present then
    # the value from the config will be used.
    #
    # If the 'readOnly' key is missing (defaults to 'false'), the respective option
    # will be available for users to edit.
    #
    # Note that some values can be templated. Such values are the names of the
    # Volumes as well as their StorageClass
    spawnerFormDefaults:
      image:
        # The container Image for the user's Jupyter Notebook
        value: kubeflownotebookswg/jupyter-scipy:v1.8.0
        # The list of available standard container Images
        options:
        - kubeflownotebookswg/jupyter-scipy:v1.8.0
        - kubeflownotebookswg/jupyter-pytorch-full:v1.8.0
        - kubeflownotebookswg/jupyter-pytorch-cuda-full:v1.8.0
        - kubeflownotebookswg/jupyter-tensorflow-full:v1.8.0
        - kubeflownotebookswg/jupyter-tensorflow-cuda-full:v1.8.0
      imageGroupOne:
        # The container Image for the user's Group One Server
        # The annotation `notebooks.kubeflow.org/http-rewrite-uri: /`
        # is applied to notebook in this group, configuring
        # the Istio rewrite for containers that host their web UI at `/`
        value: kubeflownotebookswg/codeserver-python:v1.8.0
        # The list of available standard container Images
        options:
        - kubeflownotebookswg/codeserver-python:v1.8.0
      imageGroupTwo:
        # The container Image for the user's Group Two Server
        # The annotation `notebooks.kubeflow.org/http-rewrite-uri: /`
        # is applied to notebook in this group, configuring
        # the Istio rewrite for containers that host their web UI at `/`
        # The annotation `notebooks.kubeflow.org/http-headers-request-set`
        # is applied to notebook in this group, configuring Istio
        # to add the `X-RStudio-Root-Path` header to requests
        value: kubeflownotebookswg/rstudio-tidyverse:v1.8.0
        # The list of available standard container Images
        options:
        - kubeflownotebookswg/rstudio-tidyverse:v1.8.0
      # If true, hide registry and/or tag name in the image selection dropdown
      hideRegistry: true
      hideTag: false
      allowCustomImage: true
      # If true, users can input custom images
      # If false, users can only select from the images in this config
      imagePullPolicy:
        # Supported values: Always, IfNotPresent, Never
        value: IfNotPresent
        readOnly: false
      cpu:
        # CPU for user's Notebook
        value: '0.5'
        # Factor by with to multiply request to calculate limit
        # if no limit is set, to disable set "none"
        limitFactor: "1.2"
        readOnly: false
      memory:
        # Memory for user's Notebook
        value: 1.0Gi
        # Factor by with to multiply request to calculate limit
        # if no limit is set, to disable set "none"
        limitFactor: "1.2"
        readOnly: false
      environment:
        value: {}
        readOnly: false
      workspaceVolume:
        # Workspace Volume to be attached to user's Notebook
        # If you don't want a workspace volume then delete the 'value' key
        value:
          mount: /home/jovyan
          newPvc:
            metadata:
              name: '{notebook-name}-workspace'
            spec:
              resources:
                requests:
                  storage: 10Gi
              accessModes:
              - ReadWriteOnce
        readOnly: false
      dataVolumes:
        # List of additional Data Volumes to be attached to the user's Notebook
        value: []
        # For example, a list with 2 Data Volumes:
        # value:
        #   - mount: /home/jovyan/datavol-1
        #     newPvc:
        #       metadata:
        #         name: '{notebook-name}-datavol-1'
        #       spec:
        #         resources:
        #           requests:
        #             storage: 5Gi
        #         accessModes:
        #           - ReadWriteOnce
        #   - mount: /home/jovyan/datavol-1
        #     existingSource:
        #       persistentVolumeClaim:
        #         claimName: test-pvc
        readOnly: false
      gpus:
        # Number of GPUs to be assigned to the Notebook Container
        value:
          # values: "none", "1", "2", "4", "8"
          num: "none"
          # Determines what the UI will show and send to the backend
          vendors:
          - limitsKey: "nvidia.com/gpu"
            uiName: "NVIDIA"
          - limitsKey: "amd.com/gpu"
            uiName: "AMD"
          # Values: "" or a `limits-key` from the vendors list
          vendor: ""
        readOnly: false
      affinityConfig:
        # If readonly, the default value will be the only option
        # value is a list of `configKey`s that we want to be selected by default
        value: ""
        # The list of available affinity configs
        options: []
        #options:
        #  - configKey: "exclusive__n1-standard-2"
        #    displayName: "Exclusive: n1-standard-2"
        #    affinity:
        #      # (Require) Node having label: `node_pool=notebook-n1-standard-2`
        #      nodeAffinity:
        #        requiredDuringSchedulingIgnoredDuringExecution:
        #          nodeSelectorTerms:
        #            - matchExpressions:
        #                - key: "node_pool"
        #                  operator: "In"
        #                  values:
        #                   - "notebook-n1-standard-2"
        #      # (Require) Node WITHOUT existing Pod having label: `notebook-name`
        #      podAntiAffinity:
        #        requiredDuringSchedulingIgnoredDuringExecution:
        #          - labelSelector:
        #              matchExpressions:
        #                - key: "notebook-name"
        #                  operator: "Exists"
        #            namespaces: []
        #            topologyKey: "kubernetes.io/hostname"
        #readOnly: false
      tolerationGroup:
        # The default `groupKey` from the options list
        # If readonly, the default value will be the only option
        value: ""
        # The list of available tolerationGroup configs
        options: []
        #options:
        #  - groupKey: "group_1"
        #    displayName: "Group 1: description"
        #    tolerations:
        #      - key: "key1"
        #        operator: "Equal"
        #        value: "value1"
        #        effect: "NoSchedule"
        #      - key: "key2"
        #        operator: "Equal"
        #        value: "value2"
        #        effect: "NoSchedule"
        readOnly: false
      shm:
        value: true
        readOnly: false
      configurations:
        # List of labels to be selected, these are the labels from PodDefaults
        # value:
        #   - add-gcp-secret
        #   - default-editor
        value: []
        readOnly: false
kind: ConfigMap
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-config-92bgck72t2
  namespace: kubeflow
---
apiVersion: v1
data:
  group-one-icon.svg: |-
    <?xml version="1.0" encoding="utf-8"?>
    <!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
      width="14.35px" height="42.88px" viewBox="0 0 14.35 42.88" enable-background="new 0 0 14.35 42.88" xml:space="preserve">
    <g>
      <path d="M9.442,30.084H7.333V16.643c-0.508,0.484-1.174,0.969-1.998,1.453s-1.564,0.848-2.221,1.09v-2.039
        c1.18-0.555,2.211-1.227,3.094-2.016s1.508-1.555,1.875-2.297h1.359V30.084z"/>
    </g>
    </svg>
  group-one-logo.svg: |-
    <?xml version="1.0" encoding="utf-8"?>
    <!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
      width="14.35px" height="42.88px" viewBox="0 0 14.35 42.88" enable-background="new 0 0 14.35 42.88" xml:space="preserve">
    <g>
      <path d="M9.442,30.084H7.333V16.643c-0.508,0.484-1.174,0.969-1.998,1.453s-1.564,0.848-2.221,1.09v-2.039
        c1.18-0.555,2.211-1.227,3.094-2.016s1.508-1.555,1.875-2.297h1.359V30.084z"/>
    </g>
    </svg>
  group-two-icon.svg: |-
    <?xml version="1.0" encoding="utf-8"?>
    <!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
      width="14.35px" height="42.88px" viewBox="0 0 14.35 42.88" enable-background="new 0 0 14.35 42.88" xml:space="preserve">
    <g>
      <path d="M12.583,28.057v2.027H1.228c-0.016-0.508,0.066-0.996,0.246-1.465c0.289-0.773,0.752-1.535,1.389-2.285
        s1.557-1.617,2.76-2.602c1.867-1.531,3.129-2.744,3.785-3.639s0.984-1.74,0.984-2.537c0-0.836-0.299-1.541-0.896-2.115
        s-1.377-0.861-2.338-0.861c-1.016,0-1.828,0.305-2.438,0.914s-0.918,1.453-0.926,2.531l-2.168-0.223
        c0.148-1.617,0.707-2.85,1.676-3.697s2.27-1.271,3.902-1.271c1.648,0,2.953,0.457,3.914,1.371s1.441,2.047,1.441,3.398
        c0,0.688-0.141,1.363-0.422,2.027s-0.748,1.363-1.4,2.098s-1.736,1.742-3.252,3.023c-1.266,1.063-2.078,1.783-2.438,2.162
        s-0.656,0.76-0.891,1.143H12.583z"/>
    </g>
    </svg>
  group-two-logo.svg: |-
    <?xml version="1.0" encoding="utf-8"?>
    <!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
      width="14.35px" height="42.88px" viewBox="0 0 14.35 42.88" enable-background="new 0 0 14.35 42.88" xml:space="preserve">
    <g>
      <path d="M12.583,28.057v2.027H1.228c-0.016-0.508,0.066-0.996,0.246-1.465c0.289-0.773,0.752-1.535,1.389-2.285
        s1.557-1.617,2.76-2.602c1.867-1.531,3.129-2.744,3.785-3.639s0.984-1.74,0.984-2.537c0-0.836-0.299-1.541-0.896-2.115
        s-1.377-0.861-2.338-0.861c-1.016,0-1.828,0.305-2.438,0.914s-0.918,1.453-0.926,2.531l-2.168-0.223
        c0.148-1.617,0.707-2.85,1.676-3.697s2.27-1.271,3.902-1.271c1.648,0,2.953,0.457,3.914,1.371s1.441,2.047,1.441,3.398
        c0,0.688-0.141,1.363-0.422,2.027s-0.748,1.363-1.4,2.098s-1.736,1.742-3.252,3.023c-1.266,1.063-2.078,1.783-2.438,2.162
        s-0.656,0.76-0.891,1.143H12.583z"/>
    </g>
    </svg>
  jupyter-icon.svg: |
    <svg width="44" height="51" viewBox="0 0 44 51" version="2.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:figma="http://www.figma.com/figma/ns">
    <desc>Created using Figma 0.90</desc>
    <g id="Canvas" transform="translate(-1640 -2453)" figma:type="canvas">
    <g id="Group" style="mix-blend-mode:normal;" figma:type="group">
    <g id="Group" style="mix-blend-mode:normal;" figma:type="group">
    <g id="Group" style="mix-blend-mode:normal;" figma:type="group">
    <g id="g" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path9 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path0_fill" transform="translate(1640.54 2474.36)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path10 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path1_fill" transform="translate(1645.68 2474.37)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path11 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path2_fill" transform="translate(1653.39 2474.26)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path12 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path3_fill" transform="translate(1660.43 2474.39)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path13 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path4_fill" transform="translate(1667.55 2472.54)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path14 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path5_fill" transform="translate(1672.47 2474.29)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path15 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path6_fill" transform="translate(1679.98 2474.24)" fill="#4E4E4E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    </g>
    </g>
    <g id="g" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path16 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path7_fill" transform="translate(1673.48 2453.69)" fill="#767677" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path17 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path8_fill" transform="translate(1643.21 2484.27)" fill="#F37726" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path18 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path9_fill" transform="translate(1643.21 2457.88)" fill="#F37726" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path19 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path10_fill" transform="translate(1643.28 2496.09)" fill="#9E9E9E" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    <g id="path" style="mix-blend-mode:normal;" figma:type="group">
    <g id="path20 fill" style="mix-blend-mode:normal;" figma:type="vector">
    <use xlink:href="#path11_fill" transform="translate(1641.87 2458.43)" fill="#616262" style="mix-blend-mode:normal;"/>
    </g>
    </g>
    </g>
    </g>
    </g>
    </g>
    <defs>
    <path id="path0_fill" d="M 1.74498 5.47533C 1.74498 7.03335 1.62034 7.54082 1.29983 7.91474C 0.943119 8.23595 0.480024 8.41358 0 8.41331L 0.124642 9.3036C 0.86884 9.31366 1.59095 9.05078 2.15452 8.56466C 2.45775 8.19487 2.6834 7.76781 2.818 7.30893C 2.95261 6.85005 2.99341 6.36876 2.93798 5.89377L 2.93798 0L 1.74498 0L 1.74498 5.43972L 1.74498 5.47533Z"/>
    <path id="path1_fill" d="M 5.50204 4.76309C 5.50204 5.43081 5.50204 6.02731 5.55545 6.54368L 4.496 6.54368L 4.42478 5.48423C 4.20318 5.85909 3.88627 6.16858 3.50628 6.38125C 3.12628 6.59392 2.69675 6.70219 2.26135 6.69503C 1.22861 6.69503 0 6.13415 0 3.84608L 0 0.0445149L 1.193 0.0445149L 1.193 3.6057C 1.193 4.84322 1.57583 5.67119 2.65309 5.67119C 2.87472 5.67358 3.09459 5.63168 3.29982 5.54796C 3.50505 5.46424 3.69149 5.34039 3.84822 5.18366C 4.00494 5.02694 4.1288 4.84049 4.21252 4.63527C 4.29623 4.43004 4.33813 4.21016 4.33575 3.98853L 4.33575 0L 5.52874 0L 5.52874 4.72748L 5.50204 4.76309Z"/>
    <path id="path2_fill" d="M 0.0534178 2.27264C 0.0534178 1.44466 0.0534178 0.768036 0 0.153731L 1.06836 0.153731L 1.12177 1.2666C 1.3598 0.864535 1.70247 0.534594 2.11325 0.311954C 2.52404 0.0893145 2.98754 -0.0176786 3.45435 0.00238095C 5.03908 0.00238095 6.23208 1.32892 6.23208 3.30538C 6.23208 5.63796 4.7987 6.79535 3.24958 6.79535C 2.85309 6.81304 2.45874 6.7281 2.10469 6.54874C 1.75064 6.36937 1.44888 6.10166 1.22861 5.77151L 1.22861 5.77151L 1.22861 9.33269L 0.0534178 9.33269L 0.0534178 2.29935L 0.0534178 2.27264ZM 1.22861 4.00872C 1.23184 4.17026 1.24972 4.33117 1.28203 4.48948C 1.38304 4.88479 1.61299 5.23513 1.93548 5.48506C 2.25798 5.735 2.65461 5.87026 3.06262 5.86944C 4.31794 5.86944 5.05689 4.8456 5.05689 3.3588C 5.05689 2.05897 4.36246 0.946096 3.10714 0.946096C 2.61036 0.986777 2.14548 1.20726 1.79965 1.5662C 1.45382 1.92514 1.25079 2.3979 1.22861 2.89585L 1.22861 4.00872Z"/>
    <path id="path3_fill" d="M 1.31764 0.0178059L 2.75102 3.85499C 2.90237 4.28233 3.06262 4.7987 3.16946 5.18153C 3.2941 4.7898 3.42764 4.29123 3.5879 3.82828L 4.88773 0.0178059L 6.14305 0.0178059L 4.36246 4.64735C 3.47216 6.87309 2.92908 8.02158 2.11 8.71601C 1.69745 9.09283 1.19448 9.35658 0.649917 9.48166L 0.356119 8.48453C 0.736886 8.35942 1.09038 8.16304 1.39777 7.90584C 1.8321 7.55188 2.17678 7.10044 2.4038 6.5882C 2.45239 6.49949 2.48551 6.40314 2.50173 6.3033C 2.49161 6.19586 2.46457 6.0907 2.42161 5.9917L 0 0L 1.29983 0L 1.31764 0.0178059Z"/>
    <path id="path4_fill" d="M 2.19013 0L 2.19013 1.86962L 3.8995 1.86962L 3.8995 2.75992L 2.19013 2.75992L 2.19013 6.26769C 2.19013 7.06896 2.42161 7.53191 3.08043 7.53191C 3.31442 7.53574 3.54789 7.5088 3.77486 7.45179L 3.82828 8.34208C 3.48794 8.45999 3.12881 8.51431 2.76882 8.50234C 2.53042 8.51726 2.29161 8.48043 2.06878 8.39437C 1.84595 8.30831 1.64438 8.17506 1.47789 8.00377C 1.11525 7.51873 0.949826 6.91431 1.01494 6.31221L 1.01494 2.75102L 0 2.75102L 0 1.86072L 1.03274 1.86072L 1.03274 0.275992L 2.19013 0Z"/>
    <path id="path5_fill" d="M 1.17716 3.57899C 1.153 3.88093 1.19468 4.18451 1.29933 4.46876C 1.40398 4.75301 1.5691 5.01114 1.78329 5.22532C 1.99747 5.43951 2.2556 5.60463 2.53985 5.70928C 2.8241 5.81393 3.12768 5.85561 3.42962 5.83145C 4.04033 5.84511 4.64706 5.72983 5.21021 5.49313L 5.41498 6.38343C 4.72393 6.66809 3.98085 6.80458 3.23375 6.78406C 2.79821 6.81388 2.36138 6.74914 1.95322 6.59427C 1.54505 6.43941 1.17522 6.19809 0.869071 5.88688C 0.562928 5.57566 0.327723 5.2019 0.179591 4.79125C 0.0314584 4.38059 -0.0260962 3.94276 0.0108748 3.50777C 0.0108748 1.54912 1.17716 0 3.0824 0C 5.21911 0 5.75329 1.86962 5.75329 3.06262C 5.76471 3.24644 5.76471 3.43079 5.75329 3.61461L 1.15046 3.61461L 1.17716 3.57899ZM 4.66713 2.6887C 4.70149 2.45067 4.68443 2.20805 4.61709 1.97718C 4.54976 1.74631 4.43372 1.53255 4.2768 1.35031C 4.11987 1.16808 3.92571 1.0216 3.70739 0.920744C 3.48907 0.81989 3.25166 0.767006 3.01118 0.765656C 2.52201 0.801064 2.06371 1.01788 1.72609 1.37362C 1.38847 1.72935 1.19588 2.19835 1.18607 2.6887L 4.66713 2.6887Z"/>
    <path id="path6_fill" d="M 0.0534178 2.19228C 0.0534178 1.42663 0.0534178 0.767806 0 0.162404L 1.06836 0.162404L 1.06836 1.43553L 1.12177 1.43553C 1.23391 1.04259 1.4656 0.694314 1.78468 0.439049C 2.10376 0.183783 2.4944 0.034196 2.90237 0.0110538C 3.01466 -0.00368459 3.12839 -0.00368459 3.24068 0.0110538L 3.24068 1.12393C 3.10462 1.10817 2.9672 1.10817 2.83114 1.12393C 2.427 1.13958 2.04237 1.30182 1.7491 1.58035C 1.45583 1.85887 1.27398 2.23462 1.23751 2.63743C 1.20422 2.8196 1.18635 3.00425 1.1841 3.18941L 1.1841 6.65267L 0.00890297 6.65267L 0.00890297 2.20118L 0.0534178 2.19228Z"/>
    <path id="path7_fill" d="M 6.03059 2.83565C 6.06715 3.43376 5.92485 4.02921 5.6218 4.54615C 5.31875 5.0631 4.86869 5.47813 4.32893 5.73839C 3.78917 5.99864 3.18416 6.09233 2.59097 6.00753C 1.99778 5.92272 1.44326 5.66326 0.998048 5.26219C 0.552837 4.86113 0.23709 4.33661 0.0910307 3.75546C -0.0550287 3.17431 -0.0247891 2.56283 0.177897 1.99893C 0.380583 1.43503 0.746541 0.944221 1.22915 0.589037C 1.71176 0.233853 2.28918 0.0303686 2.88784 0.00450543C 3.28035 -0.0170932 3.67326 0.0391144 4.04396 0.169896C 4.41467 0.300677 4.75587 0.503453 5.04794 0.766561C 5.34 1.02967 5.57718 1.34792 5.74582 1.70301C 5.91446 2.0581 6.01124 2.44303 6.03059 2.83565L 6.03059 2.83565Z"/>
    <path id="path8_fill" d="M 18.6962 7.12238C 10.6836 7.12238 3.64131 4.24672 0 0C 1.41284 3.82041 3.96215 7.1163 7.30479 9.44404C 10.6474 11.7718 14.623 13.0196 18.6962 13.0196C 22.7695 13.0196 26.745 11.7718 30.0877 9.44404C 33.4303 7.1163 35.9796 3.82041 37.3925 4.0486e-13C 33.7601 4.24672 26.7445 7.12238 18.6962 7.12238Z"/>
    <path id="path9_fill" d="M 18.6962 5.89725C 26.7089 5.89725 33.7512 8.77291 37.3925 13.0196C 35.9796 9.19922 33.4303 5.90333 30.0877 3.57559C 26.745 1.24785 22.7695 4.0486e-13 18.6962 0C 14.623 4.0486e-13 10.6474 1.24785 7.30479 3.57559C 3.96215 5.90333 1.41284 9.19922 0 13.0196C 3.64131 8.76401 10.648 5.89725 18.6962 5.89725Z"/>
    <path id="path10_fill" d="M 7.59576 3.56656C 7.64276 4.31992 7.46442 5.07022 7.08347 5.72186C 6.70251 6.3735 6.13619 6.89698 5.45666 7.22561C 4.77713 7.55424 4.01515 7.67314 3.26781 7.56716C 2.52046 7.46117 1.82158 7.13511 1.26021 6.63051C 0.698839 6.12591 0.300394 5.46561 0.115637 4.73375C -0.0691191 4.00188 -0.0318219 3.23159 0.222777 2.52099C 0.477376 1.8104 0.93775 1.19169 1.54524 0.743685C 2.15274 0.295678 2.87985 0.0386595 3.63394 0.00537589C 4.12793 -0.0210471 4.62229 0.0501173 5.08878 0.214803C 5.55526 0.37949 5.98473 0.63447 6.35264 0.965179C 6.72055 1.29589 7.01971 1.69584 7.233 2.1422C 7.4463 2.58855 7.56957 3.07256 7.59576 3.56656L 7.59576 3.56656Z"/>
    <path id="path11_fill" d="M 2.25061 4.37943C 1.81886 4.39135 1.39322 4.27535 1.02722 4.04602C 0.661224 3.81668 0.371206 3.48424 0.193641 3.09052C 0.0160762 2.69679 -0.0411078 2.25935 0.0292804 1.83321C 0.0996686 1.40707 0.294486 1.01125 0.589233 0.695542C 0.883981 0.37983 1.2655 0.158316 1.68581 0.0588577C 2.10611 -0.0406005 2.54644 -0.0135622 2.95143 0.136572C 3.35641 0.286707 3.70796 0.553234 3.96186 0.902636C 4.21577 1.25204 4.3607 1.66872 4.37842 2.10027C 4.39529 2.6838 4.18131 3.25044 3.78293 3.67715C 3.38455 4.10387 2.83392 4.35623 2.25061 4.37943Z"/>
    </defs>
    </svg>
  jupyterlab-logo.svg: |
    <svg xmlns="http://www.w3.org/2000/svg" width="200" viewBox="0 0 1860.8 475">
      <g class="jp-icon2" fill="#4E4E4E" transform="translate(480.136401, 64.271493)">
        <g transform="translate(0.000000, 58.875566)">
          <g transform="translate(0.087603, 0.140294)">
            <path d="M-426.9,169.8c0,48.7-3.7,64.7-13.6,76.4c-10.8,10-25,15.5-39.7,15.5l3.7,29 c22.8,0.3,44.8-7.9,61.9-23.1c17.8-18.5,24-44.1,24-83.3V0H-427v170.1L-426.9,169.8L-426.9,169.8z"/>
          </g>
        </g>
        <g transform="translate(155.045296, 56.837104)">
          <g transform="translate(1.562453, 1.799842)">
            <path d="M-312,148c0,21,0,39.5,1.7,55.4h-31.8l-2.1-33.3h-0.8c-6.7,11.6-16.4,21.3-28,27.9 c-11.6,6.6-24.8,10-38.2,9.8c-31.4,0-69-17.7-69-89V0h36.4v112.7c0,38.7,11.6,64.7,44.6,64.7c10.3-0.2,20.4-3.5,28.9-9.4 c8.5-5.9,15.1-14.3,18.9-23.9c2.2-6.1,3.3-12.5,3.3-18.9V0.2h36.4V148H-312L-312,148z"/>
          </g>
        </g>
        <g transform="translate(390.013322, 53.479638)">
          <g transform="translate(1.706458, 0.231425)">
            <path d="M-478.6,71.4c0-26-0.8-47-1.7-66.7h32.7l1.7,34.8h0.8c7.1-12.5,17.5-22.8,30.1-29.7 c12.5-7,26.7-10.3,41-9.8c48.3,0,84.7,41.7,84.7,103.3c0,73.1-43.7,109.2-91,109.2c-12.1,0.5-24.2-2.2-35-7.8 c-10.8-5.6-19.9-13.9-26.6-24.2h-0.8V291h-36v-220L-478.6,71.4L-478.6,71.4z M-442.6,125.6c0.1,5.1,0.6,10.1,1.7,15.1 c3,12.3,9.9,23.3,19.8,31.1c9.9,7.8,22.1,12.1,34.7,12.1c38.5,0,60.7-31.9,60.7-78.5c0-40.7-21.1-75.6-59.5-75.6 c-12.9,0.4-25.3,5.1-35.3,13.4c-9.9,8.3-16.9,19.7-19.6,32.4c-1.5,4.9-2.3,10-2.5,15.1V125.6L-442.6,125.6L-442.6,125.6z"/>
          </g>
        </g>
        <g transform="translate(606.740726, 56.837104)">
          <g transform="translate(0.751226, 1.989299)">
            <path d="M-440.8,0l43.7,120.1c4.5,13.4,9.5,29.4,12.8,41.7h0.8c3.7-12.2,7.9-27.7,12.8-42.4 l39.7-119.2h38.5L-346.9,145c-26,69.7-43.7,105.4-68.6,127.2c-12.5,11.7-27.9,20-44.6,23.9l-9.1-31.1 c11.7-3.9,22.5-10.1,31.8-18.1c13.2-11.1,23.7-25.2,30.6-41.2c1.5-2.8,2.5-5.7,2.9-8.8c-0.3-3.3-1.2-6.6-2.5-9.7L-480.2,0.1 h39.7L-440.8,0L-440.8,0z"/>
          </g>
        </g>
        <g transform="translate(822.748104, 0.000000)">
          <g transform="translate(1.464050, 0.378914)">
            <path d="M-413.7,0v58.3h52v28.2h-52V196c0,25,7,39.5,27.3,39.5c7.1,0.1,14.2-0.7,21.1-2.5 l1.7,27.7c-10.3,3.7-21.3,5.4-32.2,5c-7.3,0.4-14.6-0.7-21.3-3.4c-6.8-2.7-12.9-6.8-17.9-12.1c-10.3-10.9-14.1-29-14.1-52.9 V86.5h-31V58.3h31V9.6L-413.7,0L-413.7,0z"/>
          </g>
        </g>
        <g transform="translate(974.433286, 53.479638)">
          <g transform="translate(0.990034, 0.610339)">
            <path d="M-445.8,113c0.8,50,32.2,70.6,68.6,70.6c19,0.6,37.9-3,55.3-10.5l6.2,26.4 c-20.9,8.9-43.5,13.1-66.2,12.6c-61.5,0-98.3-41.2-98.3-102.5C-480.2,48.2-444.7,0-386.5,0c65.2,0,82.7,58.3,82.7,95.7 c-0.1,5.8-0.5,11.5-1.2,17.2h-140.6H-445.8L-445.8,113z M-339.2,86.6c0.4-23.5-9.5-60.1-50.4-60.1 c-36.8,0-52.8,34.4-55.7,60.1H-339.2L-339.2,86.6L-339.2,86.6z"/>
          </g>
        </g>
        <g transform="translate(1201.961058, 53.479638)">
          <g transform="translate(1.179640, 0.705068)">
            <path d="M-478.6,68c0-23.9-0.4-44.5-1.7-63.4h31.8l1.2,39.9h1.7c9.1-27.3,31-44.5,55.3-44.5 c3.5-0.1,7,0.4,10.3,1.2v34.8c-4.1-0.9-8.2-1.3-12.4-1.2c-25.6,0-43.7,19.7-48.7,47.4c-1,5.7-1.6,11.5-1.7,17.2v108.3h-36V68 L-478.6,68z"/>
          </g>
        </g>
      </g>

      <g class="jp-icon-warn0" fill="#F37726">
        <path d="M1352.3,326.2h37V28h-37V326.2z M1604.8,326.2c-2.5-13.9-3.4-31.1-3.4-48.7v-76 c0-40.7-15.1-83.1-77.3-83.1c-25.6,0-50,7.1-66.8,18.1l8.4,24.4c14.3-9.2,34-15.1,53-15.1c41.6,0,46.2,30.2,46.2,47v4.2 c-78.6-0.4-122.3,26.5-122.3,75.6c0,29.4,21,58.4,62.2,58.4c29,0,50.9-14.3,62.2-30.2h1.3l2.9,25.6H1604.8z M1565.7,257.7 c0,3.8-0.8,8-2.1,11.8c-5.9,17.2-22.7,34-49.2,34c-18.9,0-34.9-11.3-34.9-35.3c0-39.5,45.8-46.6,86.2-45.8V257.7z M1698.5,326.2 l1.7-33.6h1.3c15.1,26.9,38.7,38.2,68.1,38.2c45.4,0,91.2-36.1,91.2-108.8c0.4-61.7-35.3-103.7-85.7-103.7 c-32.8,0-56.3,14.7-69.3,37.4h-0.8V28h-36.6v245.7c0,18.1-0.8,38.6-1.7,52.5H1698.5z M1704.8,208.2c0-5.9,1.3-10.9,2.1-15.1 c7.6-28.1,31.1-45.4,56.3-45.4c39.5,0,60.5,34.9,60.5,75.6c0,46.6-23.1,78.1-61.8,78.1c-26.9,0-48.3-17.6-55.5-43.3 c-0.8-4.2-1.7-8.8-1.7-13.4V208.2z"/>
      </g>
    </svg>
kind: ConfigMap
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-logos
  namespace: kubeflow
---
apiVersion: v1
data:
  JWA_APP_SECURE_COOKIES: "true"
  JWA_CLUSTER_DOMAIN: cluster.local
  JWA_PREFIX: /jupyter
  JWA_UI: default
  JWA_USERID_HEADER: kubeflow-userid
  JWA_USERID_PREFIX: ""
kind: ConfigMap
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-parameters-42k97gcbmb
  namespace: kubeflow
---
apiVersion: v1
data:
  katib-config.yaml: |
    ---
    apiVersion: config.kubeflow.org/v1beta1
    kind: KatibConfig
    init:
      controller:
        webhookPort: 8443
        trialResources:
          - Job.v1.batch
          - TFJob.v1.kubeflow.org
          - PyTorchJob.v1.kubeflow.org
          - MPIJob.v1.kubeflow.org
          - XGBoostJob.v1.kubeflow.org
          - MXJob.v1.kubeflow.org
    runtime:
      metricsCollectors:
        - kind: StdOut
          image: docker.io/kubeflowkatib/file-metrics-collector:v0.16.0-rc.1
        - kind: File
          image: docker.io/kubeflowkatib/file-metrics-collector:v0.16.0-rc.1
        - kind: TensorFlowEvent
          image: docker.io/kubeflowkatib/tfevent-metrics-collector:v0.16.0-rc.1
          resources:
            limits:
              memory: 1Gi
      suggestions:
        - algorithmName: random
          image: docker.io/kubeflowkatib/suggestion-hyperopt:v0.16.0-rc.1
        - algorithmName: tpe
          image: docker.io/kubeflowkatib/suggestion-hyperopt:v0.16.0-rc.1
        - algorithmName: grid
          image: docker.io/kubeflowkatib/suggestion-optuna:v0.16.0-rc.1
        - algorithmName: hyperband
          image: docker.io/kubeflowkatib/suggestion-hyperband:v0.16.0-rc.1
        - algorithmName: bayesianoptimization
          image: docker.io/kubeflowkatib/suggestion-skopt:v0.16.0-rc.1
        - algorithmName: cmaes
          image: docker.io/kubeflowkatib/suggestion-goptuna:v0.16.0-rc.1
        - algorithmName: sobol
          image: docker.io/kubeflowkatib/suggestion-goptuna:v0.16.0-rc.1
        - algorithmName: multivariate-tpe
          image: docker.io/kubeflowkatib/suggestion-optuna:v0.16.0-rc.1
        - algorithmName: enas
          image: docker.io/kubeflowkatib/suggestion-enas:v0.16.0-rc.1
          resources:
            limits:
              memory: 200Mi
        - algorithmName: darts
          image: docker.io/kubeflowkatib/suggestion-darts:v0.16.0-rc.1
        - algorithmName: pbt
          image: docker.io/kubeflowkatib/suggestion-pbt:v0.16.0-rc.1
          persistentVolumeClaimSpec:
            accessModes:
              - ReadWriteMany
            resources:
              requests:
                storage: 5Gi
      earlyStoppings:
        - algorithmName: medianstop
          image: docker.io/kubeflowkatib/earlystopping-medianstop:v0.16.0-rc.1
kind: ConfigMap
metadata:
  name: katib-config
  namespace: kubeflow
---
apiVersion: v1
data:
  defaultPipelineRoot: ""
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kfp-launcher
  namespace: kubeflow
---
apiVersion: v1
data:
  APP_PREFIX: /kserve-endpoints
  USERID_HEADER: kubeflow-userid
kind: ConfigMap
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app-config
  namespace: kubeflow
---
apiVersion: v1
data:
  sync.py: |
    # Copyright 2020-2021 The Kubeflow Authors
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.

    from http.server import BaseHTTPRequestHandler, HTTPServer
    import json
    import os
    import base64


    def main():
        settings = get_settings_from_env()
        server = server_factory(**settings)
        server.serve_forever()


    def get_settings_from_env(controller_port=None,
                              visualization_server_image=None, frontend_image=None,
                              visualization_server_tag=None, frontend_tag=None, disable_istio_sidecar=None,
                              minio_access_key=None, minio_secret_key=None, kfp_default_pipeline_root=None):
        """
        Returns a dict of settings from environment variables relevant to the controller

        Environment settings can be overridden by passing them here as arguments.

        Settings are pulled from the all-caps version of the setting name.  The
        following defaults are used if those environment variables are not set
        to enable backwards compatibility with previous versions of this script:
            visualization_server_image: gcr.io/ml-pipeline/visualization-server
            visualization_server_tag: value of KFP_VERSION environment variable
            frontend_image: gcr.io/ml-pipeline/frontend
            frontend_tag: value of KFP_VERSION environment variable
            disable_istio_sidecar: Required (no default)
            minio_access_key: Required (no default)
            minio_secret_key: Required (no default)
        """
        settings = dict()
        settings["controller_port"] = \
            controller_port or \
            os.environ.get("CONTROLLER_PORT", "8080")

        settings["visualization_server_image"] = \
            visualization_server_image or \
            os.environ.get("VISUALIZATION_SERVER_IMAGE", "gcr.io/ml-pipeline/visualization-server")

        settings["frontend_image"] = \
            frontend_image or \
            os.environ.get("FRONTEND_IMAGE", "gcr.io/ml-pipeline/frontend")

        # Look for specific tags for each image first, falling back to
        # previously used KFP_VERSION environment variable for backwards
        # compatibility
        settings["visualization_server_tag"] = \
            visualization_server_tag or \
            os.environ.get("VISUALIZATION_SERVER_TAG") or \
            os.environ["KFP_VERSION"]

        settings["frontend_tag"] = \
            frontend_tag or \
            os.environ.get("FRONTEND_TAG") or \
            os.environ["KFP_VERSION"]

        settings["disable_istio_sidecar"] = \
            disable_istio_sidecar if disable_istio_sidecar is not None \
                else os.environ.get("DISABLE_ISTIO_SIDECAR") == "true"

        settings["minio_access_key"] = \
            minio_access_key or \
            base64.b64encode(bytes(os.environ.get("MINIO_ACCESS_KEY"), 'utf-8')).decode('utf-8')

        settings["minio_secret_key"] = \
            minio_secret_key or \
            base64.b64encode(bytes(os.environ.get("MINIO_SECRET_KEY"), 'utf-8')).decode('utf-8')

        # KFP_DEFAULT_PIPELINE_ROOT is optional
        settings["kfp_default_pipeline_root"] = \
            kfp_default_pipeline_root or \
            os.environ.get("KFP_DEFAULT_PIPELINE_ROOT")

        return settings


    def server_factory(visualization_server_image,
                       visualization_server_tag, frontend_image, frontend_tag,
                       disable_istio_sidecar, minio_access_key,
                       minio_secret_key, kfp_default_pipeline_root=None,
                       url="", controller_port=8080):
        """
        Returns an HTTPServer populated with Handler with customized settings
        """
        class Controller(BaseHTTPRequestHandler):
            def sync(self, parent, children):
                # parent is a namespace
                namespace = parent.get("metadata", {}).get("name")

                pipeline_enabled = parent.get("metadata", {}).get(
                    "labels", {}).get("pipelines.kubeflow.org/enabled")

                if pipeline_enabled != "true":
                    return {"status": {}, "children": []}

                desired_configmap_count = 1
                desired_resources = []
                if kfp_default_pipeline_root:
                    desired_configmap_count = 2
                    desired_resources += [{
                        "apiVersion": "v1",
                        "kind": "ConfigMap",
                        "metadata": {
                            "name": "kfp-launcher",
                            "namespace": namespace,
                        },
                        "data": {
                            "defaultPipelineRoot": kfp_default_pipeline_root,
                        },
                    }]


                # Compute status based on observed state.
                desired_status = {
                    "kubeflow-pipelines-ready":
                        len(children["Secret.v1"]) == 1 and
                        len(children["ConfigMap.v1"]) == desired_configmap_count and
                        len(children["Deployment.apps/v1"]) == 2 and
                        len(children["Service.v1"]) == 2 and
                        len(children["DestinationRule.networking.istio.io/v1alpha3"]) == 1 and
                        len(children["AuthorizationPolicy.security.istio.io/v1beta1"]) == 1 and
                        "True" or "False"
                }

                # Generate the desired child object(s).
                desired_resources += [
                    {
                        "apiVersion": "v1",
                        "kind": "ConfigMap",
                        "metadata": {
                            "name": "metadata-grpc-configmap",
                            "namespace": namespace,
                        },
                        "data": {
                            "METADATA_GRPC_SERVICE_HOST":
                                "metadata-grpc-service.kubeflow",
                            "METADATA_GRPC_SERVICE_PORT": "8080",
                        },
                    },
                    # Visualization server related manifests below
                    {
                        "apiVersion": "apps/v1",
                        "kind": "Deployment",
                        "metadata": {
                            "labels": {
                                "app": "ml-pipeline-visualizationserver"
                            },
                            "name": "ml-pipeline-visualizationserver",
                            "namespace": namespace,
                        },
                        "spec": {
                            "selector": {
                                "matchLabels": {
                                    "app": "ml-pipeline-visualizationserver"
                                },
                            },
                            "template": {
                                "metadata": {
                                    "labels": {
                                        "app": "ml-pipeline-visualizationserver"
                                    },
                                    "annotations": disable_istio_sidecar and {
                                        "sidecar.istio.io/inject": "false"
                                    } or {},
                                },
                                "spec": {
                                    "containers": [{
                                        "image": f"{visualization_server_image}:{visualization_server_tag}",
                                        "imagePullPolicy":
                                            "IfNotPresent",
                                        "name":
                                            "ml-pipeline-visualizationserver",
                                        "ports": [{
                                            "containerPort": 8888
                                        }],
                                        "resources": {
                                            "requests": {
                                                "cpu": "50m",
                                                "memory": "200Mi"
                                            },
                                            "limits": {
                                                "cpu": "500m",
                                                "memory": "1Gi"
                                            },
                                        }
                                    }],
                                    "serviceAccountName":
                                        "default-editor",
                                },
                            },
                        },
                    },
                    {
                        "apiVersion": "networking.istio.io/v1alpha3",
                        "kind": "DestinationRule",
                        "metadata": {
                            "name": "ml-pipeline-visualizationserver",
                            "namespace": namespace,
                        },
                        "spec": {
                            "host": "ml-pipeline-visualizationserver",
                            "trafficPolicy": {
                                "tls": {
                                    "mode": "ISTIO_MUTUAL"
                                }
                            }
                        }
                    },
                    {
                        "apiVersion": "security.istio.io/v1beta1",
                        "kind": "AuthorizationPolicy",
                        "metadata": {
                            "name": "ml-pipeline-visualizationserver",
                            "namespace": namespace,
                        },
                        "spec": {
                            "selector": {
                                "matchLabels": {
                                    "app": "ml-pipeline-visualizationserver"
                                }
                            },
                            "rules": [{
                                "from": [{
                                    "source": {
                                        "principals": ["cluster.local/ns/kubeflow/sa/ml-pipeline"]
                                    }
                                }]
                            }]
                        }
                    },
                    {
                        "apiVersion": "v1",
                        "kind": "Service",
                        "metadata": {
                            "name": "ml-pipeline-visualizationserver",
                            "namespace": namespace,
                        },
                        "spec": {
                            "ports": [{
                                "name": "http",
                                "port": 8888,
                                "protocol": "TCP",
                                "targetPort": 8888,
                            }],
                            "selector": {
                                "app": "ml-pipeline-visualizationserver",
                            },
                        },
                    },
                    # Artifact fetcher related resources below.
                    {
                        "apiVersion": "apps/v1",
                        "kind": "Deployment",
                        "metadata": {
                            "labels": {
                                "app": "ml-pipeline-ui-artifact"
                            },
                            "name": "ml-pipeline-ui-artifact",
                            "namespace": namespace,
                        },
                        "spec": {
                            "selector": {
                                "matchLabels": {
                                    "app": "ml-pipeline-ui-artifact"
                                }
                            },
                            "template": {
                                "metadata": {
                                    "labels": {
                                        "app": "ml-pipeline-ui-artifact"
                                    },
                                    "annotations": disable_istio_sidecar and {
                                        "sidecar.istio.io/inject": "false"
                                    } or {},
                                },
                                "spec": {
                                    "containers": [{
                                        "name":
                                            "ml-pipeline-ui-artifact",
                                        "image": f"{frontend_image}:{frontend_tag}",
                                        "imagePullPolicy":
                                            "IfNotPresent",
                                        "ports": [{
                                            "containerPort": 3000
                                        }],
                                        "env": [
                                            {
                                                "name": "MINIO_ACCESS_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "accesskey",
                                                        "name": "mlpipeline-minio-artifact"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "MINIO_SECRET_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "secretkey",
                                                        "name": "mlpipeline-minio-artifact"
                                                    }
                                                }
                                            }
                                        ],
                                        "resources": {
                                            "requests": {
                                                "cpu": "10m",
                                                "memory": "70Mi"
                                            },
                                            "limits": {
                                                "cpu": "100m",
                                                "memory": "500Mi"
                                            },
                                        }
                                    }],
                                    "serviceAccountName":
                                        "default-editor"
                                }
                            }
                        }
                    },
                    {
                        "apiVersion": "v1",
                        "kind": "Service",
                        "metadata": {
                            "name": "ml-pipeline-ui-artifact",
                            "namespace": namespace,
                            "labels": {
                                "app": "ml-pipeline-ui-artifact"
                            }
                        },
                        "spec": {
                            "ports": [{
                                "name":
                                    "http",  # name is required to let istio understand request protocol
                                "port": 80,
                                "protocol": "TCP",
                                "targetPort": 3000
                            }],
                            "selector": {
                                "app": "ml-pipeline-ui-artifact"
                            }
                        }
                    },
                ]
                print('Received request:\n', json.dumps(parent, sort_keys=True))
                print('Desired resources except secrets:\n', json.dumps(desired_resources, sort_keys=True))
                # Moved after the print argument because this is sensitive data.
                desired_resources.append({
                    "apiVersion": "v1",
                    "kind": "Secret",
                    "metadata": {
                        "name": "mlpipeline-minio-artifact",
                        "namespace": namespace,
                    },
                    "data": {
                        "accesskey": minio_access_key,
                        "secretkey": minio_secret_key,
                    },
                })

                return {"status": desired_status, "children": desired_resources}

            def do_POST(self):
                # Serve the sync() function as a JSON webhook.
                observed = json.loads(
                    self.rfile.read(int(self.headers.get("content-length"))))
                desired = self.sync(observed["parent"], observed["children"])

                self.send_response(200)
                self.send_header("Content-type", "application/json")
                self.end_headers()
                self.wfile.write(bytes(json.dumps(desired), 'utf-8'))

        return HTTPServer((url, int(controller_port)), Controller)


    if __name__ == "__main__":
        main()
kind: ConfigMap
metadata:
  labels:
    app: kubeflow-pipelines-profile-controller
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-profile-controller-code-hdk828hd6c
  namespace: kubeflow
---
apiVersion: v1
data:
  DISABLE_ISTIO_SIDECAR: "false"
kind: ConfigMap
metadata:
  labels:
    app: kubeflow-pipelines-profile-controller
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-profile-controller-env-5252m69c4c
  namespace: kubeflow
---
apiVersion: v1
data:
  METADATA_GRPC_SERVICE_HOST: metadata-grpc-service
  METADATA_GRPC_SERVICE_PORT: "8080"
kind: ConfigMap
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    component: metadata-grpc-server
  name: metadata-grpc-configmap
  namespace: kubeflow
---
apiVersion: v1
data:
  viewer-pod-template.json: |-
    {
        "spec": {
            "serviceAccountName": "default-editor"
        }
    }
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui-configmap
  namespace: kubeflow
---
apiVersion: v1
data:
  namespace-labels.yaml: |
    # Below is a list of labels to be set by default.
    #
    # To add a namespace label, use `key: 'value'`, for example:
    # istio.io/rev: 'asm-191-1'
    #
    # To remove a namespace label, use `key: ''`. For example:
    # istio-injection: ''
    #
    # Profile controller will not replace a namespace label if its key already
    # exists. If you want to override the value of a previously applied label, you
    # need to:
    # 1. Remove the label by using `key: ''` and deploy.
    # 2. Add the label by using `key: 'value'` and deploy.
    #
    katib.kubeflow.org/metrics-collector-injection: "enabled"
    serving.kubeflow.org/inferenceservice: "enabled"
    pipelines.kubeflow.org/enabled: "true"
    app.kubernetes.io/part-of: "kubeflow-profile"
kind: ConfigMap
metadata:
  labels:
    kustomize.component: profiles
  name: namespace-labels-data-4df5t8mdgf
  namespace: kubeflow
---
apiVersion: v1
data:
  CLUSTER_DOMAIN: cluster.local
  CULL_IDLE_TIME: "1440"
  ENABLE_CULLING: "false"
  IDLENESS_CHECK_PERIOD: "1"
  ISTIO_GATEWAY: kubeflow/kubeflow-gateway
  USE_ISTIO: "true"
kind: ConfigMap
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-config-dm5b6dd458
  namespace: kubeflow
---
apiVersion: v1
data:
  MULTIUSER: "true"
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: persistenceagent-config-hkgkmd64bh
  namespace: kubeflow
---
apiVersion: v1
data:
  DEFAULTPIPELINERUNNERSERVICEACCOUNT: default-editor
  MULTIUSER: "true"
  VISUALIZATIONSERVICE_NAME: ml-pipeline-visualizationserver
  VISUALIZATIONSERVICE_PORT: "8888"
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: pipeline-api-server-config-dc9hkg52h6
  namespace: kubeflow
---
apiVersion: v1
data:
  ConMaxLifeTime: 120s
  DEFAULT_CACHE_STALENESS: ""
  MAXIMUM_CACHE_STALENESS: ""
  appName: pipeline
  appVersion: 2.0.0-alpha.7
  autoUpdatePipelineDefaultVersion: "true"
  bucketName: mlpipeline
  cacheDb: cachedb
  cacheImage: gcr.io/google-containers/busybox
  cacheNodeRestrictions: "false"
  cronScheduleTimezone: UTC
  dbHost: mysql
  dbPort: "3306"
  defaultPipelineRoot: ""
  mlmdDb: metadb
  pipelineDb: mlpipeline
  warning: |
    1. Do not use kubectl to edit this configmap, because some values are used
    during kustomize build. Instead, change the configmap and apply the entire
    kustomize manifests again.
    2. After updating the configmap, some deployments may need to be restarted
    until the changes take effect. A quick way to restart all deployments in a
    namespace: `kubectl rollout restart deployment -n <your-namespace>`.
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: pipeline-install-config
  namespace: kubeflow
---
apiVersion: v1
data:
  ADMIN: ""
  USERID_HEADER: kubeflow-userid
  USERID_PREFIX: ""
  WORKLOAD_IDENTITY: ""
kind: ConfigMap
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-config-46c7tgh6fd
  namespace: kubeflow
---
apiVersion: v1
data:
  ISTIO_GATEWAY: kubeflow/kubeflow-gateway
  RWO_PVC_SCHEDULING: "True"
  TENSORBOARD_IMAGE: tensorflow/tensorflow:2.5.1
kind: ConfigMap
metadata:
  name: tensorboard-controller-config-b98cb9gk9k
  namespace: kubeflow
---
apiVersion: v1
data:
  TWA_APP_SECURE_COOKIES: 'true '
  TWA_CLUSTER_DOMAIN: cluster.local
  TWA_PREFIX: /tensorboards
  TWA_USERID_HEADER: kubeflow-userid
  TWA_USERID_PREFIX: ""
kind: ConfigMap
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app-parameters-642bbg7t66
  namespace: kubeflow
---
apiVersion: v1
data:
  defaultTrialTemplate.yaml: |-
    apiVersion: batch/v1
    kind: Job
    spec:
      template:
        spec:
          containers:
            - name: training-container
              image: docker.io/kubeflowkatib/mxnet-mnist:v0.16.0-rc.1
              command:
                - "python3"
                - "/opt/mxnet-mnist/mnist.py"
                - "--batch-size=64"
                - "--lr=${trialParameters.learningRate}"
                - "--num-layers=${trialParameters.numberLayers}"
                - "--optimizer=${trialParameters.optimizer}"
          restartPolicy: Never
  enasCPUTemplate: |-
    apiVersion: batch/v1
    kind: Job
    spec:
      template:
        spec:
          containers:
            - name: training-container
              image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.16.0-rc.1
              command:
                - python3
                - -u
                - RunTrial.py
                - --num_epochs=1
                - "--architecture=\"${trialParameters.neuralNetworkArchitecture}\""
                - "--nn_config=\"${trialParameters.neuralNetworkConfig}\""
          restartPolicy: Never
  pytorchJobTemplate: |-
    apiVersion: kubeflow.org/v1
    kind: PyTorchJob
    spec:
      pytorchReplicaSpecs:
        Master:
          replicas: 1
          restartPolicy: OnFailure
          template:
            spec:
              containers:
                - name: pytorch
                  image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.16.0-rc.1
                  command:
                    - "python3"
                    - "/opt/pytorch-mnist/mnist.py"
                    - "--epochs=1"
                    - "--lr=${trialParameters.learningRate}"
                    - "--momentum=${trialParameters.momentum}"
        Worker:
          replicas: 2
          restartPolicy: OnFailure
          template:
            spec:
              containers:
                - name: pytorch
                  image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.16.0-rc.1
                  command:
                    - "python3"
                    - "/opt/pytorch-mnist/mnist.py"
                    - "--epochs=1"
                    - "--lr=${trialParameters.learningRate}"
                    - "--momentum=${trialParameters.momentum}"
kind: ConfigMap
metadata:
  labels:
    katib.kubeflow.org/component: trial-templates
  name: trial-templates
  namespace: kubeflow
---
apiVersion: v1
data:
  VWA_APP_SECURE_COOKIES: "true"
  VWA_CLUSTER_DOMAIN: cluster.local
  VWA_PREFIX: /volumes
  VWA_USERID_HEADER: kubeflow-userid
  VWA_USERID_PREFIX: ""
kind: ConfigMap
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app-parameters-57h65c44mg
  namespace: kubeflow
---
apiVersion: v1
data:
  artifactRepository: |
    archiveLogs: true
    s3:
      endpoint: "minio-service.kubeflow:9000"
      bucket: "mlpipeline"
      # keyFormat is a format pattern to define how artifacts will be organized in a bucket.
      # It can reference workflow metadata variables such as workflow.namespace, workflow.name,
      # pod.name. Can also use strftime formating of workflow.creationTimestamp so that workflow
      # artifacts can be organized by date. If omitted, will use `{{ "{{" }}workflow.name}}/{{ "{{" }}pod.name}}`,
      # which has potential for have collisions, because names do not guarantee they are unique
      # over the lifetime of the cluster.
      # Refer to https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.
      #
      # The following format looks like:
      # artifacts/my-workflow-abc123/2018/08/23/my-workflow-abc123-1234567890
      # Adding date into the path greatly reduces the chance of {{ "{{" }}pod.name}} collision.
      keyFormat: "artifacts/{{ "{{" }}workflow.name}}/{{ "{{" }}workflow.creationTimestamp.Y}}/{{ "{{" }}workflow.creationTimestamp.m}}/{{ "{{" }}workflow.creationTimestamp.d}}/{{ "{{" }}pod.name}}"
      # insecure will disable TLS. Primarily used for minio installs not configured with TLS
      insecure: true
      accessKeySecret:
        name: mlpipeline-minio-artifact
        key: accesskey
      secretKeySecret:
        name: mlpipeline-minio-artifact
        key: secretkey
  containerRuntimeExecutor: emissary
  executor: |
    imagePullPolicy: IfNotPresent
    resources:
      requests:
        cpu: 0.01
        memory: 32Mi
      limits:
        cpu: 0.5
        memory: 512Mi
kind: ConfigMap
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflow-controller-configmap
  namespace: kubeflow
---
apiVersion: v1
data:
  profile-name: kubeflow-user-example-com
  user: user@example.com
kind: ConfigMap
metadata:
  name: default-install-config-9h2h2b6hbk
---
apiVersion: v1
data:
  OIDC_CLIENT_ID: a3ViZWZsb3ctb2lkYy1hdXRoc2VydmljZQ==
  OIDC_CLIENT_SECRET: cFVCbkJPWTgwU25YZ2ppYlRZTTlaV056WTJ4cmVOR1Fvaw==
kind: Secret
metadata:
  name: dex-oidc-client
  namespace: auth
type: Opaque
---
apiVersion: v1
data:
  CLIENT_ID: a3ViZWZsb3ctb2lkYy1hdXRoc2VydmljZQ==
  CLIENT_SECRET: cFVCbkJPWTgwU25YZ2ppYlRZTTlaV056WTJ4cmVOR1Fvaw==
kind: Secret
metadata:
  name: oidc-authservice-client
  namespace: istio-system
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook-certs
  namespace: knative-eventing
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    networking.internal.knative.dev/certificate-uid: serving-certs
    serving-certs-ctrl: control-plane
  name: control-serving-certs
  namespace: knative-serving
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app.kubernetes.io/component: domain-mapping
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: domainmapping-webhook-certs
  namespace: knative-serving
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    networking.internal.knative.dev/certificate-uid: serving-certs
    serving-certs-ctrl: data-plane
  name: knative-serving-certs
  namespace: knative-serving
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: net-istio-webhook-certs
  namespace: knative-serving
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    networking.internal.knative.dev/certificate-uid: serving-certs
    routing-id: "0"
    serving-certs-ctrl: data-plane-routing
  name: routing-serving-certs
  namespace: knative-serving
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    networking.internal.knative.dev/certificate-uid: serving-certs
    serving-certs-ctrl: data-plane
  name: serving-certs-ctrl-ca
  namespace: knative-serving
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: webhook-certs
  namespace: knative-serving
---
apiVersion: v1
data:
  MYSQL_ROOT_PASSWORD: dGVzdA==
kind: Secret
metadata:
  name: katib-mysql-secrets
  namespace: kubeflow
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-webhook-server-secret
  namespace: kubeflow
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: mlpipeline-minio-artifact
  namespace: kubeflow
stringData:
  accesskey: minio
  secretkey: minio123
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: mysql-secret
  namespace: kubeflow
stringData:
  password: ""
  username: root
---
apiVersion: v1
kind: Service
metadata:
  name: dex
  namespace: auth
spec:
  ports:
  - name: dex
    port: 5556
    protocol: TCP
    targetPort: 5556
  selector:
    app: dex
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager
  namespace: cert-manager
spec:
  ports:
  - name: tcp-prometheus-servicemonitor
    port: 9402
    protocol: TCP
    targetPort: 9402
  selector:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook
  namespace: cert-manager
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  name: authservice
  namespace: istio-system
spec:
  ports:
  - name: http-authservice
    port: 8080
    targetPort: http-api
  publishNotReadyAddresses: true
  selector:
    app: authservice
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: cluster-local-gateway
    install.operator.istio.io/owning-resource: unknown
    istio: cluster-local-gateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: cluster-local-gateway
  namespace: istio-system
spec:
  ports:
  - name: status-port
    port: 15020
    protocol: TCP
    targetPort: 15020
  - name: http2
    port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: cluster-local-gateway
    istio: cluster-local-gateway
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: istio-ingressgateway
    install.operator.istio.io/owning-resource: unknown
    istio: ingressgateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: istio-ingressgateway
  namespace: istio-system
spec:
  ports:
  - name: status-port
    port: 15021
    protocol: TCP
    targetPort: 15021
  - name: http2
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: istiod
    install.operator.istio.io/owning-resource: unknown
    istio: pilot
    istio.io/rev: default
    operator.istio.io/component: Pilot
    release: istio
  name: istiod
  namespace: istio-system
spec:
  ports:
  - name: grpc-xds
    port: 15010
    protocol: TCP
  - name: https-dns
    port: 15012
    protocol: TCP
  - name: https-webhook
    port: 443
    protocol: TCP
    targetPort: 15017
  - name: http-monitoring
    port: 15014
    protocol: TCP
  selector:
    app: istiod
    istio: pilot
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    experimental.istio.io/disable-gateway-port-translation: "true"
    networking.knative.dev/ingress-provider: istio
  name: knative-local-gateway
  namespace: istio-system
spec:
  ports:
  - name: http2
    port: 80
    targetPort: 8081
  selector:
    app: cluster-local-gateway
    istio: cluster-local-gateway
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
    role: eventing-webhook
  name: eventing-webhook
  namespace: knative-eventing
spec:
  ports:
  - name: https-webhook
    port: 443
    targetPort: 8443
  selector:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    kustomize.component: knative
    role: eventing-webhook
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: activator
    app.kubernetes.io/component: activator
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: activator-service
  namespace: knative-serving
spec:
  ports:
  - name: http-metrics
    port: 9090
    targetPort: 9090
  - name: http-profiling
    port: 8008
    targetPort: 8008
  - name: http
    port: 80
    targetPort: 8012
  - name: http2
    port: 81
    targetPort: 8013
  - name: https
    port: 443
    targetPort: 8112
  selector:
    app: activator
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: autoscaler
    app.kubernetes.io/component: autoscaler
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: autoscaler
  namespace: knative-serving
spec:
  ports:
  - name: http-metrics
    port: 9090
    targetPort: 9090
  - name: http-profiling
    port: 8008
    targetPort: 8008
  - name: http
    port: 8080
    targetPort: 8080
  selector:
    app: autoscaler
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: controller
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: controller
  namespace: knative-serving
spec:
  ports:
  - name: http-metrics
    port: 9090
    targetPort: 9090
  - name: http-profiling
    port: 8008
    targetPort: 8008
  selector:
    app: controller
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: domain-mapping
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    role: domainmapping-webhook
  name: domainmapping-webhook
  namespace: knative-serving
spec:
  ports:
  - name: http-metrics
    port: 9090
    targetPort: 9090
  - name: http-profiling
    port: 8008
    targetPort: 8008
  - name: https-webhook
    port: 443
    targetPort: 8443
  selector:
    app: domainmapping-webhook
    role: domainmapping-webhook
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
    role: net-istio-webhook
  name: net-istio-webhook
  namespace: knative-serving
spec:
  ports:
  - name: http-metrics
    port: 9090
    targetPort: metrics
  - name: http-profiling
    port: 8008
    targetPort: profiling
  - name: https-webhook
    port: 443
    targetPort: https-webhook
  selector:
    app: net-istio-webhook
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
    role: webhook
  name: webhook
  namespace: knative-serving
spec:
  ports:
  - name: http-metrics
    port: 9090
    targetPort: 9090
  - name: http-profiling
    port: 8008
    targetPort: 8008
  - name: https-webhook
    port: 443
    targetPort: 8443
  selector:
    app: webhook
    role: webhook
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-service
  namespace: kubeflow
spec:
  ports:
  - name: https-webhook
    port: 443
    targetPort: https-webhook
  selector:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: cache-server
  namespace: kubeflow
spec:
  ports:
  - port: 443
    targetPort: webhook-api
  selector:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
  namespace: kubeflow
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8082
  selector:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  sessionAffinity: None
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
    run: jupyter-web-app
  name: jupyter-web-app-service
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 5000
  selector:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus.io/port: "8080"
    prometheus.io/scheme: http
    prometheus.io/scrape: "true"
  labels:
    katib.kubeflow.org/component: controller
  name: katib-controller
  namespace: kubeflow
spec:
  ports:
  - name: webhook
    port: 443
    protocol: TCP
    targetPort: 8443
  - name: metrics
    port: 8080
    targetPort: 8080
  - name: healthz
    port: 18080
    targetPort: 18080
  selector:
    katib.kubeflow.org/component: controller
---
apiVersion: v1
kind: Service
metadata:
  labels:
    katib.kubeflow.org/component: db-manager
  name: katib-db-manager
  namespace: kubeflow
spec:
  ports:
  - name: api
    port: 6789
    protocol: TCP
  selector:
    katib.kubeflow.org/component: db-manager
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    katib.kubeflow.org/component: mysql
  name: katib-mysql
  namespace: kubeflow
spec:
  ports:
  - name: dbapi
    port: 3306
    protocol: TCP
  selector:
    katib.kubeflow.org/component: mysql
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    katib.kubeflow.org/component: ui
  name: katib-ui
  namespace: kubeflow
spec:
  ports:
  - name: ui
    port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    katib.kubeflow.org/component: ui
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus.io/port: "8443"
    prometheus.io/scheme: https
    prometheus.io/scrape: "true"
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
    control-plane: kserve-controller-manager
    controller-tools.k8s.io: "1.0"
  name: kserve-controller-manager-metrics-service
  namespace: kubeflow
spec:
  ports:
  - name: https
    port: 8443
    targetPort: https
  selector:
    app: kserve
    app.kubernetes.io/name: kserve
    control-plane: kserve-controller-manager
    controller-tools.k8s.io: "1.0"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
    control-plane: kserve-controller-manager
    controller-tools.k8s.io: "1.0"
  name: kserve-controller-manager-service
  namespace: kubeflow
spec:
  ports:
  - port: 8443
    protocol: TCP
    targetPort: https
  selector:
    app: kserve
    app.kubernetes.io/name: kserve
    control-plane: kserve-controller-manager
    controller-tools.k8s.io: "1.0"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 5000
  selector:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: kserve-webhook-server-service
  namespace: kubeflow
spec:
  ports:
  - port: 443
    targetPort: webhook-server
  selector:
    app: kserve
    app.kubernetes.io/name: kserve
    control-plane: kserve-controller-manager
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kubeflow-pipelines-profile-controller
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-profile-controller
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: kubeflow-pipelines-profile-controller
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: metadata-envoy
    application-crd-id: kubeflow-pipelines
  name: metadata-envoy-service
  namespace: kubeflow
spec:
  ports:
  - name: md-envoy
    port: 9090
    protocol: TCP
  selector:
    application-crd-id: kubeflow-pipelines
    component: metadata-envoy
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: metadata
    application-crd-id: kubeflow-pipelines
  name: metadata-grpc-service
  namespace: kubeflow
spec:
  ports:
  - name: grpc-api
    port: 8080
    protocol: TCP
  selector:
    application-crd-id: kubeflow-pipelines
    component: metadata-grpc-server
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: minio-service
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 9000
    protocol: TCP
    targetPort: 9000
  selector:
    app: minio
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus.io/port: "8888"
    prometheus.io/scheme: http
    prometheus.io/scrape: "true"
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 8888
    protocol: TCP
    targetPort: 8888
  - name: grpc
    port: 8887
    protocol: TCP
    targetPort: 8887
  selector:
    app: ml-pipeline
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 3000
  selector:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-visualizationserver
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 8888
    protocol: TCP
    targetPort: 8888
  selector:
    app: ml-pipeline-visualizationserver
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: mysql
  namespace: kubeflow
spec:
  ports:
  - port: 3306
    protocol: TCP
    targetPort: 3306
  selector:
    app: mysql
    application-crd-id: kubeflow-pipelines
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-service
  namespace: kubeflow
spec:
  ports:
  - port: 443
  selector:
    app: notebook-controller
    kustomize.component: notebook-controller
---
apiVersion: v1
kind: Service
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-kfam
  namespace: kubeflow
spec:
  ports:
  - port: 8081
  selector:
    kustomize.component: profiles
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: tensorboard-controller
    control-plane: controller-manager
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-controller-manager-metrics-service
  namespace: kubeflow
spec:
  ports:
  - name: https
    port: 8443
    protocol: TCP
    targetPort: https
  selector:
    app: tensorboard-controller
    control-plane: controller-manager
    kustomize.component: tensorboard-controller
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
    run: tensorboards-web-app
  name: tensorboards-web-app-service
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 5000
  selector:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus.io/path: /metrics
    prometheus.io/port: "8080"
    prometheus.io/scrape: "true"
  labels:
    app: training-operator
  name: training-operator
  namespace: kubeflow
spec:
  ports:
  - name: monitoring-port
    port: 8080
    targetPort: 8080
  selector:
    control-plane: kubeflow-training-operator
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
    run: volumes-web-app
  name: volumes-web-app-service
  namespace: kubeflow
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 5000
  selector:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    workflows.argoproj.io/description: |
      This service is deprecated. It will be removed in v3.4.

      https://github.com/argoproj/argo-workflows/issues/8441
  labels:
    app: workflow-controller
    application-crd-id: kubeflow-pipelines
  name: workflow-controller-metrics
  namespace: kubeflow
spec:
  ports:
  - name: metrics
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app: workflow-controller
    application-crd-id: kubeflow-pipelines
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflow-controller
value: 1000000
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: authservice-pvc
  namespace: istio-system
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: katib-mysql
  namespace: kubeflow
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: minio-pvc
  namespace: kubeflow
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: mysql-pv-claim
  namespace: kubeflow
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: dex
  name: dex
  namespace: auth
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dex
  template:
    metadata:
      labels:
        app: dex
    spec:
      containers:
      - command:
        - dex
        - serve
        - /etc/dex/cfg/config.yaml
        env:
        - name: KUBERNETES_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        envFrom:
        - secretRef:
            name: dex-oidc-client
        image: ghcr.io/dexidp/dex:v2.36.0
        name: dex
        ports:
        - containerPort: 5556
          name: http
        volumeMounts:
        - mountPath: /etc/dex/cfg
          name: config
      serviceAccountName: dex
      volumes:
      - configMap:
          items:
          - key: config.yaml
            path: config.yaml
          name: dex
        name: config
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: cert-manager
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cert-manager
    app.kubernetes.io/version: v1.12.2
  name: cert-manager
  namespace: cert-manager
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: controller
      app.kubernetes.io/instance: cert-manager
      app.kubernetes.io/name: cert-manager
  template:
    metadata:
      annotations:
        prometheus.io/path: /metrics
        prometheus.io/port: "9402"
        prometheus.io/scrape: "true"
      labels:
        app: cert-manager
        app.kubernetes.io/component: controller
        app.kubernetes.io/instance: cert-manager
        app.kubernetes.io/name: cert-manager
        app.kubernetes.io/version: v1.12.2
    spec:
      containers:
      - args:
        - --v=2
        - --cluster-resource-namespace=$(POD_NAMESPACE)
        - --leader-election-namespace=kube-system
        - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.12.2
        - --max-concurrent-challenges=60
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        image: quay.io/jetstack/cert-manager-controller:v1.12.2
        imagePullPolicy: IfNotPresent
        name: cert-manager-controller
        ports:
        - containerPort: 9402
          name: http-metrics
          protocol: TCP
        - containerPort: 9403
          name: http-healthz
          protocol: TCP
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
      nodeSelector:
        kubernetes.io/os: linux
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: cert-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: cainjector
    app.kubernetes.io/component: cainjector
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: cainjector
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-cainjector
  namespace: cert-manager
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: cainjector
      app.kubernetes.io/instance: cert-manager
      app.kubernetes.io/name: cainjector
  template:
    metadata:
      labels:
        app: cainjector
        app.kubernetes.io/component: cainjector
        app.kubernetes.io/instance: cert-manager
        app.kubernetes.io/name: cainjector
        app.kubernetes.io/version: v1.12.2
    spec:
      containers:
      - args:
        - --v=2
        - --leader-election-namespace=kube-system
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        image: quay.io/jetstack/cert-manager-cainjector:v1.12.2
        imagePullPolicy: IfNotPresent
        name: cert-manager-cainjector
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
      nodeSelector:
        kubernetes.io/os: linux
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: cert-manager-cainjector
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook
  namespace: cert-manager
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: webhook
      app.kubernetes.io/instance: cert-manager
      app.kubernetes.io/name: webhook
  template:
    metadata:
      labels:
        app: webhook
        app.kubernetes.io/component: webhook
        app.kubernetes.io/instance: cert-manager
        app.kubernetes.io/name: webhook
        app.kubernetes.io/version: v1.12.2
    spec:
      containers:
      - args:
        - --v=2
        - --secure-port=10250
        - --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
        - --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
        - --dynamic-serving-dns-names=cert-manager-webhook
        - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
        - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        image: quay.io/jetstack/cert-manager-webhook:v1.12.2
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /livez
            port: 6080
            scheme: HTTP
          initialDelaySeconds: 60
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: cert-manager-webhook
        ports:
        - containerPort: 10250
          name: https
          protocol: TCP
        - containerPort: 6080
          name: healthcheck
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz
            port: 6080
            scheme: HTTP
          initialDelaySeconds: 5
          periodSeconds: 5
          successThreshold: 1
          timeoutSeconds: 1
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
      nodeSelector:
        kubernetes.io/os: linux
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: cert-manager-webhook
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: cluster-local-gateway
    install.operator.istio.io/owning-resource: unknown
    istio: cluster-local-gateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: cluster-local-gateway
  namespace: istio-system
spec:
  selector:
    matchLabels:
      app: cluster-local-gateway
      istio: cluster-local-gateway
  strategy:
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 25%
  template:
    metadata:
      annotations:
        prometheus.io/path: /stats/prometheus
        prometheus.io/port: "15020"
        prometheus.io/scrape: "true"
        sidecar.istio.io/inject: "false"
      labels:
        app: cluster-local-gateway
        chart: gateways
        heritage: Tiller
        install.operator.istio.io/owning-resource: unknown
        istio: cluster-local-gateway
        istio.io/rev: default
        operator.istio.io/component: IngressGateways
        release: istio
        service.istio.io/canonical-name: cluster-local-gateway
        service.istio.io/canonical-revision: latest
        sidecar.istio.io/inject: "false"
    spec:
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution: null
          requiredDuringSchedulingIgnoredDuringExecution: null
      containers:
      - args:
        - proxy
        - router
        - --domain
        - $(POD_NAMESPACE).svc.cluster.local
        - --proxyLogLevel=warning
        - --proxyComponentLogLevel=misc:error
        - --log_output_level=default:info
        env:
        - name: ISTIO_META_ROUTER_MODE
          value: sni-dnat
        - name: JWT_POLICY
          value: third-party-jwt
        - name: PILOT_CERT_PROVIDER
          value: istiod
        - name: CA_ADDR
          value: istiod.istio-system.svc:15012
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: INSTANCE_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        - name: ISTIO_META_WORKLOAD_NAME
          value: cluster-local-gateway
        - name: ISTIO_META_OWNER
          value: kubernetes://apis/apps/v1/namespaces/istio-system/deployments/cluster-local-gateway
        - name: ISTIO_META_MESH_ID
          value: cluster.local
        - name: TRUST_DOMAIN
          value: cluster.local
        - name: ISTIO_META_UNPRIVILEGED_POD
          value: "true"
        - name: ISTIO_META_CLUSTER_ID
          value: Kubernetes
        - name: ISTIO_META_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        image: docker.io/istio/proxyv2:1.17.3
        name: istio-proxy
        ports:
        - containerPort: 15020
          protocol: TCP
        - containerPort: 8080
          protocol: TCP
        - containerPort: 15090
          name: http-envoy-prom
          protocol: TCP
        readinessProbe:
          failureThreshold: 30
          httpGet:
            path: /healthz/ready
            port: 15021
            scheme: HTTP
          initialDelaySeconds: 1
          periodSeconds: 2
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: 2000m
            memory: 1024Mi
          requests:
            cpu: 100m
            memory: 128Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          privileged: false
          readOnlyRootFilesystem: true
        volumeMounts:
        - mountPath: /var/run/secrets/workload-spiffe-uds
          name: workload-socket
        - mountPath: /var/run/secrets/credential-uds
          name: credential-socket
        - mountPath: /var/run/secrets/workload-spiffe-credentials
          name: workload-certs
        - mountPath: /etc/istio/proxy
          name: istio-envoy
        - mountPath: /etc/istio/config
          name: config-volume
        - mountPath: /var/run/secrets/istio
          name: istiod-ca-cert
        - mountPath: /var/run/secrets/tokens
          name: istio-token
          readOnly: true
        - mountPath: /var/lib/istio/data
          name: istio-data
        - mountPath: /etc/istio/pod
          name: podinfo
        - mountPath: /etc/istio/ingressgateway-certs
          name: ingressgateway-certs
          readOnly: true
        - mountPath: /etc/istio/ingressgateway-ca-certs
          name: ingressgateway-ca-certs
          readOnly: true
      securityContext:
        fsGroup: 1337
        runAsGroup: 1337
        runAsNonRoot: true
        runAsUser: 1337
      serviceAccountName: cluster-local-gateway-service-account
      volumes:
      - emptyDir: {}
        name: workload-socket
      - emptyDir: {}
        name: credential-socket
      - emptyDir: {}
        name: workload-certs
      - configMap:
          name: istio-ca-root-cert
        name: istiod-ca-cert
      - downwardAPI:
          items:
          - fieldRef:
              fieldPath: metadata.labels
            path: labels
          - fieldRef:
              fieldPath: metadata.annotations
            path: annotations
        name: podinfo
      - emptyDir: {}
        name: istio-envoy
      - emptyDir: {}
        name: istio-data
      - name: istio-token
        projected:
          sources:
          - serviceAccountToken:
              audience: istio-ca
              expirationSeconds: 43200
              path: istio-token
      - configMap:
          name: istio
          optional: true
        name: config-volume
      - name: ingressgateway-certs
        secret:
          optional: true
          secretName: istio-ingressgateway-certs
      - name: ingressgateway-ca-certs
        secret:
          optional: true
          secretName: istio-ingressgateway-ca-certs
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: istio-ingressgateway
    install.operator.istio.io/owning-resource: unknown
    istio: ingressgateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: istio-ingressgateway
  namespace: istio-system
spec:
  selector:
    matchLabels:
      app: istio-ingressgateway
      istio: ingressgateway
  strategy:
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 25%
  template:
    metadata:
      annotations:
        prometheus.io/path: /stats/prometheus
        prometheus.io/port: "15020"
        prometheus.io/scrape: "true"
        sidecar.istio.io/inject: "false"
      labels:
        app: istio-ingressgateway
        chart: gateways
        heritage: Tiller
        install.operator.istio.io/owning-resource: unknown
        istio: ingressgateway
        istio.io/rev: default
        operator.istio.io/component: IngressGateways
        release: istio
        service.istio.io/canonical-name: istio-ingressgateway
        service.istio.io/canonical-revision: latest
        sidecar.istio.io/inject: "false"
    spec:
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution: null
          requiredDuringSchedulingIgnoredDuringExecution: null
      containers:
      - args:
        - proxy
        - router
        - --domain
        - $(POD_NAMESPACE).svc.cluster.local
        - --proxyLogLevel=warning
        - --proxyComponentLogLevel=misc:error
        - --log_output_level=default:info
        env:
        - name: JWT_POLICY
          value: third-party-jwt
        - name: PILOT_CERT_PROVIDER
          value: istiod
        - name: CA_ADDR
          value: istiod.istio-system.svc:15012
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: INSTANCE_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        - name: ISTIO_META_WORKLOAD_NAME
          value: istio-ingressgateway
        - name: ISTIO_META_OWNER
          value: kubernetes://apis/apps/v1/namespaces/istio-system/deployments/istio-ingressgateway
        - name: ISTIO_META_MESH_ID
          value: cluster.local
        - name: TRUST_DOMAIN
          value: cluster.local
        - name: ISTIO_META_UNPRIVILEGED_POD
          value: "true"
        - name: ISTIO_META_CLUSTER_ID
          value: Kubernetes
        - name: ISTIO_META_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        image: docker.io/istio/proxyv2:1.17.3
        name: istio-proxy
        ports:
        - containerPort: 15021
          protocol: TCP
        - containerPort: 8080
          protocol: TCP
        - containerPort: 8443
          protocol: TCP
        - containerPort: 15090
          name: http-envoy-prom
          protocol: TCP
        readinessProbe:
          failureThreshold: 30
          httpGet:
            path: /healthz/ready
            port: 15021
            scheme: HTTP
          initialDelaySeconds: 1
          periodSeconds: 2
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: 2000m
            memory: 1024Mi
          requests:
            cpu: 100m
            memory: 128Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          privileged: false
          readOnlyRootFilesystem: true
        volumeMounts:
        - mountPath: /var/run/secrets/workload-spiffe-uds
          name: workload-socket
        - mountPath: /var/run/secrets/credential-uds
          name: credential-socket
        - mountPath: /var/run/secrets/workload-spiffe-credentials
          name: workload-certs
        - mountPath: /etc/istio/proxy
          name: istio-envoy
        - mountPath: /etc/istio/config
          name: config-volume
        - mountPath: /var/run/secrets/istio
          name: istiod-ca-cert
        - mountPath: /var/run/secrets/tokens
          name: istio-token
          readOnly: true
        - mountPath: /var/lib/istio/data
          name: istio-data
        - mountPath: /etc/istio/pod
          name: podinfo
        - mountPath: /etc/istio/ingressgateway-certs
          name: ingressgateway-certs
          readOnly: true
        - mountPath: /etc/istio/ingressgateway-ca-certs
          name: ingressgateway-ca-certs
          readOnly: true
      securityContext:
        fsGroup: 1337
        runAsGroup: 1337
        runAsNonRoot: true
        runAsUser: 1337
      serviceAccountName: istio-ingressgateway-service-account
      volumes:
      - emptyDir: {}
        name: workload-socket
      - emptyDir: {}
        name: credential-socket
      - emptyDir: {}
        name: workload-certs
      - configMap:
          name: istio-ca-root-cert
        name: istiod-ca-cert
      - downwardAPI:
          items:
          - fieldRef:
              fieldPath: metadata.labels
            path: labels
          - fieldRef:
              fieldPath: metadata.annotations
            path: annotations
        name: podinfo
      - emptyDir: {}
        name: istio-envoy
      - emptyDir: {}
        name: istio-data
      - name: istio-token
        projected:
          sources:
          - serviceAccountToken:
              audience: istio-ca
              expirationSeconds: 43200
              path: istio-token
      - configMap:
          name: istio
          optional: true
        name: config-volume
      - name: ingressgateway-certs
        secret:
          optional: true
          secretName: istio-ingressgateway-certs
      - name: ingressgateway-ca-certs
        secret:
          optional: true
          secretName: istio-ingressgateway-ca-certs
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: istiod
    install.operator.istio.io/owning-resource: unknown
    istio: pilot
    istio.io/rev: default
    operator.istio.io/component: Pilot
    release: istio
  name: istiod
  namespace: istio-system
spec:
  selector:
    matchLabels:
      istio: pilot
  strategy:
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 25%
  template:
    metadata:
      annotations:
        prometheus.io/port: "15014"
        prometheus.io/scrape: "true"
        sidecar.istio.io/inject: "false"
      labels:
        app: istiod
        install.operator.istio.io/owning-resource: unknown
        istio: pilot
        istio.io/rev: default
        operator.istio.io/component: Pilot
        sidecar.istio.io/inject: "false"
    spec:
      containers:
      - args:
        - discovery
        - --monitoringAddr=:15014
        - --log_output_level=default:info
        - --domain
        - cluster.local
        - --keepaliveMaxServerConnectionAge
        - 30m
        env:
        - name: ENABLE_DEBUG_ON_HTTP
        - name: REVISION
          value: default
        - name: JWT_POLICY
          value: third-party-jwt
        - name: PILOT_CERT_PROVIDER
          value: istiod
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KUBECONFIG
          value: /var/run/secrets/remote/config
        - name: PILOT_TRACE_SAMPLING
          value: "1"
        - name: PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_OUTBOUND
          value: "true"
        - name: PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_INBOUND
          value: "true"
        - name: ISTIOD_ADDR
          value: istiod.istio-system.svc:15012
        - name: PILOT_ENABLE_ANALYSIS
          value: "false"
        - name: CLUSTER_ID
          value: Kubernetes
        image: docker.io/istio/pilot:1.17.3
        name: discovery
        ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 15010
          protocol: TCP
        - containerPort: 15017
          protocol: TCP
        readinessProbe:
          httpGet:
            path: /ready
            port: 8080
          initialDelaySeconds: 1
          periodSeconds: 3
          timeoutSeconds: 5
        resources:
          requests:
            cpu: 500m
            memory: 2048Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsGroup: 1337
          runAsNonRoot: true
          runAsUser: 1337
        volumeMounts:
        - mountPath: /var/run/secrets/tokens
          name: istio-token
          readOnly: true
        - mountPath: /var/run/secrets/istio-dns
          name: local-certs
        - mountPath: /etc/cacerts
          name: cacerts
          readOnly: true
        - mountPath: /var/run/secrets/remote
          name: istio-kubeconfig
          readOnly: true
        - mountPath: /var/run/secrets/istiod/tls
          name: istio-csr-dns-cert
          readOnly: true
        - mountPath: /var/run/secrets/istiod/ca
          name: istio-csr-ca-configmap
          readOnly: true
      securityContext:
        fsGroup: 1337
      serviceAccountName: istiod
      volumes:
      - emptyDir:
          medium: Memory
        name: local-certs
      - name: istio-token
        projected:
          sources:
          - serviceAccountToken:
              audience: istio-ca
              expirationSeconds: 43200
              path: istio-token
      - name: cacerts
        secret:
          optional: true
          secretName: cacerts
      - name: istio-kubeconfig
        secret:
          optional: true
          secretName: istio-kubeconfig
      - name: istio-csr-dns-cert
        secret:
          optional: true
          secretName: istiod-tls
      - configMap:
          defaultMode: 420
          name: istio-ca-root-cert
          optional: true
        name: istio-csr-ca-configmap
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    knative.dev/high-availability: "true"
    kustomize.component: knative
  name: eventing-controller
  namespace: knative-eventing
spec:
  selector:
    matchLabels:
      app: eventing-controller
      app.kubernetes.io/component: knative-eventing
      app.kubernetes.io/name: knative-eventing
      kustomize.component: knative
  template:
    metadata:
      labels:
        app: eventing-controller
        app.kubernetes.io/component: knative-eventing
        app.kubernetes.io/name: knative-eventing
        app.kubernetes.io/version: 1.10.1
        kustomize.component: knative
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: eventing-controller
                  app.kubernetes.io/component: knative-eventing
                  app.kubernetes.io/name: knative-eventing
                  kustomize.component: knative
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: knative.dev/eventing
        - name: APISERVER_RA_IMAGE
          value: gcr.io/knative-releases/knative.dev/eventing/cmd/apiserver_receive_adapter@sha256:828db8155996e40c13b77c1d039dba98153dcfcbe272248e92866bd7b6d6a17d
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        image: gcr.io/knative-releases/knative.dev/eventing/cmd/controller@sha256:92967bab4ad8f7d55ce3a77ba8868f3f2ce173c010958c28b9a690964ad6ee9b
        livenessProbe:
          httpGet:
            path: /health
            port: probes
            scheme: HTTP
          initialDelaySeconds: 20
          periodSeconds: 10
          timeoutSeconds: 5
        name: eventing-controller
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8080
          name: probes
        readinessProbe:
          httpGet:
            path: /readiness
            port: probes
            scheme: HTTP
          initialDelaySeconds: 20
          periodSeconds: 10
          timeoutSeconds: 5
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
      enableServiceLinks: false
      serviceAccountName: eventing-controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook
  namespace: knative-eventing
spec:
  selector:
    matchLabels:
      app: eventing-webhook
      app.kubernetes.io/component: knative-eventing
      app.kubernetes.io/name: knative-eventing
      kustomize.component: knative
      role: eventing-webhook
  template:
    metadata:
      labels:
        app: eventing-webhook
        app.kubernetes.io/component: knative-eventing
        app.kubernetes.io/name: knative-eventing
        app.kubernetes.io/version: 1.10.1
        kustomize.component: knative
        role: eventing-webhook
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: eventing-webhook
                  app.kubernetes.io/component: knative-eventing
                  app.kubernetes.io/name: knative-eventing
                  kustomize.component: knative
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: METRICS_DOMAIN
          value: knative.dev/eventing
        - name: WEBHOOK_NAME
          value: eventing-webhook
        - name: WEBHOOK_PORT
          value: "8443"
        - name: SINK_BINDING_SELECTION_MODE
          value: exclusion
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        image: gcr.io/knative-releases/knative.dev/eventing/cmd/webhook@sha256:ebf93652f0254ac56600bedf4a7d81611b3e1e7f6526c6998da5dd24cdc67ee1
        livenessProbe:
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          initialDelaySeconds: 120
          periodSeconds: 1
        name: eventing-webhook
        ports:
        - containerPort: 8443
          name: https-webhook
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        readinessProbe:
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          periodSeconds: 1
        resources:
          limits:
            cpu: 200m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 50Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
      enableServiceLinks: false
      serviceAccountName: eventing-webhook
      terminationGracePeriodSeconds: 300
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: pingsource-mt-adapter
  namespace: knative-eventing
spec:
  replicas: 0
  selector:
    matchLabels:
      app.kubernetes.io/component: knative-eventing
      app.kubernetes.io/name: knative-eventing
      eventing.knative.dev/source: ping-source-controller
      kustomize.component: knative
      sources.knative.dev/role: adapter
  template:
    metadata:
      labels:
        app.kubernetes.io/component: knative-eventing
        app.kubernetes.io/name: knative-eventing
        app.kubernetes.io/version: 1.10.1
        eventing.knative.dev/source: ping-source-controller
        kustomize.component: knative
        sources.knative.dev/role: adapter
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app.kubernetes.io/component: knative-eventing
                  app.kubernetes.io/name: knative-eventing
                  eventing.knative.dev/source: ping-source-controller
                  kustomize.component: knative
                  sources.knative.dev/role: adapter
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: SYSTEM_NAMESPACE
          value: ""
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: NAMESPACE
          value: ""
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: K_METRICS_CONFIG
          value: ""
        - name: K_LOGGING_CONFIG
          value: ""
        - name: K_LEADER_ELECTION_CONFIG
          value: ""
        - name: K_NO_SHUTDOWN_AFTER
          value: ""
        - name: K_SINK_TIMEOUT
          value: "-1"
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        image: gcr.io/knative-releases/knative.dev/eventing/cmd/mtping@sha256:6d35cc98baa098fc0c5b4290859e363a8350a9dadc31d1191b0b5c9796958223
        name: dispatcher
        ports:
        - containerPort: 9090
          name: metrics
          protocol: TCP
        resources:
          limits:
            cpu: 1000m
            memory: 2048Mi
          requests:
            cpu: 125m
            memory: 64Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      enableServiceLinks: false
      serviceAccountName: pingsource-mt-adapter
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: activator
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: activator
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: activator
      role: activator
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: activator
        app.kubernetes.io/component: activator
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.2
        role: activator
    spec:
      containers:
      - env:
        - name: GOGC
          value: "500"
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: knative.dev/internal/serving
        image: gcr.io/knative-releases/knative.dev/serving/cmd/activator@sha256:c2994c2b6c2c7f38ad1b85c71789bf1753cc8979926423c83231e62258837cb9
        livenessProbe:
          failureThreshold: 12
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: activator
            port: 8012
          initialDelaySeconds: 15
          periodSeconds: 10
        name: activator
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8012
          name: http1
        - containerPort: 8013
          name: h2c
        readinessProbe:
          failureThreshold: 5
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: activator
            port: 8012
          periodSeconds: 5
        resources:
          limits:
            cpu: 1000m
            memory: 600Mi
          requests:
            cpu: 300m
            memory: 60Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
      terminationGracePeriodSeconds: 600
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: autoscaler
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: autoscaler
  namespace: knative-serving
spec:
  replicas: 1
  selector:
    matchLabels:
      app: autoscaler
  strategy:
    rollingUpdate:
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: autoscaler
        app.kubernetes.io/component: autoscaler
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.2
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: autoscaler
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: knative.dev/serving
        image: gcr.io/knative-releases/knative.dev/serving/cmd/autoscaler@sha256:8319aa662b4912e8175018bd7cc90c63838562a27515197b803bdcd5634c7007
        livenessProbe:
          failureThreshold: 6
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: autoscaler
            port: 8080
        name: autoscaler
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8080
          name: websocket
        readinessProbe:
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: autoscaler
            port: 8080
        resources:
          limits:
            cpu: 1000m
            memory: 1000Mi
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: controller
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: controller
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: controller
        app.kubernetes.io/component: controller
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.2
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: controller
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: knative.dev/internal/serving
        image: gcr.io/knative-releases/knative.dev/serving/cmd/controller@sha256:98a2cc7fd62ee95e137116504e7166c32c65efef42c3d1454630780410abf943
        livenessProbe:
          failureThreshold: 6
          httpGet:
            path: /health
            port: probes
            scheme: HTTP
          periodSeconds: 5
        name: controller
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8080
          name: probes
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readiness
            port: probes
            scheme: HTTP
          periodSeconds: 5
        resources:
          limits:
            cpu: 1000m
            memory: 1000Mi
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: domain-mapping
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: domain-mapping
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: domain-mapping
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: domain-mapping
        app.kubernetes.io/component: domain-mapping
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.2
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: domain-mapping
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: knative.dev/serving
        image: gcr.io/knative-releases/knative.dev/serving/cmd/domain-mapping@sha256:f66c41ad7a73f5d4f4bdfec4294d5459c477f09f3ce52934d1a215e32316b59b
        livenessProbe:
          failureThreshold: 6
          httpGet:
            path: /health
            port: probes
            scheme: HTTP
          periodSeconds: 5
        name: domain-mapping
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8080
          name: probes
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readiness
            port: probes
            scheme: HTTP
          periodSeconds: 5
        resources:
          limits:
            cpu: 300m
            memory: 400Mi
          requests:
            cpu: 30m
            memory: 40Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: domain-mapping
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: domainmapping-webhook
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: domainmapping-webhook
      role: domainmapping-webhook
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: domainmapping-webhook
        app.kubernetes.io/component: domain-mapping
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.2
        role: domainmapping-webhook
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: domainmapping-webhook
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: WEBHOOK_PORT
          value: "8443"
        - name: METRICS_DOMAIN
          value: knative.dev/serving
        image: gcr.io/knative-releases/knative.dev/serving/cmd/domain-mapping-webhook@sha256:7368aaddf2be8d8784dc7195f5bc272ecfe49d429697f48de0ddc44f278167aa
        livenessProbe:
          failureThreshold: 6
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          initialDelaySeconds: 20
          periodSeconds: 1
        name: domainmapping-webhook
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8443
          name: https-webhook
        readinessProbe:
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          periodSeconds: 1
        resources:
          limits:
            cpu: 500m
            memory: 500Mi
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
      terminationGracePeriodSeconds: 300
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: net-istio-controller
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: net-istio-controller
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: net-istio-controller
        app.kubernetes.io/component: net-istio
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.1
    spec:
      containers:
      - env:
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID
          value: "false"
        - name: METRICS_DOMAIN
          value: knative.dev/net-istio
        image: gcr.io/knative-releases/knative.dev/net-istio/cmd/controller@sha256:421aa67057240fa0c56ebf2c6e5b482a12842005805c46e067129402d1751220
        livenessProbe:
          failureThreshold: 6
          httpGet:
            path: /health
            port: probes
            scheme: HTTP
          periodSeconds: 5
        name: controller
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8080
          name: probes
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readiness
            port: probes
            scheme: HTTP
          periodSeconds: 5
        resources:
          limits:
            cpu: 300m
            memory: 400Mi
          requests:
            cpu: 30m
            memory: 40Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: net-istio-webhook
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: net-istio-webhook
      role: net-istio-webhook
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: net-istio-webhook
        app.kubernetes.io/component: net-istio
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.1
        role: net-istio-webhook
    spec:
      containers:
      - env:
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: METRICS_DOMAIN
          value: knative.dev/net-istio
        - name: WEBHOOK_NAME
          value: net-istio-webhook
        - name: WEBHOOK_PORT
          value: "8443"
        image: gcr.io/knative-releases/knative.dev/net-istio/cmd/webhook@sha256:bfa1dfea77aff6dfa7959f4822d8e61c4f7933053874cd3f27352323e6ecd985
        livenessProbe:
          failureThreshold: 6
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          initialDelaySeconds: 20
          periodSeconds: 1
        name: webhook
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8443
          name: https-webhook
        readinessProbe:
          failureThreshold: 3
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          periodSeconds: 1
        resources:
          limits:
            cpu: 200m
            memory: 200Mi
          requests:
            cpu: 20m
            memory: 20Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: webhook
  namespace: knative-serving
spec:
  selector:
    matchLabels:
      app: webhook
      role: webhook
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: webhook
        app.kubernetes.io/component: webhook
        app.kubernetes.io/name: knative-serving
        app.kubernetes.io/version: 1.10.2
        role: webhook
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: webhook
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: SYSTEM_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: CONFIG_LOGGING_NAME
          value: config-logging
        - name: CONFIG_OBSERVABILITY_NAME
          value: config-observability
        - name: WEBHOOK_NAME
          value: webhook
        - name: WEBHOOK_PORT
          value: "8443"
        - name: METRICS_DOMAIN
          value: knative.dev/internal/serving
        image: gcr.io/knative-releases/knative.dev/serving/cmd/webhook@sha256:4305209ce498caf783f39c8f3e85dfa635ece6947033bf50b0b627983fd65953
        livenessProbe:
          failureThreshold: 6
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          initialDelaySeconds: 20
          periodSeconds: 1
        name: webhook
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 8008
          name: profiling
        - containerPort: 8443
          name: https-webhook
        readinessProbe:
          httpGet:
            httpHeaders:
            - name: k-kubelet-probe
              value: webhook
            port: 8443
            scheme: HTTPS
          periodSeconds: 1
        resources:
          limits:
            cpu: 500m
            memory: 500Mi
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
      serviceAccountName: controller
      terminationGracePeriodSeconds: 300
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-deployment
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: poddefaults
      app.kubernetes.io/component: poddefaults
      app.kubernetes.io/name: poddefaults
      kustomize.component: poddefaults
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        app: poddefaults
        app.kubernetes.io/component: poddefaults
        app.kubernetes.io/name: poddefaults
        kustomize.component: poddefaults
    spec:
      containers:
      - args:
        - --tlsCertFile=/etc/webhook/certs/tls.crt
        - --tlsKeyFile=/etc/webhook/certs/tls.key
        image: docker.io/kubeflownotebookswg/poddefaults-webhook:v1.8.0
        name: admission-webhook
        ports:
        - containerPort: 4443
          name: https-webhook
        volumeMounts:
        - mountPath: /etc/webhook/certs
          name: webhook-cert
          readOnly: true
      serviceAccountName: admission-webhook-service-account
      volumes:
      - name: webhook-cert
        secret:
          secretName: webhook-certs
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: cache-server
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: cache-server
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cache-server
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      labels:
        app: cache-server
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - args:
        - --db_driver=$(DBCONFIG_DRIVER)
        - --db_host=$(DBCONFIG_HOST_NAME)
        - --db_port=$(DBCONFIG_PORT)
        - --db_name=$(DBCONFIG_DB_NAME)
        - --db_user=$(DBCONFIG_USER)
        - --db_password=$(DBCONFIG_PASSWORD)
        - --namespace_to_watch=$(NAMESPACE_TO_WATCH)
        - --tls_cert_filename=tls.crt
        - --tls_key_filename=tls.key
        env:
        - name: NAMESPACE_TO_WATCH
          value: ""
        - name: DEFAULT_CACHE_STALENESS
          valueFrom:
            configMapKeyRef:
              key: DEFAULT_CACHE_STALENESS
              name: pipeline-install-config
        - name: MAXIMUM_CACHE_STALENESS
          valueFrom:
            configMapKeyRef:
              key: MAXIMUM_CACHE_STALENESS
              name: pipeline-install-config
        - name: CACHE_IMAGE
          valueFrom:
            configMapKeyRef:
              key: cacheImage
              name: pipeline-install-config
        - name: CACHE_NODE_RESTRICTIONS
          valueFrom:
            configMapKeyRef:
              key: cacheNodeRestrictions
              name: pipeline-install-config
        - name: DBCONFIG_DRIVER
          value: mysql
        - name: DBCONFIG_DB_NAME
          valueFrom:
            configMapKeyRef:
              key: cacheDb
              name: pipeline-install-config
        - name: DBCONFIG_HOST_NAME
          valueFrom:
            configMapKeyRef:
              key: dbHost
              name: pipeline-install-config
        - name: DBCONFIG_PORT
          valueFrom:
            configMapKeyRef:
              key: dbPort
              name: pipeline-install-config
        - name: DBCONFIG_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: mysql-secret
        - name: DBCONFIG_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: mysql-secret
        image: gcr.io/ml-pipeline/cache-server:2.0.0-alpha.7
        imagePullPolicy: Always
        name: server
        ports:
        - containerPort: 8443
          name: webhook-api
        volumeMounts:
        - mountPath: /etc/webhook/certs
          name: webhook-tls-certs
          readOnly: true
      serviceAccountName: kubeflow-pipelines-cache
      volumes:
      - name: webhook-tls-certs
        secret:
          secretName: webhook-server-tls
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: centraldashboard
      app.kubernetes.io/component: centraldashboard
      app.kubernetes.io/name: centraldashboard
      kustomize.component: centraldashboard
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: centraldashboard
        app.kubernetes.io/component: centraldashboard
        app.kubernetes.io/name: centraldashboard
        kustomize.component: centraldashboard
    spec:
      containers:
      - env:
        - name: USERID_HEADER
          value: kubeflow-userid
        - name: USERID_PREFIX
          value: ""
        - name: PROFILES_KFAM_SERVICE_HOST
          value: profiles-kfam.kubeflow
        - name: REGISTRATION_FLOW
          value: "false"
        - name: DASHBOARD_LINKS_CONFIGMAP
          value: centraldashboard-config
        image: docker.io/kubeflownotebookswg/centraldashboard:v1.8.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8082
          initialDelaySeconds: 30
          periodSeconds: 30
        name: centraldashboard
        ports:
        - containerPort: 8082
          protocol: TCP
      serviceAccountName: centraldashboard
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter-web-app
      kustomize.component: jupyter-web-app
  template:
    metadata:
      labels:
        app: jupyter-web-app
        kustomize.component: jupyter-web-app
    spec:
      containers:
      - env:
        - name: APP_PREFIX
          value: /jupyter
        - name: UI
          value: default
        - name: USERID_HEADER
          value: kubeflow-userid
        - name: USERID_PREFIX
          value: ""
        - name: APP_SECURE_COOKIES
          value: "true"
        image: docker.io/kubeflownotebookswg/jupyter-web-app:v1.8.0
        name: jupyter-web-app
        ports:
        - containerPort: 5000
        volumeMounts:
        - mountPath: /etc/config
          name: config-volume
        - mountPath: /src/apps/default/static/assets/logos
          name: logos-volume
      serviceAccountName: jupyter-web-app-service-account
      volumes:
      - configMap:
          name: jupyter-web-app-config-92bgck72t2
        name: config-volume
      - configMap:
          name: jupyter-web-app-logos
        name: logos-volume
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    katib.kubeflow.org/component: controller
  name: katib-controller
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      katib.kubeflow.org/component: controller
  template:
    metadata:
      annotations:
        prometheus.io/port: "8080"
        prometheus.io/scrape: "true"
        sidecar.istio.io/inject: "false"
      labels:
        katib.kubeflow.org/component: controller
        katib.kubeflow.org/metrics-collector-injection: disabled
    spec:
      containers:
      - args:
        - --katib-config=/katib-config.yaml
        command:
        - ./katib-controller
        env:
        - name: KATIB_CORE_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        image: docker.io/kubeflowkatib/katib-controller:v0.16.0-rc.1
        livenessProbe:
          httpGet:
            path: /healthz
            port: healthz
        name: katib-controller
        ports:
        - containerPort: 8443
          name: webhook
          protocol: TCP
        - containerPort: 8080
          name: metrics
          protocol: TCP
        - containerPort: 18080
          name: healthz
          protocol: TCP
        readinessProbe:
          httpGet:
            path: /readyz
            port: healthz
        volumeMounts:
        - mountPath: /tmp/cert
          name: cert
          readOnly: true
        - mountPath: /katib-config.yaml
          name: katib-config
          readOnly: true
          subPath: katib-config.yaml
      serviceAccountName: katib-controller
      volumes:
      - name: cert
        secret:
          defaultMode: 420
          secretName: katib-webhook-cert
      - configMap:
          name: katib-config
        name: katib-config
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    katib.kubeflow.org/component: db-manager
  name: katib-db-manager
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      katib.kubeflow.org/component: db-manager
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        katib.kubeflow.org/component: db-manager
    spec:
      containers:
      - command:
        - ./katib-db-manager
        env:
        - name: DB_NAME
          value: mysql
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              key: MYSQL_ROOT_PASSWORD
              name: katib-mysql-secrets
        image: docker.io/kubeflowkatib/katib-db-manager:v0.16.0-rc.1
        livenessProbe:
          failureThreshold: 5
          grpc:
            port: 6789
          initialDelaySeconds: 10
          periodSeconds: 60
        name: katib-db-manager
        ports:
        - containerPort: 6789
          name: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    katib.kubeflow.org/component: mysql
  name: katib-mysql
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      katib.kubeflow.org/component: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        katib.kubeflow.org/component: mysql
    spec:
      containers:
      - args:
        - --datadir
        - /var/lib/mysql/datadir
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              key: MYSQL_ROOT_PASSWORD
              name: katib-mysql-secrets
        - name: MYSQL_ALLOW_EMPTY_PASSWORD
          value: "true"
        - name: MYSQL_DATABASE
          value: katib
        image: mysql:8.0.29
        livenessProbe:
          exec:
            command:
            - /bin/bash
            - -c
            - mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}
          failureThreshold: 10
          initialDelaySeconds: 10
          periodSeconds: 5
        name: katib-mysql
        ports:
        - containerPort: 3306
          name: dbapi
        readinessProbe:
          exec:
            command:
            - /bin/bash
            - -c
            - mysql -D ${MYSQL_DATABASE} -u root -p${MYSQL_ROOT_PASSWORD} -e 'SELECT
              1'
          failureThreshold: 10
          initialDelaySeconds: 10
          periodSeconds: 5
        startupProbe:
          exec:
            command:
            - /bin/bash
            - -c
            - mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}
          failureThreshold: 60
          periodSeconds: 15
        volumeMounts:
        - mountPath: /var/lib/mysql
          name: katib-mysql
      volumes:
      - name: katib-mysql
        persistentVolumeClaim:
          claimName: katib-mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    katib.kubeflow.org/component: ui
  name: katib-ui
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      katib.kubeflow.org/component: ui
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        katib.kubeflow.org/component: ui
    spec:
      containers:
      - args:
        - --port=8080
        command:
        - ./katib-ui
        env:
        - name: KATIB_CORE_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: APP_DISABLE_AUTH
          value: "false"
        image: docker.io/kubeflowkatib/katib-ui:v0.16.0-rc.1
        name: katib-ui
        ports:
        - containerPort: 8080
          name: ui
      serviceAccountName: katib-ui
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
    control-plane: kserve-controller-manager
    controller-tools.k8s.io: "1.0"
  name: kserve-controller-manager
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: kserve
      app.kubernetes.io/name: kserve
      control-plane: kserve-controller-manager
      controller-tools.k8s.io: "1.0"
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: manager
        sidecar.istio.io/inject: "false"
      labels:
        app: kserve
        app.kubernetes.io/name: kserve
        control-plane: kserve-controller-manager
        controller-tools.k8s.io: "1.0"
    spec:
      containers:
      - args:
        - --metrics-addr=127.0.0.1:8080
        - --leader-elect
        command:
        - /manager
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: SECRET_NAME
          value: kserve-webhook-server-cert
        image: kserve/kserve-controller:v0.10.0
        imagePullPolicy: Always
        name: manager
        ports:
        - containerPort: 9443
          name: webhook-server
          protocol: TCP
        resources:
          limits:
            cpu: 100m
            memory: 300Mi
          requests:
            cpu: 100m
            memory: 200Mi
        securityContext:
          allowPrivilegeEscalation: false
        volumeMounts:
        - mountPath: /tmp/k8s-webhook-server/serving-certs
          name: cert
          readOnly: true
      - args:
        - --secure-listen-address=0.0.0.0:8443
        - --upstream=http://127.0.0.1:8080/
        - --logtostderr=true
        - --v=10
        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1
        name: kube-rbac-proxy
        ports:
        - containerPort: 8443
          name: https
          protocol: TCP
      securityContext:
        runAsNonRoot: true
      serviceAccountName: kserve-controller-manager
      terminationGracePeriodSeconds: 10
      volumes:
      - name: cert
        secret:
          defaultMode: 420
          secretName: kserve-webhook-server-cert
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kserve
      app.kubernetes.io/component: kserve-models-web-app
      app.kubernetes.io/name: kserve
      kustomize.component: kserve-models-web-app
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        app: kserve
        app.kubernetes.io/component: kserve-models-web-app
        app.kubernetes.io/name: kserve
        kustomize.component: kserve-models-web-app
    spec:
      containers:
      - envFrom:
        - configMapRef:
            name: kserve-models-web-app-config
        image: kserve/models-web-app:v0.10.0
        imagePullPolicy: Always
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz/liveness
            port: http
          initialDelaySeconds: 0
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: kserve-models-web-app
        ports:
        - containerPort: 5000
          name: http
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz/readiness
            port: http
          initialDelaySeconds: 0
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
      serviceAccountName: kserve-models-web-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: kubeflow-pipelines-profile-controller
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-profile-controller
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kubeflow-pipelines-profile-controller
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        app: kubeflow-pipelines-profile-controller
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - command:
        - python
        - /hooks/sync.py
        env:
        - name: KFP_VERSION
          valueFrom:
            configMapKeyRef:
              key: appVersion
              name: pipeline-install-config
        - name: KFP_DEFAULT_PIPELINE_ROOT
          valueFrom:
            configMapKeyRef:
              key: defaultPipelineRoot
              name: pipeline-install-config
              optional: true
        - name: MINIO_ACCESS_KEY
          valueFrom:
            secretKeyRef:
              key: accesskey
              name: mlpipeline-minio-artifact
        - name: MINIO_SECRET_KEY
          valueFrom:
            secretKeyRef:
              key: secretkey
              name: mlpipeline-minio-artifact
        envFrom:
        - configMapRef:
            name: kubeflow-pipelines-profile-controller-env-5252m69c4c
        image: python:3.7
        name: profile-controller
        ports:
        - containerPort: 8080
        volumeMounts:
        - mountPath: /hooks
          name: hooks
      volumes:
      - configMap:
          name: kubeflow-pipelines-profile-controller-code-hdk828hd6c
        name: hooks
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    component: metadata-envoy
  name: metadata-envoy-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      application-crd-id: kubeflow-pipelines
      component: metadata-envoy
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        application-crd-id: kubeflow-pipelines
        component: metadata-envoy
    spec:
      containers:
      - image: gcr.io/ml-pipeline/metadata-envoy:2.0.0-alpha.7
        name: container
        ports:
        - containerPort: 9090
          name: md-envoy
        - containerPort: 9901
          name: envoy-admin
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
    component: metadata-grpc-server
  name: metadata-grpc-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      application-crd-id: kubeflow-pipelines
      component: metadata-grpc-server
  template:
    metadata:
      labels:
        application-crd-id: kubeflow-pipelines
        component: metadata-grpc-server
    spec:
      containers:
      - args:
        - --grpc_port=8080
        - --mysql_config_database=$(MYSQL_DATABASE)
        - --mysql_config_host=$(MYSQL_HOST)
        - --mysql_config_port=$(MYSQL_PORT)
        - --mysql_config_user=$(DBCONFIG_USER)
        - --mysql_config_password=$(DBCONFIG_PASSWORD)
        - --enable_database_upgrade=true
        command:
        - /bin/metadata_store_server
        env:
        - name: DBCONFIG_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: mysql-secret
        - name: DBCONFIG_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: mysql-secret
        - name: MYSQL_DATABASE
          valueFrom:
            configMapKeyRef:
              key: mlmdDb
              name: pipeline-install-config
        - name: MYSQL_HOST
          valueFrom:
            configMapKeyRef:
              key: dbHost
              name: pipeline-install-config
        - name: MYSQL_PORT
          valueFrom:
            configMapKeyRef:
              key: dbPort
              name: pipeline-install-config
        image: gcr.io/tfx-oss-public/ml_metadata_store_server:1.5.0
        livenessProbe:
          initialDelaySeconds: 3
          periodSeconds: 5
          tcpSocket:
            port: grpc-api
          timeoutSeconds: 2
        name: container
        ports:
        - containerPort: 8080
          name: grpc-api
        readinessProbe:
          initialDelaySeconds: 3
          periodSeconds: 5
          tcpSocket:
            port: grpc-api
          timeoutSeconds: 2
      serviceAccountName: metadata-grpc-server
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: metadata-writer
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: metadata-writer
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metadata-writer
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      labels:
        app: metadata-writer
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - env:
        - name: NAMESPACE_TO_WATCH
          value: ""
        image: gcr.io/ml-pipeline/metadata-writer:2.0.0-alpha.7
        name: main
      serviceAccountName: kubeflow-pipelines-metadata-writer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: minio
    application-crd-id: kubeflow-pipelines
  name: minio
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: minio
      application-crd-id: kubeflow-pipelines
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: minio
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - args:
        - server
        - /data
        env:
        - name: MINIO_ACCESS_KEY
          valueFrom:
            secretKeyRef:
              key: accesskey
              name: mlpipeline-minio-artifact
        - name: MINIO_SECRET_KEY
          valueFrom:
            secretKeyRef:
              key: secretkey
              name: mlpipeline-minio-artifact
        image: gcr.io/ml-pipeline/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance
        name: minio
        ports:
        - containerPort: 9000
        resources:
          requests:
            cpu: 20m
            memory: 100Mi
        volumeMounts:
        - mountPath: /data
          name: data
          subPath: minio
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: minio-pvc
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ml-pipeline
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: ml-pipeline
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
      labels:
        app: ml-pipeline
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - env:
        - name: KUBEFLOW_USERID_HEADER
          value: kubeflow-userid
        - name: KUBEFLOW_USERID_PREFIX
          value: ""
        - name: AUTO_UPDATE_PIPELINE_DEFAULT_VERSION
          valueFrom:
            configMapKeyRef:
              key: autoUpdatePipelineDefaultVersion
              name: pipeline-install-config
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: OBJECTSTORECONFIG_SECURE
          value: "false"
        - name: OBJECTSTORECONFIG_BUCKETNAME
          valueFrom:
            configMapKeyRef:
              key: bucketName
              name: pipeline-install-config
        - name: DBCONFIG_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: mysql-secret
        - name: DBCONFIG_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: mysql-secret
        - name: DBCONFIG_DBNAME
          valueFrom:
            configMapKeyRef:
              key: pipelineDb
              name: pipeline-install-config
        - name: DBCONFIG_HOST
          valueFrom:
            configMapKeyRef:
              key: dbHost
              name: pipeline-install-config
        - name: DBCONFIG_PORT
          valueFrom:
            configMapKeyRef:
              key: dbPort
              name: pipeline-install-config
        - name: DBCONFIG_CONMAXLIFETIME
          valueFrom:
            configMapKeyRef:
              key: ConMaxLifeTime
              name: pipeline-install-config
        - name: OBJECTSTORECONFIG_ACCESSKEY
          valueFrom:
            secretKeyRef:
              key: accesskey
              name: mlpipeline-minio-artifact
        - name: OBJECTSTORECONFIG_SECRETACCESSKEY
          valueFrom:
            secretKeyRef:
              key: secretkey
              name: mlpipeline-minio-artifact
        envFrom:
        - configMapRef:
            name: pipeline-api-server-config-dc9hkg52h6
        image: gcr.io/ml-pipeline/api-server:2.0.0-alpha.7
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:8888/apis/v1beta1/healthz
          initialDelaySeconds: 3
          periodSeconds: 5
          timeoutSeconds: 2
        name: ml-pipeline-api-server
        ports:
        - containerPort: 8888
          name: http
        - containerPort: 8887
          name: grpc
        readinessProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:8888/apis/v1beta1/healthz
          initialDelaySeconds: 3
          periodSeconds: 5
          timeoutSeconds: 2
        resources:
          requests:
            cpu: 250m
            memory: 500Mi
        startupProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:8888/apis/v1beta1/healthz
          failureThreshold: 12
          periodSeconds: 5
          timeoutSeconds: 2
      serviceAccountName: ml-pipeline
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ml-pipeline-persistenceagent
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-persistenceagent
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: ml-pipeline-persistenceagent
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
      labels:
        app: ml-pipeline-persistenceagent
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - env:
        - name: NAMESPACE
          value: ""
        - name: KUBEFLOW_USERID_HEADER
          value: kubeflow-userid
        - name: KUBEFLOW_USERID_PREFIX
          value: ""
        - name: TTL_SECONDS_AFTER_WORKFLOW_FINISH
          value: "86400"
        - name: NUM_WORKERS
          value: "2"
        envFrom:
        - configMapRef:
            name: persistenceagent-config-hkgkmd64bh
        image: gcr.io/ml-pipeline/persistenceagent:2.0.0-alpha.7
        imagePullPolicy: IfNotPresent
        name: ml-pipeline-persistenceagent
        resources:
          requests:
            cpu: 120m
            memory: 500Mi
      serviceAccountName: ml-pipeline-persistenceagent
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ml-pipeline-scheduledworkflow
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-scheduledworkflow
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: ml-pipeline-scheduledworkflow
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
      labels:
        app: ml-pipeline-scheduledworkflow
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - env:
        - name: NAMESPACE
          value: ""
        - name: CRON_SCHEDULE_TIMEZONE
          valueFrom:
            configMapKeyRef:
              key: cronScheduleTimezone
              name: pipeline-install-config
        image: gcr.io/ml-pipeline/scheduledworkflow:2.0.0-alpha.7
        imagePullPolicy: IfNotPresent
        name: ml-pipeline-scheduledworkflow
      serviceAccountName: ml-pipeline-scheduledworkflow
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ml-pipeline-ui
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: ml-pipeline-ui
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
      labels:
        app: ml-pipeline-ui
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - env:
        - name: VIEWER_TENSORBOARD_POD_TEMPLATE_SPEC_PATH
          value: /etc/config/viewer-pod-template.json
        - name: DEPLOYMENT
          value: KUBEFLOW
        - name: ARTIFACTS_SERVICE_PROXY_NAME
          value: ml-pipeline-ui-artifact
        - name: ARTIFACTS_SERVICE_PROXY_PORT
          value: "80"
        - name: ARTIFACTS_SERVICE_PROXY_ENABLED
          value: "true"
        - name: ENABLE_AUTHZ
          value: "true"
        - name: KUBEFLOW_USERID_HEADER
          value: kubeflow-userid
        - name: KUBEFLOW_USERID_PREFIX
          value: ""
        - name: MINIO_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MINIO_ACCESS_KEY
          valueFrom:
            secretKeyRef:
              key: accesskey
              name: mlpipeline-minio-artifact
        - name: MINIO_SECRET_KEY
          valueFrom:
            secretKeyRef:
              key: secretkey
              name: mlpipeline-minio-artifact
        - name: ALLOW_CUSTOM_VISUALIZATIONS
          value: "true"
        image: gcr.io/ml-pipeline/frontend:2.0.0-alpha.7
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:3000/apis/v1beta1/healthz
          initialDelaySeconds: 3
          periodSeconds: 5
          timeoutSeconds: 2
        name: ml-pipeline-ui
        ports:
        - containerPort: 3000
        readinessProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:3000/apis/v1beta1/healthz
          initialDelaySeconds: 3
          periodSeconds: 5
          timeoutSeconds: 2
        resources:
          requests:
            cpu: 10m
            memory: 70Mi
        volumeMounts:
        - mountPath: /etc/config
          name: config-volume
          readOnly: true
      serviceAccountName: ml-pipeline-ui
      volumes:
      - configMap:
          name: ml-pipeline-ui-configmap
        name: config-volume
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ml-pipeline-viewer-crd
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-viewer-crd
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: ml-pipeline-viewer-crd
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
      labels:
        app: ml-pipeline-viewer-crd
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - env:
        - name: NAMESPACE
          value: ""
        - name: MAX_NUM_VIEWERS
          value: "50"
        - name: MINIO_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        image: gcr.io/ml-pipeline/viewer-crd-controller:2.0.0-alpha.7
        imagePullPolicy: Always
        name: ml-pipeline-viewer-crd
      serviceAccountName: ml-pipeline-viewer-crd-service-account
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ml-pipeline-visualizationserver
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-visualizationserver
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: ml-pipeline-visualizationserver
      app.kubernetes.io/component: ml-pipeline
      app.kubernetes.io/name: kubeflow-pipelines
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      annotations:
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
      labels:
        app: ml-pipeline-visualizationserver
        app.kubernetes.io/component: ml-pipeline
        app.kubernetes.io/name: kubeflow-pipelines
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - image: gcr.io/ml-pipeline/visualization-server:2.0.0-alpha.7
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:8888/
          initialDelaySeconds: 3
          periodSeconds: 5
          timeoutSeconds: 2
        name: ml-pipeline-visualizationserver
        ports:
        - containerPort: 8888
          name: http
        readinessProbe:
          exec:
            command:
            - wget
            - -q
            - -S
            - -O
            - '-'
            - http://localhost:8888/
          initialDelaySeconds: 3
          periodSeconds: 5
          timeoutSeconds: 2
        resources:
          requests:
            cpu: 30m
            memory: 500Mi
      serviceAccountName: ml-pipeline-visualizationserver
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: mysql
    application-crd-id: kubeflow-pipelines
  name: mysql
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: mysql
      application-crd-id: kubeflow-pipelines
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - args:
        - --datadir
        - /var/lib/mysql
        - --default-authentication-plugin=mysql_native_password
        - --disable-log-bin
        env:
        - name: MYSQL_ALLOW_EMPTY_PASSWORD
          value: "true"
        image: gcr.io/ml-pipeline/mysql:8.0.26
        name: mysql
        ports:
        - containerPort: 3306
          name: mysql
        resources:
          requests:
            cpu: 100m
            memory: 800Mi
        volumeMounts:
        - mountPath: /var/lib/mysql
          name: mysql-persistent-storage
      serviceAccountName: mysql
      volumes:
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: mysql-pv-claim
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: notebook-controller
    kustomize.component: notebook-controller
  name: notebook-controller-deployment
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: notebook-controller
      kustomize.component: notebook-controller
  template:
    metadata:
      labels:
        app: notebook-controller
        kustomize.component: notebook-controller
    spec:
      containers:
      - command:
        - /manager
        env:
        - name: USE_ISTIO
          valueFrom:
            configMapKeyRef:
              key: USE_ISTIO
              name: notebook-controller-config-dm5b6dd458
        - name: ISTIO_GATEWAY
          valueFrom:
            configMapKeyRef:
              key: ISTIO_GATEWAY
              name: notebook-controller-config-dm5b6dd458
        - name: CLUSTER_DOMAIN
          valueFrom:
            configMapKeyRef:
              key: CLUSTER_DOMAIN
              name: notebook-controller-config-dm5b6dd458
        - name: ENABLE_CULLING
          valueFrom:
            configMapKeyRef:
              key: ENABLE_CULLING
              name: notebook-controller-config-dm5b6dd458
        - name: CULL_IDLE_TIME
          valueFrom:
            configMapKeyRef:
              key: CULL_IDLE_TIME
              name: notebook-controller-config-dm5b6dd458
        - name: IDLENESS_CHECK_PERIOD
          valueFrom:
            configMapKeyRef:
              key: IDLENESS_CHECK_PERIOD
              name: notebook-controller-config-dm5b6dd458
        image: docker.io/kubeflownotebookswg/notebook-controller:v1.8.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8081
          initialDelaySeconds: 5
          periodSeconds: 10
        name: manager
        readinessProbe:
          httpGet:
            path: /readyz
            port: 8081
          initialDelaySeconds: 5
          periodSeconds: 10
      serviceAccountName: notebook-controller-service-account
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      kustomize.component: profiles
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"
      labels:
        kustomize.component: profiles
    spec:
      containers:
      - command:
        - /access-management
        - -cluster-admin
        - $(ADMIN)
        - -userid-header
        - $(USERID_HEADER)
        - -userid-prefix
        - $(USERID_PREFIX)
        envFrom:
        - configMapRef:
            name: profiles-config-46c7tgh6fd
        image: docker.io/kubeflownotebookswg/kfam:v1.8.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /metrics
            port: 8081
          initialDelaySeconds: 30
          periodSeconds: 30
        name: kfam
        ports:
        - containerPort: 8081
          name: kfam-http
          protocol: TCP
      - command:
        - /manager
        - -userid-header
        - $(USERID_HEADER)
        - -userid-prefix
        - $(USERID_PREFIX)
        - -workload-identity
        - $(WORKLOAD_IDENTITY)
        envFrom:
        - configMapRef:
            name: profiles-config-46c7tgh6fd
        image: docker.io/kubeflownotebookswg/profile-controller:v1.8.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /healthz
            port: 9876
          initialDelaySeconds: 15
          periodSeconds: 20
        name: manager
        ports:
        - containerPort: 9876
        readinessProbe:
          httpGet:
            path: /readyz
            port: 9876
          initialDelaySeconds: 5
          periodSeconds: 10
        volumeMounts:
        - mountPath: /etc/profile-controller
          name: namespace-labels
          readOnly: true
      serviceAccountName: profiles-controller-service-account
      volumes:
      - configMap:
          name: namespace-labels-data-4df5t8mdgf
        name: namespace-labels
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tensorboard-controller
    control-plane: controller-manager
    kustomize.component: tensorboard-controller
  name: tensorboard-controller-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tensorboard-controller
      control-plane: controller-manager
      kustomize.component: tensorboard-controller
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: manager
      labels:
        app: tensorboard-controller
        control-plane: controller-manager
        kustomize.component: tensorboard-controller
    spec:
      containers:
      - args:
        - --health-probe-bind-address=:8081
        - --metrics-bind-address=127.0.0.1:8080
        command:
        - /manager
        envFrom:
        - configMapRef:
            name: tensorboard-controller-config-b98cb9gk9k
        image: docker.io/kubeflownotebookswg/tensorboard-controller:v1.8.0
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8081
          initialDelaySeconds: 15
          periodSeconds: 20
        name: manager
        readinessProbe:
          httpGet:
            path: /readyz
            port: 8081
          initialDelaySeconds: 5
          periodSeconds: 10
        resources:
          limits:
            cpu: 500m
            memory: 128Mi
          requests:
            cpu: 10m
            memory: 64Mi
        securityContext:
          allowPrivilegeEscalation: false
      - args:
        - --secure-listen-address=0.0.0.0:8443
        - --upstream=http://127.0.0.1:8080/
        - --logtostderr=true
        - --v=0
        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
        name: kube-rbac-proxy
        ports:
        - containerPort: 8443
          name: https
          protocol: TCP
        resources:
          limits:
            cpu: 500m
            memory: 128Mi
          requests:
            cpu: 5m
            memory: 64Mi
      securityContext:
        runAsNonRoot: true
        runAsUser: 999
      serviceAccountName: tensorboard-controller-controller-manager
      terminationGracePeriodSeconds: 10
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tensorboards-web-app
      kustomize.component: tensorboards-web-app
  template:
    metadata:
      labels:
        app: tensorboards-web-app
        kustomize.component: tensorboards-web-app
    spec:
      containers:
      - env:
        - name: APP_PREFIX
          value: /tensorboards
        - name: USERID_HEADER
          value: kubeflow-userid
        - name: USERID_PREFIX
          value: ""
        - name: APP_SECURE_COOKIES
          value: 'true '
        image: docker.io/kubeflownotebookswg/tensorboards-web-app:v1.8.0
        name: tensorboards-web-app
        ports:
        - containerPort: 5000
      serviceAccountName: tensorboards-web-app-service-account
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    control-plane: kubeflow-training-operator
  name: training-operator
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      control-plane: kubeflow-training-operator
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        control-plane: kubeflow-training-operator
    spec:
      containers:
      - command:
        - /manager
        env:
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        image: kubeflow/training-operator:v1-855e096
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8081
          initialDelaySeconds: 15
          periodSeconds: 20
          timeoutSeconds: 3
        name: training-operator
        ports:
        - containerPort: 8080
        readinessProbe:
          httpGet:
            path: /readyz
            port: 8081
          initialDelaySeconds: 10
          periodSeconds: 15
          timeoutSeconds: 3
        securityContext:
          allowPrivilegeEscalation: false
      serviceAccountName: training-operator
      terminationGracePeriodSeconds: 10
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app-deployment
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: volumes-web-app
      kustomize.component: volumes-web-app
  template:
    metadata:
      labels:
        app: volumes-web-app
        kustomize.component: volumes-web-app
    spec:
      containers:
      - env:
        - name: APP_PREFIX
          value: /volumes
        - name: USERID_HEADER
          value: kubeflow-userid
        - name: USERID_PREFIX
          value: ""
        - name: APP_SECURE_COOKIES
          value: "true"
        image: docker.io/kubeflownotebookswg/volumes-web-app:v1.8.0
        name: volumes-web-app
        ports:
        - containerPort: 5000
      serviceAccountName: volumes-web-app-service-account
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: workflow-controller
  namespace: kubeflow
spec:
  selector:
    matchLabels:
      app: workflow-controller
      application-crd-id: kubeflow-pipelines
  template:
    metadata:
      labels:
        app: workflow-controller
        application-crd-id: kubeflow-pipelines
    spec:
      containers:
      - args:
        - --configmap
        - workflow-controller-configmap
        - --executor-image
        - gcr.io/ml-pipeline/argoexec:v3.3.8-license-compliance
        command:
        - workflow-controller
        env:
        - name: LEADER_ELECTION_IDENTITY
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        image: gcr.io/ml-pipeline/workflow-controller:v3.3.8-license-compliance
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz
            port: 6060
          initialDelaySeconds: 90
          periodSeconds: 60
          timeoutSeconds: 30
        name: workflow-controller
        ports:
        - containerPort: 9090
          name: metrics
        - containerPort: 6060
        resources:
          requests:
            cpu: 100m
            memory: 500Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
      nodeSelector:
        kubernetes.io/os: linux
      priorityClassName: workflow-controller
      securityContext:
        runAsNonRoot: true
      serviceAccountName: argo
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: authservice
  namespace: istio-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: authservice
  serviceName: authservice
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        app: authservice
    spec:
      containers:
      - envFrom:
        - secretRef:
            name: oidc-authservice-client
        - configMapRef:
            name: oidc-authservice-parameters
        image: gcr.io/arrikto/kubeflow/oidc-authservice:e236439
        imagePullPolicy: Always
        name: authservice
        ports:
        - containerPort: 8080
          name: http-api
        readinessProbe:
          httpGet:
            path: /
            port: 8081
        volumeMounts:
        - mountPath: /var/lib/authservice
          name: data
      securityContext:
        fsGroup: 111
      serviceAccountName: authservice
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: authservice-pvc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: metacontroller
    application-crd-id: kubeflow-pipelines
    kustomize.component: metacontroller
  name: metacontroller
  namespace: kubeflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: metacontroller
      application-crd-id: kubeflow-pipelines
      kustomize.component: metacontroller
  serviceName: ""
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
      labels:
        app: metacontroller
        application-crd-id: kubeflow-pipelines
        kustomize.component: metacontroller
    spec:
      containers:
      - command:
        - /usr/bin/metacontroller
        - --zap-log-level=4
        - --discovery-interval=3600s
        image: docker.io/metacontrollerio/metacontroller:v2.0.4
        name: metacontroller
        resources:
          limits:
            cpu: "1"
            memory: 1Gi
          requests:
            cpu: 100m
            memory: 256Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
          privileged: false
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 1000
      serviceAccountName: meta-controller-service
  volumeClaimTemplates: []
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook
  namespace: knative-eventing
spec:
  minAvailable: 80%
  selector:
    matchLabels:
      app: eventing-webhook
      app.kubernetes.io/component: knative-eventing
      app.kubernetes.io/name: knative-eventing
      kustomize.component: knative
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  labels:
    app.kubernetes.io/component: activator
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: activator-pdb
  namespace: knative-serving
spec:
  minAvailable: 80%
  selector:
    matchLabels:
      app: activator
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: webhook-pdb
  namespace: knative-serving
spec:
  minAvailable: 80%
  selector:
    matchLabels:
      app: webhook
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app: cluster-local-gateway
    install.operator.istio.io/owning-resource: unknown
    istio: cluster-local-gateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: cluster-local-gateway
  namespace: istio-system
spec:
  maxReplicas: 5
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 80
        type: Utilization
    type: Resource
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: cluster-local-gateway
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app: istio-ingressgateway
    install.operator.istio.io/owning-resource: unknown
    istio: ingressgateway
    istio.io/rev: default
    operator.istio.io/component: IngressGateways
    release: istio
  name: istio-ingressgateway
  namespace: istio-system
spec:
  maxReplicas: 5
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 80
        type: Utilization
    type: Resource
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: istio-ingressgateway
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app: istiod
    install.operator.istio.io/owning-resource: unknown
    istio.io/rev: default
    operator.istio.io/component: Pilot
    release: istio
  name: istiod
  namespace: istio-system
spec:
  maxReplicas: 5
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 80
        type: Utilization
    type: Resource
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: istiod
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: eventing-webhook
  namespace: knative-eventing
spec:
  maxReplicas: 5
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 100
        type: Utilization
    type: Resource
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: eventing-webhook
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app.kubernetes.io/component: activator
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: activator
  namespace: knative-serving
spec:
  maxReplicas: 20
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 100
        type: Utilization
    type: Resource
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: activator
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: webhook
  namespace: knative-serving
spec:
  maxReplicas: 5
  metrics:
  - resource:
      name: cpu
      target:
        averageUtilization: 100
        type: Utilization
    type: Resource
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: webhook
---
apiVersion: caching.internal.knative.dev/v1alpha1
kind: Image
metadata:
  labels:
    app.kubernetes.io/component: queue-proxy
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: queue-proxy
  namespace: knative-serving
spec:
  image: gcr.io/knative-releases/knative.dev/serving/cmd/queue@sha256:dabaecec38860ca4c972e6821d5dc825549faf50c6feb8feb4c04802f2338b8a
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-cert
  namespace: kubeflow
spec:
  commonName: admission-webhook-service.kubeflow.svc
  dnsNames:
  - admission-webhook-service.kubeflow.svc
  - admission-webhook-service.kubeflow.svc.cluster.local
  isCA: true
  issuerRef:
    kind: Issuer
    name: admission-webhook-selfsigned-issuer
  secretName: webhook-certs
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: katib-webhook-cert
  namespace: kubeflow
spec:
  commonName: katib-controller.kubeflow.svc
  dnsNames:
  - katib-controller.kubeflow.svc
  - katib-controller.kubeflow.svc.cluster.local
  isCA: true
  issuerRef:
    kind: Issuer
    name: katib-selfsigned-issuer
  secretName: katib-webhook-cert
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  labels:
    app: cache-server-cert-manager
  name: kfp-cache-cert
  namespace: kubeflow
spec:
  commonName: kfp-cache-cert
  dnsNames:
  - cache-server
  - cache-server.kubeflow
  - cache-server.kubeflow.svc
  isCA: true
  issuerRef:
    kind: Issuer
    name: kfp-cache-selfsigned-issuer
  secretName: webhook-server-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: serving-cert
  namespace: kubeflow
spec:
  commonName: kserve-webhook-server-service.kubeflow.svc
  dnsNames:
  - kserve-webhook-server-service.kubeflow.svc
  issuerRef:
    kind: Issuer
    name: admission-webhook-selfsigned-issuer
  secretName: kserve-webhook-server-cert
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  labels:
    app.kubernetes.io/component: cert-manager
    app.kubernetes.io/name: cert-manager
    kustomize.component: cert-manager
  name: kubeflow-self-signing-issuer
  namespace: cert-manager
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  labels:
    app: poddefaults
    app.kubernetes.io/component: poddefaults
    app.kubernetes.io/name: poddefaults
    kustomize.component: poddefaults
  name: admission-webhook-selfsigned-issuer
  namespace: kubeflow
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: katib-selfsigned-issuer
  namespace: kubeflow
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  labels:
    app: cache-server-cert-manager
  name: kfp-cache-selfsigned-issuer
  namespace: kubeflow
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: selfsigned-issuer
  namespace: kubeflow
spec:
  selfSigned: {}
---
apiVersion: kubeflow.org/v1beta1
kind: Profile
metadata:
  name: kubeflow-user-example-com
spec:
  owner:
    kind: User
    name: user@example.com
---
apiVersion: metacontroller.k8s.io/v1alpha1
kind: CompositeController
metadata:
  labels:
    app: kubeflow-pipelines-profile-controller
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: kubeflow-pipelines-profile-controller
  namespace: kubeflow
spec:
  childResources:
  - apiVersion: v1
    resource: secrets
    updateStrategy:
      method: OnDelete
  - apiVersion: v1
    resource: configmaps
    updateStrategy:
      method: OnDelete
  - apiVersion: apps/v1
    resource: deployments
    updateStrategy:
      method: InPlace
  - apiVersion: v1
    resource: services
    updateStrategy:
      method: InPlace
  - apiVersion: networking.istio.io/v1alpha3
    resource: destinationrules
    updateStrategy:
      method: InPlace
  - apiVersion: security.istio.io/v1beta1
    resource: authorizationpolicies
    updateStrategy:
      method: InPlace
  generateSelector: true
  hooks:
    sync:
      webhook:
        url: http://kubeflow-pipelines-profile-controller/sync
  parentResource:
    apiVersion: v1
    resource: namespaces
  resyncPeriodSeconds: 3600
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: knative
  namespace: knative-serving
spec:
  host: '*.knative-serving.svc.cluster.local'
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app
  namespace: kubeflow
spec:
  host: jupyter-web-app-service.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: metadata-grpc-service
  namespace: kubeflow
spec:
  host: metadata-grpc-service.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
spec:
  host: ml-pipeline.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-minio
  namespace: kubeflow
spec:
  host: minio-service.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-mysql
  namespace: kubeflow
spec:
  host: mysql.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
spec:
  host: ml-pipeline-ui.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-visualizationserver
  namespace: kubeflow
spec:
  host: ml-pipeline-visualizationserver.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app
  namespace: kubeflow
spec:
  host: tensorboards-web-app-service.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app
  namespace: kubeflow
spec:
  host: volumes-web-app-service.kubeflow.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: authn-filter
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.http_connection_manager
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.filters.http.ext_authz
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
          http_service:
            authorization_request:
              allowed_headers:
                patterns:
                - exact: authorization
                - exact: cookie
                - exact: x-auth-token
            authorization_response:
              allowed_upstream_headers:
                patterns:
                - exact: kubeflow-userid
            server_uri:
              cluster: outbound|8080||authservice.istio-system.svc.cluster.local
              timeout: 10s
              uri: http://authservice.istio-system.svc.cluster.local
  workloadSelector:
    labels:
      istio: ingressgateway
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: stats-filter-1.13
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.13.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.13.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_inbound
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.13.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: stats-filter-1.14
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.14.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.14.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_inbound
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.14.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: stats-filter-1.15
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.15.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.15.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_inbound
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.15.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: stats-filter-1.16
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.16.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.16.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_inbound
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.16.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio",
                    "disable_host_header_fallback": true
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: stats-filter-1.17
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.17.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/stats.PluginConfig
          value: {}
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.17.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/stats.PluginConfig
          value:
            disable_host_header_fallback: true
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
      proxy:
        proxyVersion: ^1\.17.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/stats.PluginConfig
          value:
            disable_host_header_fallback: true
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: tcp-stats-filter-1.13
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.13.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_inbound
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.13.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  - applyTo: NETWORK_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.13.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: tcp-stats-filter-1.14
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.14.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_inbound
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.14.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  - applyTo: NETWORK_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.14.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: tcp-stats-filter-1.15
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.15.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_inbound
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.15.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  - applyTo: NETWORK_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.15.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: tcp-stats-filter-1.16
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.16.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_inbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_inbound
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.16.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  - applyTo: NETWORK_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.16.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
          value:
            config:
              configuration:
                '@type': type.googleapis.com/google.protobuf.StringValue
                value: |
                  {
                    "debug": "false",
                    "stat_prefix": "istio"
                  }
              root_id: stats_outbound
              vm_config:
                code:
                  local:
                    inline_string: envoy.wasm.stats
                runtime: envoy.wasm.runtime.null
                vm_id: tcp_stats_outbound
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    istio.io/rev: default
  name: tcp-stats-filter-1.17
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_INBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.17.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/stats.PluginConfig
          value: {}
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.17.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/stats.PluginConfig
          value: {}
  - applyTo: NETWORK_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.tcp_proxy
      proxy:
        proxyVersion: ^1\.17.*
    patch:
      operation: INSERT_BEFORE
      value:
        name: istio.stats
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/stats.PluginConfig
          value: {}
  priority: -1
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: x-forwarded-host
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.http_connection_manager
            subFilter:
              name: envoy.router
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.filters.http.lua
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
          inlineCode: |
            function envoy_on_request(request_handle)
              local host = request_handle:headers():get(":authority")
              request_handle:headers():add("x-forwarded-host", host)
            end
  workloadSelector:
    labels:
      istio: ingressgateway
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  labels:
    release: istio
  name: cluster-local-gateway
  namespace: istio-system
spec:
  selector:
    app: cluster-local-gateway
    istio: cluster-local-gateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  labels:
    release: istio
  name: istio-ingressgateway
  namespace: istio-system
spec:
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: kubeflow-gateway
  namespace: kubeflow
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: dex
  namespace: auth
spec:
  gateways:
  - kubeflow/kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /dex/
    route:
    - destination:
        host: dex.auth.svc.cluster.local
        port:
          number: 5556
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: centraldashboard
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /
    rewrite:
      uri: /
    route:
    - destination:
        host: centraldashboard.kubeflow.svc.cluster.local
        port:
          number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app-jupyter-web-app
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - headers:
      request:
        add:
          x-forwarded-prefix: /jupyter
    match:
    - uri:
        prefix: /jupyter/
    rewrite:
      uri: /
    route:
    - destination:
        host: jupyter-web-app-service.kubeflow.svc.cluster.local
        port:
          number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: katib-ui
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /katib/
    rewrite:
      uri: /katib/
    route:
    - destination:
        host: katib-ui.kubeflow.svc.cluster.local
        port:
          number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: metadata-grpc
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /ml_metadata
    rewrite:
      uri: /ml_metadata
    route:
    - destination:
        host: metadata-envoy-service.kubeflow.svc.cluster.local
        port:
          number: 9090
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /pipeline
    rewrite:
      uri: /pipeline
    route:
    - destination:
        host: ml-pipeline-ui.kubeflow.svc.cluster.local
        port:
          number: 80
    timeout: 300s
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-kfam
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - headers:
      request:
        add:
          x-forwarded-prefix: /kfam
    match:
    - uri:
        prefix: /kfam/
    rewrite:
      uri: /kfam/
    route:
    - destination:
        host: profiles-kfam.kubeflow.svc.cluster.local
        port:
          number: 8081
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app-tensorboards-web-app
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - headers:
      request:
        add:
          x-forwarded-prefix: /tensorboards
    match:
    - uri:
        prefix: /tensorboards/
    rewrite:
      uri: /
    route:
    - destination:
        host: tensorboards-web-app-service.kubeflow.svc.cluster.local
        port:
          number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app-volumes-web-app
  namespace: kubeflow
spec:
  gateways:
  - kubeflow-gateway
  hosts:
  - '*'
  http:
  - headers:
      request:
        add:
          x-forwarded-prefix: /volumes
    match:
    - uri:
        prefix: /volumes/
    rewrite:
      uri: /
    route:
    - destination:
        host: volumes-web-app-service.kubeflow.svc.cluster.local
        port:
          number: 80
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: knative-local-gateway
  namespace: knative-serving
spec:
  selector:
    app: cluster-local-gateway
    istio: cluster-local-gateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 8081
      protocol: HTTP
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app
  namespace: kubeflow
spec:
  gateways:
  - kubeflow/kubeflow-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /kserve-endpoints/
    rewrite:
      uri: /
    route:
    - destination:
        host: kserve-models-web-app.kubeflow.svc.cluster.local
        port:
          number: 80
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: cluster-local-gateway
  namespace: istio-system
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      app: cluster-local-gateway
      istio: cluster-local-gateway
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: global-deny-all
  namespace: istio-system
spec: {}
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: istio-ingressgateway
  namespace: istio-system
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      app: istio-ingressgateway
      istio: ingressgateway
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: activator-service
  namespace: knative-serving
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      app: activator
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: autoscaler
  namespace: knative-serving
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      app: autoscaler
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: controller
  namespace: knative-serving
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      app: controller
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: istio-webhook
  namespace: knative-serving
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      app: net-istio-webhook
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: webhook
  namespace: knative-serving
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      role: webhook
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app: centraldashboard
    app.kubernetes.io/component: centraldashboard
    app.kubernetes.io/name: centraldashboard
    kustomize.component: centraldashboard
  name: central-dashboard
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
  selector:
    matchLabels:
      app: centraldashboard
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app: jupyter-web-app
    kustomize.component: jupyter-web-app
  name: jupyter-web-app
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
  selector:
    matchLabels:
      app: jupyter-web-app
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: katib-ui
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
  selector:
    matchLabels:
      katib.kubeflow.org/component: ui
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app: kserve
    app.kubernetes.io/component: kserve-models-web-app
    app.kubernetes.io/name: kserve
    kustomize.component: kserve-models-web-app
  name: kserve-models-web-app
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
  selector:
    matchLabels:
      app: kserve
      app.kubernetes.io/component: kserve-models-web-app
      app.kubernetes.io/name: kserve
      kustomize.component: kserve-models-web-app
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: metadata-grpc-service
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - {}
  selector:
    matchLabels:
      component: metadata-grpc-server
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: minio-service
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/kubeflow/sa/ml-pipeline
  - from:
    - source:
        principals:
        - cluster.local/ns/kubeflow/sa/ml-pipeline-ui
  - {}
  selector:
    matchLabels:
      app: minio
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline
  namespace: kubeflow
spec:
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/kubeflow/sa/ml-pipeline
        - cluster.local/ns/kubeflow/sa/ml-pipeline-ui
        - cluster.local/ns/kubeflow/sa/ml-pipeline-persistenceagent
        - cluster.local/ns/kubeflow/sa/ml-pipeline-scheduledworkflow
        - cluster.local/ns/kubeflow/sa/ml-pipeline-viewer-crd-service-account
        - cluster.local/ns/kubeflow/sa/kubeflow-pipelines-cache
  - when:
    - key: request.headers[kubeflow-userid]
      notValues:
      - '*'
  selector:
    matchLabels:
      app: ml-pipeline
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-ui
  namespace: kubeflow
spec:
  rules:
  - from:
    - source:
        namespaces:
        - istio-system
  selector:
    matchLabels:
      app: ml-pipeline-ui
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: ml-pipeline-visualizationserver
  namespace: kubeflow
spec:
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/kubeflow/sa/ml-pipeline
        - cluster.local/ns/kubeflow/sa/ml-pipeline-ui
        - cluster.local/ns/kubeflow/sa/ml-pipeline-persistenceagent
        - cluster.local/ns/kubeflow/sa/ml-pipeline-scheduledworkflow
        - cluster.local/ns/kubeflow/sa/ml-pipeline-viewer-crd-service-account
        - cluster.local/ns/kubeflow/sa/kubeflow-pipelines-cache
  selector:
    matchLabels:
      app: ml-pipeline-visualizationserver
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    application-crd-id: kubeflow-pipelines
  name: mysql
  namespace: kubeflow
spec:
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/kubeflow/sa/ml-pipeline
        - cluster.local/ns/kubeflow/sa/ml-pipeline-ui
        - cluster.local/ns/kubeflow/sa/ml-pipeline-persistenceagent
        - cluster.local/ns/kubeflow/sa/ml-pipeline-scheduledworkflow
        - cluster.local/ns/kubeflow/sa/ml-pipeline-viewer-crd-service-account
        - cluster.local/ns/kubeflow/sa/kubeflow-pipelines-cache
        - cluster.local/ns/kubeflow/sa/metadata-grpc-server
  selector:
    matchLabels:
      app: mysql
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    kustomize.component: profiles
  name: profiles-kfam
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/kubeflow/sa/centraldashboard
  selector:
    matchLabels:
      kustomize.component: profiles
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app.kubernetes.io/component: ml-pipeline
    app.kubernetes.io/name: kubeflow-pipelines
    application-crd-id: kubeflow-pipelines
  name: service-cache-server
  namespace: kubeflow
spec:
  rules:
  - {}
  selector:
    matchLabels:
      app: cache-server
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app: tensorboards-web-app
    kustomize.component: tensorboards-web-app
  name: tensorboards-web-app
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
  selector:
    matchLabels:
      app: tensorboards-web-app
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  labels:
    app: volumes-web-app
    kustomize.component: volumes-web-app
  name: volumes-web-app
  namespace: kubeflow
spec:
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
  selector:
    matchLabels:
      app: volumes-web-app
---
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: domainmapping-webhook
  namespace: knative-serving
spec:
  portLevelMtls:
    "8443":
      mode: PERMISSIVE
  selector:
    matchLabels:
      app: domainmapping-webhook
---
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: net-istio-webhook
  namespace: knative-serving
spec:
  portLevelMtls:
    "8443":
      mode: PERMISSIVE
  selector:
    matchLabels:
      app: net-istio-webhook
---
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: webhook
  namespace: knative-serving
spec:
  portLevelMtls:
    "8443":
      mode: PERMISSIVE
  selector:
    matchLabels:
      app: webhook
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-lgbserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - args:
    - --model_name={{ "{{" }}.Name}}
    - --model_dir=/mnt/models
    - --http_port=8080
    - --nthread=1
    image: kserve/lgbserver:v0.10.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  supportedModelFormats:
  - autoSelect: true
    name: lightgbm
    version: "3"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-mlserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - env:
    - name: MLSERVER_MODEL_IMPLEMENTATION
      value: '{{ "{{" }}.Labels.modelClass}}'
    - name: MLSERVER_HTTP_PORT
      value: "8080"
    - name: MLSERVER_GRPC_PORT
      value: "9000"
    - name: MODELS_DIR
      value: /mnt/models
    image: docker.io/seldonio/mlserver:1.0.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v2
  supportedModelFormats:
  - autoSelect: true
    name: sklearn
    version: "0"
  - autoSelect: true
    name: xgboost
    version: "1"
  - autoSelect: true
    name: lightgbm
    version: "3"
  - autoSelect: true
    name: mlflow
    version: "1"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-paddleserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - args:
    - --model_name={{ "{{" }}.Name}}
    - --model_dir=/mnt/models
    - --http_port=8080
    image: kserve/paddleserver:v0.10.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  supportedModelFormats:
  - autoSelect: true
    name: paddle
    version: "2"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-pmmlserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - args:
    - --model_name={{ "{{" }}.Name}}
    - --model_dir=/mnt/models
    - --http_port=8080
    image: kserve/pmmlserver:v0.10.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  supportedModelFormats:
  - autoSelect: true
    name: pmml
    version: "3"
  - autoSelect: true
    name: pmml
    version: "4"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-sklearnserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - args:
    - --model_name={{ "{{" }}.Name}}
    - --model_dir=/mnt/models
    - --http_port=8080
    image: kserve/sklearnserver:v0.10.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  supportedModelFormats:
  - autoSelect: true
    name: sklearn
    version: "1"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-tensorflow-serving
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - args:
    - --model_name={{ "{{" }}.Name}}
    - --port=9000
    - --rest_api_port=8080
    - --model_base_path=/mnt/models
    - --rest_api_timeout_in_ms=60000
    command:
    - /usr/bin/tensorflow_model_server
    image: tensorflow/serving:2.6.2
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  - grpc-v1
  supportedModelFormats:
  - autoSelect: true
    name: tensorflow
    version: "1"
  - autoSelect: true
    name: tensorflow
    version: "2"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-torchserve
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8082"
  containers:
  - args:
    - torchserve
    - --start
    - --model-store=/mnt/models/model-store
    - --ts-config=/mnt/models/config/config.properties
    env:
    - name: TS_SERVICE_ENVELOPE
      value: '{{ "{{" }}.Labels.serviceEnvelope}}'
    image: pytorch/torchserve-kfs:0.7.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  - v2
  - grpc-v1
  supportedModelFormats:
  - autoSelect: true
    name: pytorch
    version: "1"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-tritonserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8002"
  containers:
  - args:
    - tritonserver
    - --model-store=/mnt/models
    - --grpc-port=9000
    - --http-port=8080
    - --allow-grpc=true
    - --allow-http=true
    image: nvcr.io/nvidia/tritonserver:21.09-py3
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v2
  - grpc-v2
  supportedModelFormats:
  - autoSelect: true
    name: tensorrt
    version: "8"
  - autoSelect: true
    name: tensorflow
    version: "1"
  - autoSelect: true
    name: tensorflow
    version: "2"
  - autoSelect: true
    name: onnx
    version: "1"
  - name: pytorch
    version: "1"
  - autoSelect: true
    name: triton
    version: "2"
---
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
  name: kserve-xgbserver
spec:
  annotations:
    prometheus.kserve.io/path: /metrics
    prometheus.kserve.io/port: "8080"
  containers:
  - args:
    - --model_name={{ "{{" }}.Name}}
    - --model_dir=/mnt/models
    - --http_port=8080
    - --nthread=1
    image: kserve/xgbserver:v0.10.0
    name: kserve-container
    resources:
      limits:
        cpu: "1"
        memory: 2Gi
      requests:
        cpu: "1"
        memory: 2Gi
  protocolVersions:
  - v1
  supportedModelFormats:
  - autoSelect: true
    name: xgboost
    version: "1"
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from-secret: cert-manager/cert-manager-webhook-ca
  labels:
    app: webhook
    app.kubernetes.io/component: webhook
    app.kubernetes.io/instance: cert-manager
    app.kubernetes.io/name: webhook
    app.kubernetes.io/version: v1.12.2
  name: cert-manager-webhook
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    service:
      name: cert-manager-webhook
      namespace: cert-manager
      path: /validate
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: webhook.cert-manager.io
  namespaceSelector:
    matchExpressions:
    - key: cert-manager.io/disable-validation
      operator: NotIn
      values:
      - "true"
    - key: name
      operator: NotIn
      values:
      - cert-manager
  rules:
  - apiGroups:
    - cert-manager.io
    - acme.cert-manager.io
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - '*/*'
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: config.webhook.eventing.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: eventing-webhook
      namespace: knative-eventing
  failurePolicy: Ignore
  name: config.webhook.eventing.knative.dev
  namespaceSelector:
    matchExpressions: null
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: net-istio
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.1
    networking.knative.dev/ingress-provider: istio
  name: config.webhook.istio.networking.internal.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: net-istio-webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: config.webhook.istio.networking.internal.knative.dev
  objectSelector:
    matchLabels:
      app.kubernetes.io/component: net-istio
      app.kubernetes.io/name: knative-serving
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: config.webhook.serving.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: config.webhook.serving.knative.dev
  objectSelector:
    matchExpressions:
    - key: app.kubernetes.io/name
      operator: In
      values:
      - knative-serving
    - key: app.kubernetes.io/component
      operator: In
      values:
      - autoscaler
      - controller
      - logging
      - networking
      - observability
      - tracing
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/serving-cert
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: inferencegraph.serving.kserve.io
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    caBundle: Cg==
    service:
      name: kserve-webhook-server-service
      namespace: kubeflow
      path: /validate-serving-kserve-io-v1alpha1-inferencegraph
  failurePolicy: Fail
  name: inferencegraph.kserve-webhook-server.validator
  rules:
  - apiGroups:
    - serving.kserve.io
    apiVersions:
    - v1alpha1
    operations:
    - CREATE
    - UPDATE
    resources:
    - inferencegraphs
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/serving-cert
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: inferenceservice.serving.kserve.io
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    caBundle: Cg==
    service:
      name: kserve-webhook-server-service
      namespace: kubeflow
      path: /validate-serving-kserve-io-v1beta1-inferenceservice
  failurePolicy: Fail
  name: inferenceservice.kserve-webhook-server.validator
  rules:
  - apiGroups:
    - serving.kserve.io
    apiVersions:
    - v1beta1
    operations:
    - CREATE
    - UPDATE
    resources:
    - inferenceservices
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app: istiod
    istio: istiod
    istio.io/rev: default
    release: istio
  name: istio-validator-istio-system
webhooks:
- admissionReviewVersions:
  - v1beta1
  - v1
  clientConfig:
    service:
      name: istiod
      namespace: istio-system
      path: /validate
  failurePolicy: Ignore
  name: rev.validation.istio.io
  objectSelector:
    matchExpressions:
    - key: istio.io/rev
      operator: In
      values:
      - default
  rules:
  - apiGroups:
    - security.istio.io
    - networking.istio.io
    - telemetry.istio.io
    - extensions.istio.io
    apiVersions:
    - '*'
    operations:
    - CREATE
    - UPDATE
    resources:
    - '*'
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/katib-webhook-cert
  name: katib.kubeflow.org
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    caBundle: Cg==
    service:
      name: katib-controller
      namespace: kubeflow
      path: /validate-experiment
  name: validator.experiment.katib.kubeflow.org
  rules:
  - apiGroups:
    - kubeflow.org
    apiVersions:
    - v1beta1
    operations:
    - CREATE
    - UPDATE
    resources:
    - experiments
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: kubeflow/serving-cert
  labels:
    app: kserve
    app.kubernetes.io/name: kserve
  name: trainedmodel.serving.kserve.io
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    caBundle: Cg==
    service:
      name: kserve-webhook-server-service
      namespace: kubeflow
      path: /validate-serving-kserve-io-v1alpha1-trainedmodel
  failurePolicy: Fail
  name: trainedmodel.kserve-webhook-server.validator
  rules:
  - apiGroups:
    - serving.kserve.io
    apiVersions:
    - v1alpha1
    operations:
    - CREATE
    - UPDATE
    resources:
    - trainedmodels
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: domain-mapping
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: validation.webhook.domainmapping.serving.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: domainmapping-webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: validation.webhook.domainmapping.serving.knative.dev
  rules:
  - apiGroups:
    - serving.knative.dev
    apiVersions:
    - '*'
    operations:
    - CREATE
    - UPDATE
    - DELETE
    resources:
    - domainmappings
    - domainmappings/status
    scope: '*'
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: knative-eventing
    app.kubernetes.io/name: knative-eventing
    app.kubernetes.io/version: 1.10.1
    kustomize.component: knative
  name: validation.webhook.eventing.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: eventing-webhook
      namespace: knative-eventing
  failurePolicy: Fail
  name: validation.webhook.eventing.knative.dev
  sideEffects: None
  timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/name: knative-serving
    app.kubernetes.io/version: 1.10.2
  name: validation.webhook.serving.knative.dev
webhooks:
- admissionReviewVersions:
  - v1
  - v1beta1
  clientConfig:
    service:
      name: webhook
      namespace: knative-serving
  failurePolicy: Fail
  name: validation.webhook.serving.knative.dev
  rules:
  - apiGroups:
    - autoscaling.internal.knative.dev
    - networking.internal.knative.dev
    - serving.knative.dev
    apiVersions:
    - '*'
    operations:
    - CREATE
    - UPDATE
    - DELETE
    resources:
    - metrics
    - podautoscalers
    - certificates
    - ingresses
    - serverlessservices
    - configurations
    - revisions
    - routes
    - services
    scope: '*'
  sideEffects: None
  timeoutSeconds: 10
