---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  name: teamcities.jetbrains.com
spec:
  group: jetbrains.com
  names:
    kind: TeamCity
    listKind: TeamCityList
    plural: teamcities
    singular: teamcity
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: TeamCity is the Schema for the teamcities 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: TeamCitySpec defines the desired state of TeamCity
            properties:
              TeamCityServerPort:
                default:
                  containerPort: 8111
                  name: tc-server-port
                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
              dataDirVolumeClaim:
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  spec:
                    description: |-
                      PersistentVolumeClaimSpec describes the common attributes of storage devices
                      and allows a Source for provider-specific attributes
                    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.
                          When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
                          and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
                          If the namespace is specified, then dataSourceRef will not be copied to dataSource.
                        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.
                          This field will replace the functionality of the dataSource field and as such
                          if both fields are non-empty, they must have the same value. For backwards
                          compatibility, when namespace isn't specified in dataSourceRef,
                          both fields (dataSource and dataSourceRef) will be set to the same
                          value automatically if one of them is empty and the other is non-empty.
                          When namespace is specified in dataSourceRef,
                          dataSource isn't set to the same value and must be empty.
                          There are three important differences between dataSource and dataSourceRef:
                          * While dataSource only allows two specific types of objects, dataSourceRef
                            allows any non-core object, as well as PersistentVolumeClaim objects.
                          * While dataSource ignores disallowed values (dropping them), dataSourceRef
                            preserves all values, and generates an error if a disallowed value is
                            specified.
                          * While dataSource only allows local objects, dataSourceRef allows objects
                            in any namespaces.
                          (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
                          (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
                        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.


                              This is an alpha field and requires enabling the
                              DynamicResourceAllocation feature gate.


                              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
                  volumeMount:
                    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
                required:
                - name
                - spec
                - volumeMount
                type: object
              databaseSecret:
                default: {}
                properties:
                  secret:
                    type: string
                type: object
              healthEndpoint:
                default:
                  path: /healthCheck/healthy
                  port: 8111
                  scheme: HTTP
                description: HTTPGetAction describes an action based on HTTP Get requests.
                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
              image:
                type: string
              ingressList:
                default: []
                items:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      type: string
                    spec:
                      description: IngressSpec describes the Ingress the user wishes
                        to exist.
                      properties:
                        defaultBackend:
                          description: |-
                            defaultBackend is the backend that should handle requests that don't
                            match any rule. If Rules are not specified, DefaultBackend must be specified.
                            If DefaultBackend is not set, the handling of requests that do not match any
                            of the rules will be up to the Ingress controller.
                          properties:
                            resource:
                              description: |-
                                resource is an ObjectRef to another Kubernetes resource in the namespace
                                of the Ingress object. If resource is specified, a service.Name and
                                service.Port must not be specified.
                                This is a mutually exclusive setting with "Service".
                              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
                            service:
                              description: |-
                                service references a service as a backend.
                                This is a mutually exclusive setting with "Resource".
                              properties:
                                name:
                                  description: |-
                                    name is the referenced service. The service must exist in
                                    the same namespace as the Ingress object.
                                  type: string
                                port:
                                  description: |-
                                    port of the referenced service. A port name or port number
                                    is required for a IngressServiceBackend.
                                  properties:
                                    name:
                                      description: |-
                                        name is the name of the port on the Service.
                                        This is a mutually exclusive setting with "Number".
                                      type: string
                                    number:
                                      description: |-
                                        number is the numerical port number (e.g. 80) on the Service.
                                        This is a mutually exclusive setting with "Name".
                                      format: int32
                                      type: integer
                                  type: object
                              required:
                              - name
                              type: object
                          type: object
                        ingressClassName:
                          description: |-
                            ingressClassName is the name of an IngressClass cluster resource. Ingress
                            controller implementations use this field to know whether they should be
                            serving this Ingress resource, by a transitive connection
                            (controller -> IngressClass -> Ingress resource). Although the
                            `kubernetes.io/ingress.class` annotation (simple constant name) was never
                            formally defined, it was widely supported by Ingress controllers to create
                            a direct binding between Ingress controller and Ingress resources. Newly
                            created Ingress resources should prefer using the field. However, even
                            though the annotation is officially deprecated, for backwards compatibility
                            reasons, ingress controllers should still honor that annotation if present.
                          type: string
                        rules:
                          description: |-
                            rules is a list of host rules used to configure the Ingress. If unspecified,
                            or no rule matches, all traffic is sent to the default backend.
                          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:
                              host:
                                description: "host is the fully qualified domain name
                                  of a network host, as defined by RFC 3986.\nNote
                                  the following deviations from the \"host\" part
                                  of the\nURI as defined in RFC 3986:\n1. IPs are
                                  not allowed. Currently an IngressRuleValue can only
                                  apply to\n   the IP in the Spec of the parent Ingress.\n2.
                                  The `:` delimiter is not respected because ports
                                  are not allowed.\n\t  Currently the port of an Ingress
                                  is implicitly :80 for http and\n\t  :443 for https.\nBoth
                                  these may change in the future.\nIncoming requests
                                  are matched against the host before the\nIngressRuleValue.
                                  If the host is unspecified, the Ingress routes all\ntraffic
                                  based on the specified IngressRuleValue.\n\n\nhost
                                  can be \"precise\" which is a domain name without
                                  the terminating dot of\na network host (e.g. \"foo.bar.com\")
                                  or \"wildcard\", which is a domain name\nprefixed
                                  with a single wildcard label (e.g. \"*.foo.com\").\nThe
                                  wildcard character '*' must appear by itself as
                                  the first DNS label and\nmatches only a single label.
                                  You cannot have a wildcard label by itself (e.g.
                                  Host == \"*\").\nRequests will be matched against
                                  the Host field in the following way:\n1. If host
                                  is precise, the request matches this rule if the
                                  http host header is equal to Host.\n2. If host is
                                  a wildcard, then the request matches this rule if
                                  the http host header\nis to equal to the suffix
                                  (removing the first label) of the wildcard rule."
                                type: string
                              http:
                                description: |-
                                  HTTPIngressRuleValue is a list of http selectors pointing to backends.
                                  In the example: http://<host>/<path>?<searchpart> -> backend where
                                  where parts of the url correspond to RFC 3986, this resource will be used
                                  to match against everything after the last '/' and before the first '?'
                                  or '#'.
                                properties:
                                  paths:
                                    description: paths is a collection of paths that
                                      map requests to backends.
                                    items:
                                      description: |-
                                        HTTPIngressPath associates a path with a backend. Incoming urls matching the
                                        path are forwarded to the backend.
                                      properties:
                                        backend:
                                          description: |-
                                            backend defines the referenced service endpoint to which the traffic
                                            will be forwarded to.
                                          properties:
                                            resource:
                                              description: |-
                                                resource is an ObjectRef to another Kubernetes resource in the namespace
                                                of the Ingress object. If resource is specified, a service.Name and
                                                service.Port must not be specified.
                                                This is a mutually exclusive setting with "Service".
                                              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
                                            service:
                                              description: |-
                                                service references a service as a backend.
                                                This is a mutually exclusive setting with "Resource".
                                              properties:
                                                name:
                                                  description: |-
                                                    name is the referenced service. The service must exist in
                                                    the same namespace as the Ingress object.
                                                  type: string
                                                port:
                                                  description: |-
                                                    port of the referenced service. A port name or port number
                                                    is required for a IngressServiceBackend.
                                                  properties:
                                                    name:
                                                      description: |-
                                                        name is the name of the port on the Service.
                                                        This is a mutually exclusive setting with "Number".
                                                      type: string
                                                    number:
                                                      description: |-
                                                        number is the numerical port number (e.g. 80) on the Service.
                                                        This is a mutually exclusive setting with "Name".
                                                      format: int32
                                                      type: integer
                                                  type: object
                                              required:
                                              - name
                                              type: object
                                          type: object
                                        path:
                                          description: |-
                                            path is matched against the path of an incoming request. Currently it can
                                            contain characters disallowed from the conventional "path" part of a URL
                                            as defined by RFC 3986. Paths must begin with a '/' and must be present
                                            when using PathType with value "Exact" or "Prefix".
                                          type: string
                                        pathType:
                                          description: |-
                                            pathType determines the interpretation of the path matching. PathType can
                                            be one of the following values:
                                            * Exact: Matches the URL path exactly.
                                            * Prefix: Matches based on a URL path prefix split by '/'. Matching is
                                              done on a path element by element basis. A path element refers is the
                                              list of labels in the path split by the '/' separator. A request is a
                                              match for path p if every p is an element-wise prefix of p of the
                                              request path. Note that if the last element of the path is a substring
                                              of the last element in request path, it is not a match (e.g. /foo/bar
                                              matches /foo/bar/baz, but does not match /foo/barbaz).
                                            * ImplementationSpecific: Interpretation of the Path matching is up to
                                              the IngressClass. Implementations can treat this as a separate PathType
                                              or treat it identically to Prefix or Exact path types.
                                            Implementations are required to support all path types.
                                          type: string
                                      required:
                                      - backend
                                      - pathType
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                required:
                                - paths
                                type: object
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        tls:
                          description: |-
                            tls represents the TLS configuration. Currently the 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
                                x-kubernetes-list-type: atomic
                              secretName:
                                description: |-
                                  secretName is the name of the secret used to terminate TLS traffic on
                                  port 443. Field is left optional to allow TLS routing based on SNI
                                  hostname alone. If the SNI host in a listener conflicts with the "Host"
                                  header field used by an IngressRule, the SNI host is used for termination
                                  and value of the "Host" header is used for routing.
                                type: string
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                  type: object
                type: array
              mainNode:
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  spec:
                    properties:
                      affinity:
                        description: Affinity is a group of affinity scheduling rules.
                        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
                      env:
                        additionalProperties:
                          type: string
                        type: object
                      initContainers:
                        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: |-
                                          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. Regardless of the outcome of the handler, the
                                    container will eventually terminate within the Pod's termination grace
                                    period (unless delayed by finalizers). Other management of the container blocks until the hook completes
                                    or until the termination grace period is reached.
                                    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
                              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).


                                        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.
                                    If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                    value overrides the value provided by the pod spec.
                                    Value must be non-negative integer. The value zero indicates stop immediately via
                                    the kill signal (no opportunity to shut down).
                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                  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.
                                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
                                  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).


                                        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.
                                    If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                    value overrides the value provided by the pod spec.
                                    Value must be non-negative integer. The value zero indicates stop immediately via
                                    the kill signal (no opportunity to shut down).
                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                  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.


                                    This is an alpha field and requires enabling the
                                    DynamicResourceAllocation feature gate.


                                    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
                            restartPolicy:
                              description: |-
                                RestartPolicy defines the restart behavior of individual containers in a pod.
                                This field may only be set for init containers, and the only allowed value is "Always".
                                For non-init containers or when this field is not specified,
                                the restart behavior is defined by the Pod's restart policy and the container type.
                                Setting the RestartPolicy as "Always" for the init container will have the following effect:
                                this init container will be continually restarted on
                                exit until all regular containers have terminated. Once all regular
                                containers have completed, all init containers with restartPolicy "Always"
                                will be shut down. This lifecycle differs from normal init containers and
                                is often referred to as a "sidecar" container. Although this init
                                container still starts in the init container sequence, it does not wait
                                for the container to complete before proceeding to the next init
                                container. Instead, the next init container starts immediately after this
                                init container is started, or after any startupProbe has successfully
                                completed.
                              type: string
                            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.  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
                                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 be set if type is "Localhost". Must NOT be set for any other type.
                                      type: string
                                    type:
                                      description: |-
                                        type indicates which kind of seccomp profile will be applied.
                                        Valid options are:


                                        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.
                                        All of a Pod's containers must have the same effective HostProcess value
                                        (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
                                        In addition, if HostProcess is true then HostNetwork must also be set to true.
                                      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.
                                This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
                                when it might take a long time to load data or warm a cache, than during steady-state operation.
                                This 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).


                                        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.
                                    If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                    value overrides the value provided by the pod spec.
                                    Value must be non-negative integer. The value zero indicates stop immediately via
                                    the kill signal (no opportunity to shut down).
                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                  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. If stdinOnce is set to true, stdin is opened on container start, is empty until the
                                first client attaches to stdin, and then remains open and accepts data until the client disconnects,
                                at which time stdin is closed and remains closed until the container is restarted. If this
                                flag is false, a container processes that reads from stdin will never receive an EOF.
                                Default is false
                              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.
                                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
                            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
                      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: ResourceList is a set of (resource name, quantity)
                          pairs.
                        type: object
                      livenessProbeSettings:
                        default:
                          failureThreshold: 3
                          initialDelaySeconds: 60
                          periodSeconds: 20
                          successThreshold: 1
                          timeoutSeconds: 1
                        description: |-
                          Probe describes a health check to be performed against a container to determine whether it is
                          alive or ready to receive traffic.
                        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).


                                  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.
                              If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                              value overrides the value provided by the pod spec.
                              Value must be non-negative integer. The value zero indicates stop immediately via
                              the kill signal (no opportunity to shut down).
                              This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                              Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                            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
                      nodeSelector:
                        additionalProperties:
                          type: string
                        type: object
                      podSecurityContext:
                        default:
                          fsGroup: 1000
                          runAsGroup: 1000
                          runAsUser: 1000
                        description: |-
                          PodSecurityContext holds pod-level security attributes and common container settings.
                          Some fields are also present in container.securityContext.  Field values of
                          container.securityContext take precedence over field values of PodSecurityContext.
                        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:


                              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. The permission bits are OR'd with rw-rw----


                              If unset, the Kubelet will not modify the ownership and permissions of any volume.
                              Note that this field cannot be set when spec.os.name is windows.
                            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.
                              Note that this field cannot be set when spec.os.name is windows.
                            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.  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 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 be set if type is "Localhost". Must NOT be set for any other type.
                                type: string
                              type:
                                description: |-
                                  type indicates which kind of seccomp profile will be applied.
                                  Valid options are:


                                  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. Note that group memberships
                              defined in the container image for the uid of the container process are still effective,
                              even if they are not included in this list.
                              Note that this field cannot be set when spec.os.name is windows.
                            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.
                                  All of a Pod's containers must have the same effective HostProcess value
                                  (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
                                  In addition, if HostProcess is true then HostNetwork must also be set to true.
                                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
                      readinessProbeSettings:
                        default:
                          failureThreshold: 3
                          initialDelaySeconds: 60
                          periodSeconds: 10
                          successThreshold: 1
                          timeoutSeconds: 1
                        description: |-
                          Probe describes a health check to be performed against a container to determine whether it is
                          alive or ready to receive traffic.
                        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).


                                  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.
                              If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                              value overrides the value provided by the pod spec.
                              Value must be non-negative integer. The value zero indicates stop immediately via
                              the kill signal (no opportunity to shut down).
                              This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                              Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                            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
                      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: ResourceList is a set of (resource name, quantity)
                          pairs.
                        type: object
                      responsibilities:
                        items:
                          type: string
                        type: array
                      startupProbeSettings:
                        default:
                          failureThreshold: 15
                          initialDelaySeconds: 60
                          periodSeconds: 20
                          successThreshold: 1
                          timeoutSeconds: 1
                        description: |-
                          Probe describes a health check to be performed against a container to determine whether it is
                          alive or ready to receive traffic.
                        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).


                                  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.
                              If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                              value overrides the value provided by the pod spec.
                              Value must be non-negative integer. The value zero indicates stop immediately via
                              the kill signal (no opportunity to shut down).
                              This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                              Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                            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
                    required:
                    - requests
                    type: object
                required:
                - name
                - spec
                type: object
              persistentVolumeClaims:
                items:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      type: string
                    spec:
                      description: |-
                        PersistentVolumeClaimSpec describes the common attributes of storage devices
                        and allows a Source for provider-specific attributes
                      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.
                            When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
                            and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
                            If the namespace is specified, then dataSourceRef will not be copied to dataSource.
                          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.
                            This field will replace the functionality of the dataSource field and as such
                            if both fields are non-empty, they must have the same value. For backwards
                            compatibility, when namespace isn't specified in dataSourceRef,
                            both fields (dataSource and dataSourceRef) will be set to the same
                            value automatically if one of them is empty and the other is non-empty.
                            When namespace is specified in dataSourceRef,
                            dataSource isn't set to the same value and must be empty.
                            There are three important differences between dataSource and dataSourceRef:
                            * While dataSource only allows two specific types of objects, dataSourceRef
                              allows any non-core object, as well as PersistentVolumeClaim objects.
                            * While dataSource ignores disallowed values (dropping them), dataSourceRef
                              preserves all values, and generates an error if a disallowed value is
                              specified.
                            * While dataSource only allows local objects, dataSourceRef allows objects
                              in any namespaces.
                            (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
                            (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
                          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.


                                This is an alpha field and requires enabling the
                                DynamicResourceAllocation feature gate.


                                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
                    volumeMount:
                      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
                  required:
                  - name
                  - spec
                  - volumeMount
                  type: object
                type: array
              readinessEndpoint:
                default:
                  path: /healthCheck/ready
                  port: 8111
                  scheme: HTTP
                description: HTTPGetAction describes an action based on HTTP Get requests.
                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
              secondaryNodes:
                items:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      type: string
                    spec:
                      properties:
                        affinity:
                          description: Affinity is a group of affinity scheduling
                            rules.
                          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
                        env:
                          additionalProperties:
                            type: string
                          type: object
                        initContainers:
                          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: |-
                                            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. Regardless of the outcome of the handler, the
                                      container will eventually terminate within the Pod's termination grace
                                      period (unless delayed by finalizers). Other management of the container blocks until the hook completes
                                      or until the termination grace period is reached.
                                      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
                                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).


                                          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.
                                      If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                      value overrides the value provided by the pod spec.
                                      Value must be non-negative integer. The value zero indicates stop immediately via
                                      the kill signal (no opportunity to shut down).
                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                    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.
                                  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
                                    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).


                                          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.
                                      If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                      value overrides the value provided by the pod spec.
                                      Value must be non-negative integer. The value zero indicates stop immediately via
                                      the kill signal (no opportunity to shut down).
                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                    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.


                                      This is an alpha field and requires enabling the
                                      DynamicResourceAllocation feature gate.


                                      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
                              restartPolicy:
                                description: |-
                                  RestartPolicy defines the restart behavior of individual containers in a pod.
                                  This field may only be set for init containers, and the only allowed value is "Always".
                                  For non-init containers or when this field is not specified,
                                  the restart behavior is defined by the Pod's restart policy and the container type.
                                  Setting the RestartPolicy as "Always" for the init container will have the following effect:
                                  this init container will be continually restarted on
                                  exit until all regular containers have terminated. Once all regular
                                  containers have completed, all init containers with restartPolicy "Always"
                                  will be shut down. This lifecycle differs from normal init containers and
                                  is often referred to as a "sidecar" container. Although this init
                                  container still starts in the init container sequence, it does not wait
                                  for the container to complete before proceeding to the next init
                                  container. Instead, the next init container starts immediately after this
                                  init container is started, or after any startupProbe has successfully
                                  completed.
                                type: string
                              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.  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
                                  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 be set if type is "Localhost". Must NOT be set for any other type.
                                        type: string
                                      type:
                                        description: |-
                                          type indicates which kind of seccomp profile will be applied.
                                          Valid options are:


                                          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.
                                          All of a Pod's containers must have the same effective HostProcess value
                                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
                                          In addition, if HostProcess is true then HostNetwork must also be set to true.
                                        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.
                                  This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
                                  when it might take a long time to load data or warm a cache, than during steady-state operation.
                                  This 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).


                                          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.
                                      If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                      value overrides the value provided by the pod spec.
                                      Value must be non-negative integer. The value zero indicates stop immediately via
                                      the kill signal (no opportunity to shut down).
                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                    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. If stdinOnce is set to true, stdin is opened on container start, is empty until the
                                  first client attaches to stdin, and then remains open and accepts data until the client disconnects,
                                  at which time stdin is closed and remains closed until the container is restarted. If this
                                  flag is false, a container processes that reads from stdin will never receive an EOF.
                                  Default is false
                                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.
                                  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
                              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
                        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: ResourceList is a set of (resource name, quantity)
                            pairs.
                          type: object
                        livenessProbeSettings:
                          default:
                            failureThreshold: 3
                            initialDelaySeconds: 60
                            periodSeconds: 20
                            successThreshold: 1
                            timeoutSeconds: 1
                          description: |-
                            Probe describes a health check to be performed against a container to determine whether it is
                            alive or ready to receive traffic.
                          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).


                                    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.
                                If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                value overrides the value provided by the pod spec.
                                Value must be non-negative integer. The value zero indicates stop immediately via
                                the kill signal (no opportunity to shut down).
                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                              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
                        nodeSelector:
                          additionalProperties:
                            type: string
                          type: object
                        podSecurityContext:
                          default:
                            fsGroup: 1000
                            runAsGroup: 1000
                            runAsUser: 1000
                          description: |-
                            PodSecurityContext holds pod-level security attributes and common container settings.
                            Some fields are also present in container.securityContext.  Field values of
                            container.securityContext take precedence over field values of PodSecurityContext.
                          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:


                                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. The permission bits are OR'd with rw-rw----


                                If unset, the Kubelet will not modify the ownership and permissions of any volume.
                                Note that this field cannot be set when spec.os.name is windows.
                              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.
                                Note that this field cannot be set when spec.os.name is windows.
                              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.  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 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 be set if type is "Localhost". Must NOT be set for any other type.
                                  type: string
                                type:
                                  description: |-
                                    type indicates which kind of seccomp profile will be applied.
                                    Valid options are:


                                    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. Note that group memberships
                                defined in the container image for the uid of the container process are still effective,
                                even if they are not included in this list.
                                Note that this field cannot be set when spec.os.name is windows.
                              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.
                                    All of a Pod's containers must have the same effective HostProcess value
                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
                                    In addition, if HostProcess is true then HostNetwork must also be set to true.
                                  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
                        readinessProbeSettings:
                          default:
                            failureThreshold: 3
                            initialDelaySeconds: 60
                            periodSeconds: 10
                            successThreshold: 1
                            timeoutSeconds: 1
                          description: |-
                            Probe describes a health check to be performed against a container to determine whether it is
                            alive or ready to receive traffic.
                          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).


                                    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.
                                If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                value overrides the value provided by the pod spec.
                                Value must be non-negative integer. The value zero indicates stop immediately via
                                the kill signal (no opportunity to shut down).
                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                              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
                        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: ResourceList is a set of (resource name, quantity)
                            pairs.
                          type: object
                        responsibilities:
                          items:
                            type: string
                          type: array
                        startupProbeSettings:
                          default:
                            failureThreshold: 15
                            initialDelaySeconds: 60
                            periodSeconds: 20
                            successThreshold: 1
                            timeoutSeconds: 1
                          description: |-
                            Probe describes a health check to be performed against a container to determine whether it is
                            alive or ready to receive traffic.
                          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).


                                    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.
                                If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                value overrides the value provided by the pod spec.
                                Value must be non-negative integer. The value zero indicates stop immediately via
                                the kill signal (no opportunity to shut down).
                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                              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
                      required:
                      - requests
                      type: object
                  required:
                  - name
                  - spec
                  type: object
                type: array
              serviceAccount:
                default: {}
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                type: object
              serviceList:
                default: []
                items:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      type: string
                    spec:
                      description: ServiceSpec describes the attributes that a user
                        creates on a service.
                      properties:
                        allocateLoadBalancerNodePorts:
                          description: |-
                            allocateLoadBalancerNodePorts defines if NodePorts will be automatically
                            allocated for services with type LoadBalancer.  Default is "true". It
                            may be set to "false" if the cluster load-balancer does not rely on
                            NodePorts.  If the caller requests specific NodePorts (by specifying a
                            value), those requests will be respected, regardless of this field.
                            This field may only be set for services with type LoadBalancer and will
                            be cleared if the type is changed to any other type.
                          type: boolean
                        clusterIP:
                          description: |-
                            clusterIP is the IP address of the service and is usually assigned
                            randomly. If an address is specified manually, is in-range (as per
                            system configuration), and is not in use, it will be allocated to the
                            service; otherwise creation of the service will fail. This field may not
                            be changed through updates unless the type field is also being changed
                            to ExternalName (which requires this field to be blank) or the type
                            field is being changed from ExternalName (in which case this field may
                            optionally be specified, as describe above).  Valid values are "None",
                            empty string (""), or a valid IP address. Setting this to "None" makes a
                            "headless service" (no virtual IP), which is useful when direct endpoint
                            connections are preferred and proxying is not required.  Only applies to
                            types ClusterIP, NodePort, and LoadBalancer. If this field is specified
                            when creating a Service of type ExternalName, creation will fail. This
                            field will be wiped when updating a Service to type ExternalName.
                            More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
                          type: string
                        clusterIPs:
                          description: |-
                            ClusterIPs is a list of IP addresses assigned to this service, and are
                            usually assigned randomly.  If an address is specified manually, is
                            in-range (as per system configuration), and is not in use, it will be
                            allocated to the service; otherwise creation of the service will fail.
                            This field may not be changed through updates unless the type field is
                            also being changed to ExternalName (which requires this field to be
                            empty) or the type field is being changed from ExternalName (in which
                            case this field may optionally be specified, as describe above).  Valid
                            values are "None", empty string (""), or a valid IP address.  Setting
                            this to "None" makes a "headless service" (no virtual IP), which is
                            useful when direct endpoint connections are preferred and proxying is
                            not required.  Only applies to types ClusterIP, NodePort, and
                            LoadBalancer. If this field is specified when creating a Service of type
                            ExternalName, creation will fail. This field will be wiped when updating
                            a Service to type ExternalName.  If this field is not specified, it will
                            be initialized from the clusterIP field.  If this field is specified,
                            clients must ensure that clusterIPs[0] and clusterIP have the same
                            value.


                            This field may hold a maximum of two entries (dual-stack IPs, in either order).
                            These IPs must correspond to the values of the ipFamilies field. Both
                            clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.
                            More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        externalIPs:
                          description: |-
                            externalIPs is a list of IP addresses for which nodes in the cluster
                            will also accept traffic for this service.  These IPs are not managed by
                            Kubernetes.  The user is responsible for ensuring that traffic arrives
                            at a node with this IP.  A common example is external load-balancers
                            that are not part of the Kubernetes system.
                          items:
                            type: string
                          type: array
                        externalName:
                          description: |-
                            externalName is the external reference that discovery mechanisms will
                            return as an alias for this service (e.g. a DNS CNAME record). No
                            proxying will be involved.  Must be a lowercase RFC-1123 hostname
                            (https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName".
                          type: string
                        externalTrafficPolicy:
                          description: |-
                            externalTrafficPolicy describes how nodes distribute service traffic they
                            receive on one of the Service's "externally-facing" addresses (NodePorts,
                            ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure
                            the service in a way that assumes that external load balancers will take care
                            of balancing the service traffic between nodes, and so each node will deliver
                            traffic only to the node-local endpoints of the service, without masquerading
                            the client source IP. (Traffic mistakenly sent to a node with no endpoints will
                            be dropped.) The default value, "Cluster", uses the standard behavior of
                            routing to all endpoints evenly (possibly modified by topology and other
                            features). Note that traffic sent to an External IP or LoadBalancer IP from
                            within the cluster will always get "Cluster" semantics, but clients sending to
                            a NodePort from within the cluster may need to take traffic policy into account
                            when picking a node.
                          type: string
                        healthCheckNodePort:
                          description: |-
                            healthCheckNodePort specifies the healthcheck nodePort for the service.
                            This only applies when type is set to LoadBalancer and
                            externalTrafficPolicy is set to Local. If a value is specified, is
                            in-range, and is not in use, it will be used.  If not specified, a value
                            will be automatically allocated.  External systems (e.g. load-balancers)
                            can use this port to determine if a given node holds endpoints for this
                            service or not.  If this field is specified when creating a Service
                            which does not need it, creation will fail. This field will be wiped
                            when updating a Service to no longer need it (e.g. changing type).
                            This field cannot be updated once set.
                          format: int32
                          type: integer
                        internalTrafficPolicy:
                          description: |-
                            InternalTrafficPolicy describes how nodes distribute service traffic they
                            receive on the ClusterIP. If set to "Local", the proxy will assume that pods
                            only want to talk to endpoints of the service on the same node as the pod,
                            dropping the traffic if there are no local endpoints. The default value,
                            "Cluster", uses the standard behavior of routing to all endpoints evenly
                            (possibly modified by topology and other features).
                          type: string
                        ipFamilies:
                          description: |-
                            IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this
                            service. This field is usually assigned automatically based on cluster
                            configuration and the ipFamilyPolicy field. If this field is specified
                            manually, the requested family is available in the cluster,
                            and ipFamilyPolicy allows it, it will be used; otherwise creation of
                            the service will fail. This field is conditionally mutable: it allows
                            for adding or removing a secondary IP family, but it does not allow
                            changing the primary IP family of the Service. Valid values are "IPv4"
                            and "IPv6".  This field only applies to Services of types ClusterIP,
                            NodePort, and LoadBalancer, and does apply to "headless" services.
                            This field will be wiped when updating a Service to type ExternalName.


                            This field may hold a maximum of two entries (dual-stack families, in
                            either order).  These families must correspond to the values of the
                            clusterIPs field, if specified. Both clusterIPs and ipFamilies are
                            governed by the ipFamilyPolicy field.
                          items:
                            description: |-
                              IPFamily represents the IP Family (IPv4 or IPv6). This type is used
                              to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        ipFamilyPolicy:
                          description: |-
                            IPFamilyPolicy represents the dual-stack-ness requested or required by
                            this Service. If there is no value provided, then this field will be set
                            to SingleStack. Services can be "SingleStack" (a single IP family),
                            "PreferDualStack" (two IP families on dual-stack configured clusters or
                            a single IP family on single-stack clusters), or "RequireDualStack"
                            (two IP families on dual-stack configured clusters, otherwise fail). The
                            ipFamilies and clusterIPs fields depend on the value of this field. This
                            field will be wiped when updating a service to type ExternalName.
                          type: string
                        loadBalancerClass:
                          description: |-
                            loadBalancerClass is the class of the load balancer implementation this Service belongs to.
                            If specified, the value of this field must be a label-style identifier, with an optional prefix,
                            e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users.
                            This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load
                            balancer implementation is used, today this is typically done through the cloud provider integration,
                            but should apply for any default implementation. If set, it is assumed that a load balancer
                            implementation is watching for Services with a matching class. Any default load balancer
                            implementation (e.g. cloud providers) should ignore Services that set this field.
                            This field can only be set when creating or updating a Service to type 'LoadBalancer'.
                            Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.
                          type: string
                        loadBalancerIP:
                          description: |-
                            Only applies to Service Type: LoadBalancer.
                            This feature depends on whether the underlying cloud-provider supports specifying
                            the loadBalancerIP when a load balancer is created.
                            This field will be ignored if the cloud-provider does not support the feature.
                            Deprecated: This field was under-specified and its meaning varies across implementations.
                            Using it is non-portable and it may not support dual-stack.
                            Users are encouraged to use implementation-specific annotations when available.
                          type: string
                        loadBalancerSourceRanges:
                          description: |-
                            If specified and supported by the platform, this will restrict traffic through the cloud-provider
                            load-balancer will be restricted to the specified client IPs. This field will be ignored if the
                            cloud-provider does not support the feature."
                            More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
                          items:
                            type: string
                          type: array
                        ports:
                          description: |-
                            The list of ports that are exposed by this service.
                            More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
                          items:
                            description: ServicePort contains information on service's
                              port.
                            properties:
                              appProtocol:
                                description: |-
                                  The application protocol for this port.
                                  This is used as a hint for implementations to offer richer behavior for protocols that they understand.
                                  This field follows standard Kubernetes label syntax.
                                  Valid values are either:


                                  * Un-prefixed protocol names - reserved for IANA standard service names (as per
                                  RFC-6335 and https://www.iana.org/assignments/service-names).


                                  * Kubernetes-defined prefixed names:
                                    * 'kubernetes.io/h2c' - HTTP/2 over cleartext as described in https://www.rfc-editor.org/rfc/rfc7540
                                    * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455
                                    * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455


                                  * Other protocols should use implementation-defined prefixed names such as
                                  mycompany.com/my-custom-protocol.
                                type: string
                              name:
                                description: |-
                                  The name of this port within the service. This must be a DNS_LABEL.
                                  All ports within a ServiceSpec must have unique names. When considering
                                  the endpoints for a Service, this must match the 'name' field in the
                                  EndpointPort.
                                  Optional if only one ServicePort is defined on this service.
                                type: string
                              nodePort:
                                description: |-
                                  The port on each node on which this service is exposed when type is
                                  NodePort or LoadBalancer.  Usually assigned by the system. If a value is
                                  specified, in-range, and not in use it will be used, otherwise the
                                  operation will fail.  If not specified, a port will be allocated if this
                                  Service requires one.  If this field is specified when creating a
                                  Service which does not need it, creation will fail. This field will be
                                  wiped when updating a Service to no longer need it (e.g. changing type
                                  from NodePort to ClusterIP).
                                  More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
                                format: int32
                                type: integer
                              port:
                                description: The port that will be exposed by this
                                  service.
                                format: int32
                                type: integer
                              protocol:
                                default: TCP
                                description: |-
                                  The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
                                  Default is TCP.
                                type: string
                              targetPort:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  Number or name of the port to access on the pods targeted by the service.
                                  Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
                                  If this is a string, it will be looked up as a named port in the
                                  target Pod's container ports. If this is not specified, the value
                                  of the 'port' field is used (an identity map).
                                  This field is ignored for services with clusterIP=None, and should be
                                  omitted or set equal to the 'port' field.
                                  More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - port
                          - protocol
                          x-kubernetes-list-type: map
                        publishNotReadyAddresses:
                          description: |-
                            publishNotReadyAddresses indicates that any agent which deals with endpoints for this
                            Service should disregard any indications of ready/not-ready.
                            The primary use case for setting this field is for a StatefulSet's Headless Service to
                            propagate SRV DNS records for its Pods for the purpose of peer discovery.
                            The Kubernetes controllers that generate Endpoints and EndpointSlice resources for
                            Services interpret this to mean that all endpoints are considered "ready" even if the
                            Pods themselves are not. Agents which consume only Kubernetes generated endpoints
                            through the Endpoints or EndpointSlice resources can safely assume this behavior.
                          type: boolean
                        selector:
                          additionalProperties:
                            type: string
                          description: |-
                            Route service traffic to pods with label keys and values matching this
                            selector. If empty or not present, the service is assumed to have an
                            external process managing its endpoints, which Kubernetes will not
                            modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
                            Ignored if type is ExternalName.
                            More info: https://kubernetes.io/docs/concepts/services-networking/service/
                          type: object
                          x-kubernetes-map-type: atomic
                        sessionAffinity:
                          description: |-
                            Supports "ClientIP" and "None". Used to maintain session affinity.
                            Enable client IP based session affinity.
                            Must be ClientIP or None.
                            Defaults to None.
                            More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
                          type: string
                        sessionAffinityConfig:
                          description: sessionAffinityConfig contains the configurations
                            of session affinity.
                          properties:
                            clientIP:
                              description: clientIP contains the configurations of
                                Client IP based session affinity.
                              properties:
                                timeoutSeconds:
                                  description: |-
                                    timeoutSeconds specifies the seconds of ClientIP type session sticky time.
                                    The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP".
                                    Default value is 10800(for 3 hours).
                                  format: int32
                                  type: integer
                              type: object
                          type: object
                        type:
                          description: |-
                            type determines how the Service is exposed. Defaults to ClusterIP. Valid
                            options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
                            "ClusterIP" allocates a cluster-internal IP address for load-balancing
                            to endpoints. Endpoints are determined by the selector or if that is not
                            specified, by manual construction of an Endpoints object or
                            EndpointSlice objects. If clusterIP is "None", no virtual IP is
                            allocated and the endpoints are published as a set of endpoints rather
                            than a virtual IP.
                            "NodePort" builds on ClusterIP and allocates a port on every node which
                            routes to the same endpoints as the clusterIP.
                            "LoadBalancer" builds on NodePort and creates an external load-balancer
                            (if supported in the current cloud) which routes to the same endpoints
                            as the clusterIP.
                            "ExternalName" aliases this service to the specified externalName.
                            Several other fields do not apply to ExternalName services.
                            More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
                          type: string
                      type: object
                  type: object
                type: array
              startupPropertiesConfig:
                additionalProperties:
                  type: string
                default: {}
                type: object
              xmxPercentage:
                default: 95
                format: int64
                type: integer
            required:
            - dataDirVolumeClaim
            - image
            - mainNode
            type: object
          status:
            description: TeamCityStatus defines the observed state of TeamCity
            properties:
              message:
                type: string
              state:
                description: |-
                  INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
                  Important: Run "make" to regenerate code after modifying this file
                type: string
            required:
            - message
            - state
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
