---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.2
  name: nimpipelines.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NIMPipeline
    listKind: NIMPipelineList
    plural: nimpipelines
    singular: nimpipeline
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.state
      name: Status
      type: string
    - format: date-time
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: NIMPipeline is the Schema for the nimpipelines 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: NIMPipelineSpec defines the desired state of NIMPipeline
            properties:
              services:
                description: NIMService configures attributes to deploy a NIM service
                  as part of the pipeline
                items:
                  description: NIMServicePipelineSpec defines the desired state of
                    NIMService as part of the NIMPipeline
                  properties:
                    dependencies:
                      items:
                        description: ServiceDependency defines service dependencies
                        properties:
                          envName:
                            description: EnvName is the dependent service endpoint
                              environment variable name
                            type: string
                          envValue:
                            description: EnvValue is the dependent service endpoint
                              environment variable value
                            type: string
                          name:
                            description: Name is the dependent service name
                            type: string
                          port:
                            description: Port is the dependent service port
                            format: int32
                            type: integer
                        required:
                        - name
                        - port
                        type: object
                      type: array
                    enabled:
                      type: boolean
                    name:
                      type: string
                    spec:
                      description: NIMServiceSpec defines the desired state of NIMService
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        args:
                          items:
                            type: string
                          type: array
                        authSecret:
                          description: The name of an existing pull secret containing
                            the NGC_API_KEY
                          type: string
                        command:
                          items:
                            type: string
                          type: array
                        env:
                          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:
                                        default: ""
                                        description: |-
                                          Name of the referent.
                                          This field is effectively required, but due to backwards compatibility is
                                          allowed to be empty. Instances of this type with an empty value here are
                                          almost certainly wrong.
                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        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:
                                        default: ""
                                        description: |-
                                          Name of the referent.
                                          This field is effectively required, but due to backwards compatibility is
                                          allowed to be empty. Instances of this type with an empty value here are
                                          almost certainly wrong.
                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                        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
                        expose:
                          description: Expose defines attributes to expose the service
                          properties:
                            ingress:
                              description: Ingress defines attributes to enable ingress
                                for the service
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                enabled:
                                  description: ingress, or virtualService - not both
                                  type: boolean
                                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
                                              x-kubernetes-map-type: atomic
                                          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\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
                                                              x-kubernetes-map-type: atomic
                                                          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
                            service:
                              description: Service defines attributes to create a
                                service
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                name:
                                  description: override the default service name
                                  type: string
                                port:
                                  default: 8000
                                  format: int32
                                  type: integer
                                type:
                                  description: Service Type string describes ingress
                                    methods for a service
                                  type: string
                              required:
                              - port
                              type: object
                          type: object
                        groupID:
                          format: int64
                          type: integer
                        image:
                          description: Image defines image attributes
                          properties:
                            pullPolicy:
                              type: string
                            pullSecrets:
                              items:
                                type: string
                              type: array
                            repository:
                              type: string
                            tag:
                              type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                        livenessProbe:
                          description: Probe defines attributes for startup/liveness/readiness
                            probes
                          properties:
                            enabled:
                              type: boolean
                            probe:
                              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
                                      x-kubernetes-list-type: atomic
                                  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:
                                      default: ""
                                      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
                                      x-kubernetes-list-type: atomic
                                    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
                          type: object
                        metrics:
                          description: Metrics defines attributes to setup metrics
                            collection
                          properties:
                            enabled:
                              type: boolean
                            serviceMonitor:
                              description: for use with the Prometheus Operator and
                                the primary service object
                              properties:
                                additionalLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                interval:
                                  description: |-
                                    Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function.
                                    Supported units: y, w, d, h, m, s, ms
                                    Examples: `30s`, `1m`, `1h20m15s`, `15d`
                                  pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
                                  type: string
                                scrapeTimeout:
                                  description: |-
                                    Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function.
                                    Supported units: y, w, d, h, m, s, ms
                                    Examples: `30s`, `1m`, `1h20m15s`, `15d`
                                  pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
                                  type: string
                              type: object
                          type: object
                        nodeSelector:
                          additionalProperties:
                            type: string
                          type: object
                        podAffinity:
                          description: Pod affinity is a group of inter pod affinity
                            scheduling rules.
                          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.
                                          If it's null, this PodAffinityTerm matches with no 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
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: |-
                                              matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions, whose key field is "key", the
                                              operator is "In", and the values array contains only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: |-
                                          MatchLabelKeys is a set of pod label keys to select which pods will
                                          be taken into consideration. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                          to select the group of existing pods which pods will be taken into consideration
                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                          pod labels will be ignored. The default value is empty.
                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                          Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: |-
                                          MismatchLabelKeys is a set of pod label keys to select which pods will
                                          be taken into consideration. The keys are used to lookup values from the
                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                          to select the group of existing pods which pods will be taken into consideration
                                          for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                          pod labels will be ignored. The default value is empty.
                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                          Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                          This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-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
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          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
                                        x-kubernetes-list-type: atomic
                                      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
                              x-kubernetes-list-type: atomic
                            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.
                                      If it's null, this PodAffinityTerm matches with no 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
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: |-
                                          matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions, whose key field is "key", the
                                          operator is "In", and the values array contains only "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: |-
                                      MatchLabelKeys is a set of pod label keys to select which pods will
                                      be taken into consideration. The keys are used to lookup values from the
                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
                                      to select the group of existing pods which pods will be taken into consideration
                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                      pod labels will be ignored. The default value is empty.
                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.
                                      Also, matchLabelKeys cannot be set when labelSelector isn't set.
                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: |-
                                      MismatchLabelKeys is a set of pod label keys to select which pods will
                                      be taken into consideration. The keys are used to lookup values from the
                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
                                      to select the group of existing pods which pods will be taken into consideration
                                      for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
                                      pod labels will be ignored. The default value is empty.
                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
                                      Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
                                      This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-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
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      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
                                    x-kubernetes-list-type: atomic
                                  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
                              x-kubernetes-list-type: atomic
                          type: object
                        readinessProbe:
                          description: Probe defines attributes for startup/liveness/readiness
                            probes
                          properties:
                            enabled:
                              type: boolean
                            probe:
                              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
                                      x-kubernetes-list-type: atomic
                                  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:
                                      default: ""
                                      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
                                      x-kubernetes-list-type: atomic
                                    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
                          type: object
                        replicas:
                          default: 1
                          minimum: 1
                          type: integer
                        resources:
                          description: ResourceRequirements describes the compute
                            resource requirements.
                          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
                                  request:
                                    description: |-
                                      Request is the name chosen for a request in the referenced claim.
                                      If empty, everything from the claim is made available, otherwise
                                      only the result of this request.
                                    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
                        runtimeClassName:
                          type: string
                        scale:
                          description: Autoscaling defines attributes to automatically
                            scale the service based on metrics
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            enabled:
                              type: boolean
                            hpa:
                              description: HorizontalPodAutoscalerSpec defines the
                                parameters required to setup HPA
                              properties:
                                behavior:
                                  description: |-
                                    HorizontalPodAutoscalerBehavior configures the scaling behavior of the target
                                    in both Up and Down directions (scaleUp and scaleDown fields respectively).
                                  properties:
                                    scaleDown:
                                      description: |-
                                        scaleDown is scaling policy for scaling Down.
                                        If not set, the default value is to allow to scale down to minReplicas pods, with a
                                        300 second stabilization window (i.e., the highest recommendation for
                                        the last 300sec is used).
                                      properties:
                                        policies:
                                          description: |-
                                            policies is a list of potential scaling polices which can be used during scaling.
                                            At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid
                                          items:
                                            description: HPAScalingPolicy is a single
                                              policy which must hold true for a specified
                                              past interval.
                                            properties:
                                              periodSeconds:
                                                description: |-
                                                  periodSeconds specifies the window of time for which the policy should hold true.
                                                  PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
                                                format: int32
                                                type: integer
                                              type:
                                                description: type is used to specify
                                                  the scaling policy.
                                                type: string
                                              value:
                                                description: |-
                                                  value contains the amount of change which is permitted by the policy.
                                                  It must be greater than zero
                                                format: int32
                                                type: integer
                                            required:
                                            - periodSeconds
                                            - type
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        selectPolicy:
                                          description: |-
                                            selectPolicy is used to specify which policy should be used.
                                            If not set, the default value Max is used.
                                          type: string
                                        stabilizationWindowSeconds:
                                          description: |-
                                            stabilizationWindowSeconds is the number of seconds for which past recommendations should be
                                            considered while scaling up or scaling down.
                                            StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).
                                            If not set, use the default values:
                                            - For scale up: 0 (i.e. no stabilization is done).
                                            - For scale down: 300 (i.e. the stabilization window is 300 seconds long).
                                          format: int32
                                          type: integer
                                      type: object
                                    scaleUp:
                                      description: |-
                                        scaleUp is scaling policy for scaling Up.
                                        If not set, the default value is the higher of:
                                          * increase no more than 4 pods per 60 seconds
                                          * double the number of pods per 60 seconds
                                        No stabilization is used.
                                      properties:
                                        policies:
                                          description: |-
                                            policies is a list of potential scaling polices which can be used during scaling.
                                            At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid
                                          items:
                                            description: HPAScalingPolicy is a single
                                              policy which must hold true for a specified
                                              past interval.
                                            properties:
                                              periodSeconds:
                                                description: |-
                                                  periodSeconds specifies the window of time for which the policy should hold true.
                                                  PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
                                                format: int32
                                                type: integer
                                              type:
                                                description: type is used to specify
                                                  the scaling policy.
                                                type: string
                                              value:
                                                description: |-
                                                  value contains the amount of change which is permitted by the policy.
                                                  It must be greater than zero
                                                format: int32
                                                type: integer
                                            required:
                                            - periodSeconds
                                            - type
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        selectPolicy:
                                          description: |-
                                            selectPolicy is used to specify which policy should be used.
                                            If not set, the default value Max is used.
                                          type: string
                                        stabilizationWindowSeconds:
                                          description: |-
                                            stabilizationWindowSeconds is the number of seconds for which past recommendations should be
                                            considered while scaling up or scaling down.
                                            StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).
                                            If not set, use the default values:
                                            - For scale up: 0 (i.e. no stabilization is done).
                                            - For scale down: 300 (i.e. the stabilization window is 300 seconds long).
                                          format: int32
                                          type: integer
                                      type: object
                                  type: object
                                maxReplicas:
                                  format: int32
                                  type: integer
                                metrics:
                                  items:
                                    description: |-
                                      MetricSpec specifies how to scale based on a single metric
                                      (only `type` and one other matching field should be set at once).
                                    properties:
                                      containerResource:
                                        description: |-
                                          containerResource refers to a resource metric (such as those specified in
                                          requests and limits) known to Kubernetes describing a single container in
                                          each pod of the current scale target (e.g. CPU or memory). Such metrics are
                                          built in to Kubernetes, and have special scaling options on top of those
                                          available to normal per-pod metrics using the "pods" source.
                                          This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.
                                        properties:
                                          container:
                                            description: container is the name of
                                              the container in the pods of the scaling
                                              target
                                            type: string
                                          name:
                                            description: name is the name of the resource
                                              in question.
                                            type: string
                                          target:
                                            description: target specifies the target
                                              value for the given metric
                                            properties:
                                              averageUtilization:
                                                description: |-
                                                  averageUtilization is the target value of the average of the
                                                  resource metric across all relevant pods, represented as a percentage of
                                                  the requested value of the resource for the pods.
                                                  Currently only valid for Resource metric source type
                                                format: int32
                                                type: integer
                                              averageValue:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: |-
                                                  averageValue is the target value of the average of the
                                                  metric across all relevant pods (as a quantity)
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type:
                                                description: type represents whether
                                                  the metric type is Utilization,
                                                  Value, or AverageValue
                                                type: string
                                              value:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: value is the target value
                                                  of the metric (as a quantity).
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - type
                                            type: object
                                        required:
                                        - container
                                        - name
                                        - target
                                        type: object
                                      external:
                                        description: |-
                                          external refers to a global metric that is not associated
                                          with any Kubernetes object. It allows autoscaling based on information
                                          coming from components running outside of cluster
                                          (for example length of queue in cloud messaging service, or
                                          QPS from loadbalancer running outside of cluster).
                                        properties:
                                          metric:
                                            description: metric identifies the target
                                              metric by name and selector
                                            properties:
                                              name:
                                                description: name is the name of the
                                                  given metric
                                                type: string
                                              selector:
                                                description: |-
                                                  selector is the string-encoded form of a standard kubernetes label selector for the given metric
                                                  When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.
                                                  When unset, just the metricName will be used to gather metrics.
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions
                                                      is a list of label selector
                                                      requirements. The requirements
                                                      are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description: key is the
                                                            label key that the selector
                                                            applies to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                      - key
                                                      - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - name
                                            type: object
                                          target:
                                            description: target specifies the target
                                              value for the given metric
                                            properties:
                                              averageUtilization:
                                                description: |-
                                                  averageUtilization is the target value of the average of the
                                                  resource metric across all relevant pods, represented as a percentage of
                                                  the requested value of the resource for the pods.
                                                  Currently only valid for Resource metric source type
                                                format: int32
                                                type: integer
                                              averageValue:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: |-
                                                  averageValue is the target value of the average of the
                                                  metric across all relevant pods (as a quantity)
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type:
                                                description: type represents whether
                                                  the metric type is Utilization,
                                                  Value, or AverageValue
                                                type: string
                                              value:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: value is the target value
                                                  of the metric (as a quantity).
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - type
                                            type: object
                                        required:
                                        - metric
                                        - target
                                        type: object
                                      object:
                                        description: |-
                                          object refers to a metric describing a single kubernetes object
                                          (for example, hits-per-second on an Ingress object).
                                        properties:
                                          describedObject:
                                            description: describedObject specifies
                                              the descriptions of a object,such as
                                              kind,name apiVersion
                                            properties:
                                              apiVersion:
                                                description: apiVersion is the API
                                                  version of the referent
                                                type: string
                                              kind:
                                                description: 'kind is the kind of
                                                  the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                                type: string
                                              name:
                                                description: 'name is the name of
                                                  the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                            required:
                                            - kind
                                            - name
                                            type: object
                                          metric:
                                            description: metric identifies the target
                                              metric by name and selector
                                            properties:
                                              name:
                                                description: name is the name of the
                                                  given metric
                                                type: string
                                              selector:
                                                description: |-
                                                  selector is the string-encoded form of a standard kubernetes label selector for the given metric
                                                  When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.
                                                  When unset, just the metricName will be used to gather metrics.
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions
                                                      is a list of label selector
                                                      requirements. The requirements
                                                      are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description: key is the
                                                            label key that the selector
                                                            applies to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                      - key
                                                      - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - name
                                            type: object
                                          target:
                                            description: target specifies the target
                                              value for the given metric
                                            properties:
                                              averageUtilization:
                                                description: |-
                                                  averageUtilization is the target value of the average of the
                                                  resource metric across all relevant pods, represented as a percentage of
                                                  the requested value of the resource for the pods.
                                                  Currently only valid for Resource metric source type
                                                format: int32
                                                type: integer
                                              averageValue:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: |-
                                                  averageValue is the target value of the average of the
                                                  metric across all relevant pods (as a quantity)
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type:
                                                description: type represents whether
                                                  the metric type is Utilization,
                                                  Value, or AverageValue
                                                type: string
                                              value:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: value is the target value
                                                  of the metric (as a quantity).
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - type
                                            type: object
                                        required:
                                        - describedObject
                                        - metric
                                        - target
                                        type: object
                                      pods:
                                        description: |-
                                          pods refers to a metric describing each pod in the current scale target
                                          (for example, transactions-processed-per-second).  The values will be
                                          averaged together before being compared to the target value.
                                        properties:
                                          metric:
                                            description: metric identifies the target
                                              metric by name and selector
                                            properties:
                                              name:
                                                description: name is the name of the
                                                  given metric
                                                type: string
                                              selector:
                                                description: |-
                                                  selector is the string-encoded form of a standard kubernetes label selector for the given metric
                                                  When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.
                                                  When unset, just the metricName will be used to gather metrics.
                                                properties:
                                                  matchExpressions:
                                                    description: matchExpressions
                                                      is a list of label selector
                                                      requirements. The requirements
                                                      are ANDed.
                                                    items:
                                                      description: |-
                                                        A label selector requirement is a selector that contains values, a key, and an operator that
                                                        relates the key and values.
                                                      properties:
                                                        key:
                                                          description: key is the
                                                            label key that the selector
                                                            applies to.
                                                          type: string
                                                        operator:
                                                          description: |-
                                                            operator represents a key's relationship to a set of values.
                                                            Valid operators are In, NotIn, Exists and DoesNotExist.
                                                          type: string
                                                        values:
                                                          description: |-
                                                            values is an array of string values. If the operator is In or NotIn,
                                                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                            the values array must be empty. This array is replaced during a strategic
                                                            merge patch.
                                                          items:
                                                            type: string
                                                          type: array
                                                          x-kubernetes-list-type: atomic
                                                      required:
                                                      - key
                                                      - operator
                                                      type: object
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    description: |-
                                                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                                                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                                                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                                                    type: object
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - name
                                            type: object
                                          target:
                                            description: target specifies the target
                                              value for the given metric
                                            properties:
                                              averageUtilization:
                                                description: |-
                                                  averageUtilization is the target value of the average of the
                                                  resource metric across all relevant pods, represented as a percentage of
                                                  the requested value of the resource for the pods.
                                                  Currently only valid for Resource metric source type
                                                format: int32
                                                type: integer
                                              averageValue:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: |-
                                                  averageValue is the target value of the average of the
                                                  metric across all relevant pods (as a quantity)
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type:
                                                description: type represents whether
                                                  the metric type is Utilization,
                                                  Value, or AverageValue
                                                type: string
                                              value:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: value is the target value
                                                  of the metric (as a quantity).
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - type
                                            type: object
                                        required:
                                        - metric
                                        - target
                                        type: object
                                      resource:
                                        description: |-
                                          resource refers to a resource metric (such as those specified in
                                          requests and limits) known to Kubernetes describing each pod in the
                                          current scale target (e.g. CPU or memory). Such metrics are built in to
                                          Kubernetes, and have special scaling options on top of those available
                                          to normal per-pod metrics using the "pods" source.
                                        properties:
                                          name:
                                            description: name is the name of the resource
                                              in question.
                                            type: string
                                          target:
                                            description: target specifies the target
                                              value for the given metric
                                            properties:
                                              averageUtilization:
                                                description: |-
                                                  averageUtilization is the target value of the average of the
                                                  resource metric across all relevant pods, represented as a percentage of
                                                  the requested value of the resource for the pods.
                                                  Currently only valid for Resource metric source type
                                                format: int32
                                                type: integer
                                              averageValue:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: |-
                                                  averageValue is the target value of the average of the
                                                  metric across all relevant pods (as a quantity)
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type:
                                                description: type represents whether
                                                  the metric type is Utilization,
                                                  Value, or AverageValue
                                                type: string
                                              value:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: value is the target value
                                                  of the metric (as a quantity).
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - type
                                            type: object
                                        required:
                                        - name
                                        - target
                                        type: object
                                      type:
                                        description: |-
                                          type is the type of metric source.  It should be one of "ContainerResource", "External",
                                          "Object", "Pods" or "Resource", each mapping to a matching field in the object.
                                          Note: "ContainerResource" type is available on when the feature-gate
                                          HPAContainerMetrics is enabled
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  type: array
                                minReplicas:
                                  format: int32
                                  type: integer
                              required:
                              - maxReplicas
                              type: object
                          type: object
                        startupProbe:
                          description: Probe defines attributes for startup/liveness/readiness
                            probes
                          properties:
                            enabled:
                              type: boolean
                            probe:
                              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
                                      x-kubernetes-list-type: atomic
                                  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:
                                      default: ""
                                      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
                                      x-kubernetes-list-type: atomic
                                    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
                          type: object
                        storage:
                          description: Storage is the target storage for caching NIM
                            model if NIMCache is not provided
                          properties:
                            hostPath:
                              description: HostPath is the host path volume for caching
                                NIM
                              type: string
                            nimCache:
                              description: NIMCacheVolSpec defines the spec to use
                                NIMCache volume
                              properties:
                                name:
                                  type: string
                                profile:
                                  type: string
                              type: object
                            pvc:
                              description: PersistentVolumeClaim is the pvc volume
                                used for caching NIM
                              properties:
                                create:
                                  description: Create indicates to create a new PVC
                                  type: boolean
                                name:
                                  description: Name is the name of the PVC
                                  type: string
                                size:
                                  description: Size of the NIM cache in Gi, used during
                                    PVC creation
                                  type: string
                                storageClass:
                                  description: StorageClass to be used for PVC creation.
                                    Leave it as empty if the PVC is already created.
                                  type: string
                                subPath:
                                  type: string
                                volumeAccessMode:
                                  description: VolumeAccessMode is the volume access
                                    mode of the PVC
                                  type: string
                              type: object
                            readOnly:
                              description: ReadOnly mode indicates if the volume should
                                be mounted as read-only
                              type: boolean
                          type: object
                        tolerations:
                          items:
                            description: |-
                              The pod this Toleration is attached to tolerates any taint that matches
                              the triple <key,value,effect> using the matching operator <operator>.
                            properties:
                              effect:
                                description: |-
                                  Effect indicates the taint effect to match. Empty means match all taint effects.
                                  When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
                                type: string
                              key:
                                description: |-
                                  Key is the taint key that the toleration applies to. Empty means match all taint keys.
                                  If the key is empty, operator must be Exists; this combination means to match all values and all keys.
                                type: string
                              operator:
                                description: |-
                                  Operator represents a key's relationship to the value.
                                  Valid operators are Exists and Equal. Defaults to Equal.
                                  Exists is equivalent to wildcard for value, so that a pod can
                                  tolerate all taints of a particular category.
                                type: string
                              tolerationSeconds:
                                description: |-
                                  TolerationSeconds represents the period of time the toleration (which must be
                                  of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
                                  it is not set, which means tolerate the taint forever (do not evict). Zero and
                                  negative values will be treated as 0 (evict immediately) by the system.
                                format: int64
                                type: integer
                              value:
                                description: |-
                                  Value is the taint value the toleration matches to.
                                  If the operator is Exists, the value should be empty, otherwise just a regular string.
                                type: string
                            type: object
                          type: array
                        userID:
                          format: int64
                          type: integer
                      required:
                      - authSecret
                      type: object
                  type: object
                type: array
            type: object
          status:
            description: NIMPipelineStatus defines the observed state of NIMPipeline
            properties:
              conditions:
                description: |-
                  INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
                  Important: Run "make" to regenerate code after modifying this file
                items:
                  description: Condition contains details for one aspect of the current
                    state of this API Resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        lastTransitionTime is the last time the condition transitioned from one status to another.
                        This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        message is a human readable message indicating details about the transition.
                        This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: |-
                        observedGeneration represents the .metadata.generation that the condition was set based upon.
                        For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                        with respect to the current state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: |-
                        reason contains a programmatic identifier indicating the reason for the condition's last transition.
                        Producers of specific condition types may define expected values and meanings for this field,
                        and whether the values are considered a guaranteed API.
                        The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              state:
                description: State indicates the overall state of the pipeline
                type: string
              states:
                additionalProperties:
                  type: string
                description: States indicate state of individual services in the pipeline
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
