---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nemocustomizers.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nemocustomizers.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NemoCustomizer
    listKind: NemoCustomizerList
    plural: nemocustomizers
    singular: nemocustomizer
  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: NemoCustomizer is the Schema for the NemoCustomizer 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: NemoCustomizerSpec defines the desired state of NemoCustomizer.
            properties:
              affinity:
                description: Affinity is a group of affinity scheduling rules.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node matches the corresponding matchExpressions; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: |-
                            An empty preferred scheduling term matches all objects with implicit weight 0
                            (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        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 an update), the system
                          may or may not try to eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: |-
                                A null or empty node selector term matches no objects. The requirements of
                                them are ANDed.
                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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.
                              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.
                              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
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the anti-affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and subtracting
                          "weight" from 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.
                                  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.
                                  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 anti-affinity requirements specified by this field are not met at
                          scheduling time, the pod will not be scheduled onto the node.
                          If the anti-affinity requirements specified by this field cease to be met
                          at some point during pod execution (e.g. due to a pod label update), the
                          system may or may not try to eventually evict the pod from its node.
                          When there are multiple elements, the lists of nodes corresponding to each
                          podAffinityTerm are intersected, i.e. all terms must be satisfied.
                        items:
                          description: |-
                            Defines a set of pods (namely those matching the labelSelector
                            relative to the given namespace(s)) that this pod should be
                            co-located (affinity) or not co-located (anti-affinity) with,
                            where co-located is defined as running on a node whose value of
                            the label with key <topologyKey> matches that of any node on which
                            a pod of the set of pods is running
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                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.
                              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.
                              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
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              args:
                items:
                  type: string
                type: array
              command:
                items:
                  type: string
                type: array
              databaseConfig:
                description: DatabaseConfig stores the database configuration
                properties:
                  credentials:
                    description: |-
                      DatabaseCredentials stores the configuration to retrieve the database credentials.
                      Required, must not be nil.
                    properties:
                      passwordKey:
                        default: password
                        description: |-
                          PasswordKey is the name of the key in the `CredentialsSecret` secret for the database credentials.
                          Defaults to "password".
                        type: string
                      secretName:
                        description: |-
                          SecretName is the name of the secret which has the database credentials for a NEMO service user.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                      user:
                        description: |-
                          User is the non-root username for a NEMO Service in the database.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                    required:
                    - secretName
                    - user
                    type: object
                  databaseName:
                    description: |-
                      DatabaseName is the database name for a NEMO Service.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  host:
                    description: |-
                      Host is the hostname of the database.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  port:
                    default: 5432
                    description: |-
                      Port is the port where the database is reachable at.
                      If specified, this must be a valid port number, 0 < databasePort < 65536.
                      Defaults to 5432.
                    format: int32
                    maximum: 65535
                    minimum: 1
                    type: integer
                required:
                - credentials
                - databaseName
                - host
                type: object
              datastore:
                description: Datastore stores the datastore endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
              entitystore:
                description: Entitystore stores the entitystore endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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: DEPRECATED ExposeV1 defines attributes to expose the
                  service.
                properties:
                  ingress:
                    description: |-
                      Deprecated: Use .spec.expose.router.ingress instead.
                      IngressV1 defines attributes for ingress
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      enabled:
                        type: boolean
                      spec:
                        properties:
                          host:
                            type: string
                          ingressClassName:
                            pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
                            type: string
                          paths:
                            items:
                              description: IngressPath defines attributes for ingress
                                paths.
                              properties:
                                path:
                                  default: /
                                  type: string
                                pathType:
                                  default: Prefix
                                  description: PathType represents the type of path
                                    referred to by a HTTPIngressPath.
                                  type: string
                              type: object
                            type: array
                        required:
                        - ingressClassName
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: spec cannot be nil when ingress is enabled
                      rule: (has(self.spec) && has(self.enabled) && self.enabled)
                        || !has(self.enabled) || !self.enabled
                  router:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the router, e.g. for ingress
                          class or gateway
                        type: object
                      eppConfig:
                        description: EPPConfig is the configuration for the endpoint
                          picker extension. This is field is currently only supported
                          for standalone inference platform only on NIMService.
                        properties:
                          config:
                            description: |-
                              Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                              The operator will marshal this to YAML and create a ConfigMap automatically.
                              Mutually exclusive with ConfigMapRef.
                              One of ConfigMapRef or Config must be specified (no default configuration).
                              Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                            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
                              data:
                                description: Data configures the DataLayer. It is
                                  required if the new DataLayer is enabled.
                                properties:
                                  sources:
                                    description: Sources is the list of sources to
                                      define to the DataLayer
                                    items:
                                      description: DataLayerSource contains the configuration
                                        of a DataSource of the DataLayer feature
                                      properties:
                                        extractors:
                                          description: |-
                                            Extractors specifies the list of Plugin instances to be associated with
                                            this Source. The entries are references to the names of entries of the Plugins
                                            defined in the configuration's Plugins section
                                          items:
                                            description: DataLayerExtractor contains
                                              the configuration of an Extractor of
                                              the DataLayer feature
                                            properties:
                                              pluginRef:
                                                description: |-
                                                  PluginRef specifies a partiular Plugin instance to be associated with
                                                  this Extractor. The reference is to the name of an entry of the Plugins
                                                  defined in the configuration's Plugins section
                                                type: string
                                            required:
                                            - pluginRef
                                            type: object
                                          type: array
                                        pluginRef:
                                          description: |-
                                            PluginRef specifies a partiular Plugin instance to be associated with
                                            this Source. The reference is to the name of an entry of the Plugins
                                            defined in the configuration's Plugins section
                                          type: string
                                      required:
                                      - extractors
                                      - pluginRef
                                      type: object
                                    type: array
                                required:
                                - sources
                                type: object
                              featureGates:
                                description: |-
                                  FeatureGates is a set of flags that enable various experimental features with the EPP.
                                  If omitted non of these experimental features will be enabled.
                                items:
                                  type: string
                                type: array
                              kind:
                                description: |-
                                  Kind is a string value representing the REST resource this object represents.
                                  Servers may infer this from the endpoint the client submits requests to.
                                  Cannot be updated.
                                  In CamelCase.
                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                type: string
                              plugins:
                                description: Plugins is the list of plugins that will
                                  be instantiated.
                                items:
                                  description: |-
                                    PluginSpec contains the information that describes a plugin that
                                    will be instantiated.
                                  properties:
                                    name:
                                      description: |-
                                        Name provides a name for plugin entries to reference. If
                                        omitted, the value of the Plugin's Type field will be used.
                                      type: string
                                    parameters:
                                      description: |-
                                        Parameters are the set of parameters to be passed to the plugin's
                                        factory function. The factory function is responsible
                                        to parse the parameters.
                                      format: byte
                                      type: string
                                    type:
                                      description: Type specifies the plugin type
                                        to be instantiated.
                                      type: string
                                  required:
                                  - type
                                  type: object
                                type: array
                              saturationDetector:
                                description: |-
                                  SaturationDetector when present specifies the configuration of the
                                  Saturation detector. If not present, default values are used.
                                properties:
                                  kvCacheUtilThreshold:
                                    description: |-
                                      KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                      which a pod is considered to have insufficient capacity.
                                    type: number
                                  metricsStalenessThreshold:
                                    description: |-
                                      MetricsStalenessThreshold defines how old a pod's metrics can be.
                                      If a pod's metrics are older than this, it might be excluded from
                                      "good capacity" considerations or treated as having no capacity for
                                      safety.
                                    type: string
                                  queueDepthThreshold:
                                    description: |-
                                      QueueDepthThreshold defines the backend waiting queue size above which a
                                      pod is considered to have insufficient capacity for new requests.
                                    type: integer
                                type: object
                              schedulingProfiles:
                                description: |-
                                  SchedulingProfiles is the list of named SchedulingProfiles
                                  that will be created.
                                items:
                                  description: |-
                                    SchedulingProfile contains the information to create a SchedulingProfile
                                    entry to be used by the scheduler.
                                  properties:
                                    name:
                                      description: Name specifies the name of this
                                        SchedulingProfile
                                      type: string
                                    plugins:
                                      description: |-
                                        Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                        to the appropriate "slots" based on their type.
                                      items:
                                        description: |-
                                          SchedulingPlugin describes a plugin that will be associated with a
                                          SchedulingProfile entry.
                                        properties:
                                          pluginRef:
                                            description: |-
                                              PluginRef specifies a partiular Plugin instance to be associated with
                                              this SchedulingProfile. The reference is to the name of an
                                              entry of the Plugins defined in the configuration's Plugins
                                              section
                                            type: string
                                          weight:
                                            description: Weight is the weight fo be
                                              used if this plugin is a Scorer.
                                            type: integer
                                        required:
                                        - pluginRef
                                        type: object
                                      type: array
                                  required:
                                  - name
                                  - plugins
                                  type: object
                                type: array
                            required:
                            - plugins
                            - schedulingProfiles
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          configMapRef:
                            description: |-
                              ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                              The ConfigMap should contain EndpointPickerConfig YAML.
                              Mutually exclusive with Config.
                            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
                          containerSpec:
                            description: ContainerSpec is the specification for the
                              EPP container.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          livenessProbe:
                            description: LivenessProbe is the liveness probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          ports:
                            description: Ports is the list of ports to expose for
                              the EPP container.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: |-
                                    Number of port to expose on the pod's IP address.
                                    This must be a valid port number, 0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: |-
                                    Number of port to expose on the host.
                                    If specified, this must be a valid port number, 0 < x < 65536.
                                    If HostNetwork is specified, this must match ContainerPort.
                                    Most containers do not need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: |-
                                    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                    named port in a pod must have a unique name. Name for the port that can be
                                    referred to by services.
                                  type: string
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol for port. Must be UDP, TCP, or SCTP.
                                    Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                          readinessProbe:
                            description: ReadinessProbe is the readiness probe for
                              the EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          startupProbe:
                            description: StartupProbe is the startup probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to a
                                  TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: |-
                                      Number or name of the port to access on the container.
                                      Number must be in the range 1 to 65535.
                                      Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: |-
                                  Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                  The grace period is the duration in seconds after the processes running in the pod are sent
                                  a termination signal and the time when the processes are forcibly halted with a kill signal.
                                  Set this value longer than the expected cleanup time for your process.
                                  If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                  value overrides the value provided by the pod spec.
                                  Value must be non-negative integer. The value zero indicates stop immediately via
                                  the kill signal (no opportunity to shut down).
                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: |-
                                  Number of seconds after which the probe times out.
                                  Defaults to 1 second. Minimum value is 1.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                format: int32
                                type: integer
                            type: object
                        required:
                        - containerSpec
                        type: object
                        x-kubernetes-validations:
                        - message: specify either configMapRef or config, not both
                          rule: '!(has(self.configMapRef) && has(self.config))'
                      gateway:
                        description: Gateway is the gateway to use for the created
                          HTTPRoute.
                        properties:
                          backendRef:
                            description: BackendRef is a reference to a backend to
                              forward matched requests to.
                            properties:
                              group:
                                default: ""
                                description: |-
                                  Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                  When unspecified or empty string, core API group is inferred.
                                maxLength: 253
                                pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                type: string
                              kind:
                                default: Service
                                description: |-
                                  Kind is the Kubernetes resource kind of the referent. For example
                                  "Service".

                                  Defaults to "Service" when not specified.

                                  ExternalName services can refer to CNAME DNS records that may live
                                  outside of the cluster and as such are difficult to reason about in
                                  terms of conformance. They also may not be safe to forward to (see
                                  CVE-2021-25740 for more information). Implementations SHOULD NOT
                                  support ExternalName Services.

                                  Support: Core (Services with a type other than ExternalName)

                                  Support: Implementation-specific (Services with type ExternalName)
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                type: string
                              name:
                                description: Name is the name of the referent.
                                maxLength: 253
                                minLength: 1
                                type: string
                              namespace:
                                description: |-
                                  Namespace is the namespace of the backend. When unspecified, the local
                                  namespace is inferred.

                                  Note that when a namespace different than the local namespace is specified,
                                  a ReferenceGrant object is required in the referent namespace to allow that
                                  namespace's owner to accept the reference. See the ReferenceGrant
                                  documentation for details.

                                  Support: Core
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                type: string
                              port:
                                description: |-
                                  Port specifies the destination port number to use for this resource.
                                  Port is required when the referent is a Kubernetes Service. In this
                                  case, the port number is the service port number, not the target port.
                                  For other resources, destination port might be derived from the referent
                                  resource or this field.
                                format: int32
                                maximum: 65535
                                minimum: 1
                                type: integer
                              weight:
                                default: 1
                                description: |-
                                  Weight specifies the proportion of requests forwarded to the referenced
                                  backend. This is computed as weight/(sum of all weights in this
                                  BackendRefs list). For non-zero values, there may be some epsilon from
                                  the exact proportion defined here depending on the precision an
                                  implementation supports. Weight is not a percentage and the sum of
                                  weights does not need to equal 100.

                                  If only one backend is specified and it has a weight greater than 0, 100%
                                  of the traffic is forwarded to that backend. If weight is set to 0, no
                                  traffic should be forwarded for this entry. If unspecified, weight
                                  defaults to 1.

                                  Support for this field varies based on the context where used.
                                format: int32
                                maximum: 1000000
                                minimum: 0
                                type: integer
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: Must have port for Service reference
                              rule: '(size(self.group) == 0 && self.kind == ''Service'')
                                ? has(self.port) : true'
                          grpcRoutesEnabled:
                            default: false
                            description: GRPCRoutesEnabled is a flag to enable GRPCRoutes
                              for the created gateway.
                            type: boolean
                          httpRoutesEnabled:
                            default: true
                            description: HTTPRoutesEnabled is a flag to enable HTTPRoutes
                              for the created gateway.
                            type: boolean
                          name:
                            description: Name of the gateway
                            minLength: 1
                            type: string
                          namespace:
                            description: Namespace of the gateway
                            minLength: 1
                            type: string
                        required:
                        - name
                        - namespace
                        type: object
                      hostDomainName:
                        description: |-
                          HostDomainName is the domain name of the hostname matched by the router.
                          The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                          eg. example.com for "<nimServiceName>.<namespace>.example.com"
                        maxLength: 63
                        minLength: 1
                        pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                        type: string
                      ingress:
                        description: Ingress is the ingress controller to use for
                          the created ingress.
                        properties:
                          ingressClass:
                            description: IngressClass is the ingress class to use
                              for the created ingress.
                            minLength: 1
                            type: string
                          tlsSecretName:
                            description: TLSSecretName is the name of the secret containing
                              the TLS certificate and key.
                            type: string
                        required:
                        - ingressClass
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: 'unsupported field: spec.expose.router.gateway.grpcRoutesEnabled'
                      rule: '!(has(self.gateway) && self.gateway.grpcRoutesEnabled)'
                    - message: ingress and gateway cannot be specified together
                      rule: '!(has(self.gateway) && has(self.ingress))'
                  service:
                    description: Service defines attributes to create a service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      grpcPort:
                        description: |-
                          GRPCPort is the GRPC serving port
                          Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      metricsPort:
                        description: |-
                          MetricsPort is the port for metrics
                          Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      name:
                        description: Override the default service name
                        type: string
                      port:
                        default: 8000
                        description: 'Port is the main api serving port (default:
                          8000)'
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      type:
                        description: Service Type string describes ingress methods
                          for a service
                        type: string
                    type: object
                type: object
                x-kubernetes-validations:
                - message: 'unsupported field: spec.expose.service.grpcPort'
                  rule: '!(has(self.service.grpcPort))'
                - message: 'unsupported field: spec.expose.service.metricsPort'
                  rule: '!(has(self.service.metricsPort))'
              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
                required:
                - repository
                - tag
                type: object
              labels:
                additionalProperties:
                  type: string
                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
              mlflow:
                description: MLFlow stores the mlflow tracking endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
              modelConfig:
                description: Models stores the model configuration
                properties:
                  name:
                    minLength: 1
                    type: string
                required:
                - name
                type: object
              modelDownloadJobs:
                description: Model download job configuration
                properties:
                  hfSecret:
                    description: HFSecret is the secret containing the HF_TOKEN key
                    properties:
                      key:
                        default: HF_TOKEN
                        description: Key in the key containing the actual token value
                        type: string
                      name:
                        description: Name of the Kubernetes secret containing HF_TOKEN
                          key
                        minLength: 1
                        type: string
                    required:
                    - key
                    - name
                    type: object
                  image:
                    description: Docker image used for model download jobs
                    minLength: 1
                    type: string
                  imagePullPolicy:
                    default: IfNotPresent
                    description: Pull policy for the image
                    enum:
                    - Always
                    - IfNotPresent
                    - Never
                    type: string
                  ngcAPISecret:
                    description: NGCSecret is the secret containing the NGC API key
                    properties:
                      key:
                        default: NGC_API_KEY
                        description: Key in the key containing the actual API key
                          value
                        type: string
                      name:
                        description: Name of the Kubernetes secret containing NGC
                          API key
                        minLength: 1
                        type: string
                    required:
                    - key
                    - name
                    type: object
                  pollIntervalSeconds:
                    description: Polling interval for model download status
                    minimum: 15
                    type: integer
                  securityContext:
                    description: Optional security context for the job pods
                    properties:
                      appArmorProfile:
                        description: |-
                          appArmorProfile is the AppArmor options to use by the containers in this pod.
                          Note that this field cannot be set when spec.os.name is windows.
                        properties:
                          localhostProfile:
                            description: |-
                              localhostProfile indicates a profile loaded on the node that should be used.
                              The profile must be preconfigured on the node to work.
                              Must match the loaded name of the profile.
                              Must be set if and only if type is "Localhost".
                            type: string
                          type:
                            description: |-
                              type indicates which kind of AppArmor profile will be applied.
                              Valid options are:
                                Localhost - a profile pre-loaded on the node.
                                RuntimeDefault - the container runtime's default profile.
                                Unconfined - no AppArmor enforcement.
                            type: string
                        required:
                        - type
                        type: object
                      fsGroup:
                        description: |-
                          A special supplemental group that applies to all containers in a pod.
                          Some volume types allow the Kubelet to change the ownership of that volume
                          to be owned by the pod:

                          1. The owning GID will be the FSGroup
                          2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
                          3. The permission bits are OR'd with rw-rw----

                          If unset, the Kubelet will not modify the ownership and permissions of any volume.
                          Note that this field cannot be set when spec.os.name is windows.
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        description: |-
                          fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
                          before being exposed inside Pod. This field will only apply to
                          volume types which support fsGroup based ownership(and permissions).
                          It will have no effect on ephemeral volume types such as: secret, configmaps
                          and emptydir.
                          Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
                          Note that this field cannot be set when spec.os.name is windows.
                        type: string
                      runAsGroup:
                        description: |-
                          The GID to run the entrypoint of the container process.
                          Uses runtime default if unset.
                          May also be set in SecurityContext.  If set in both SecurityContext and
                          PodSecurityContext, the value specified in SecurityContext takes precedence
                          for that container.
                          Note that this field cannot be set when spec.os.name is windows.
                        format: int64
                        type: integer
                      runAsNonRoot:
                        description: |-
                          Indicates that the container must run as a non-root user.
                          If true, the Kubelet will validate the image at runtime to ensure that it
                          does not run as UID 0 (root) and fail to start the container if it does.
                          If unset or false, no such validation will be performed.
                          May also be set in SecurityContext.  If set in both SecurityContext and
                          PodSecurityContext, the value specified in SecurityContext takes precedence.
                        type: boolean
                      runAsUser:
                        description: |-
                          The UID to run the entrypoint of the container process.
                          Defaults to user specified in image metadata if unspecified.
                          May also be set in SecurityContext.  If set in both SecurityContext and
                          PodSecurityContext, the value specified in SecurityContext takes precedence
                          for that container.
                          Note that this field cannot be set when spec.os.name is windows.
                        format: int64
                        type: integer
                      seLinuxChangePolicy:
                        description: |-
                          seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
                          It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
                          Valid values are "MountOption" and "Recursive".

                          "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
                          This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.

                          "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
                          This requires all Pods that share the same volume to use the same SELinux label.
                          It is not possible to share the same volume among privileged and unprivileged Pods.
                          Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
                          whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
                          CSIDriver instance. Other volumes are always re-labelled recursively.
                          "MountOption" value is allowed only when SELinuxMount feature gate is enabled.

                          If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
                          If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
                          and "Recursive" for all other volumes.

                          This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.

                          All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
                          Note that this field cannot be set when spec.os.name is windows.
                        type: string
                      seLinuxOptions:
                        description: |-
                          The SELinux context to be applied to all containers.
                          If unspecified, the container runtime will allocate a random SELinux context for each
                          container.  May also be set in SecurityContext.  If set in
                          both SecurityContext and PodSecurityContext, the value specified in SecurityContext
                          takes precedence for that container.
                          Note that this field cannot be set when spec.os.name is windows.
                        properties:
                          level:
                            description: Level is SELinux level label that applies
                              to the container.
                            type: string
                          role:
                            description: Role is a SELinux role label that applies
                              to the container.
                            type: string
                          type:
                            description: Type is a SELinux type label that applies
                              to the container.
                            type: string
                          user:
                            description: User is a SELinux user label that applies
                              to the container.
                            type: string
                        type: object
                      seccompProfile:
                        description: |-
                          The seccomp options to use by the containers in this pod.
                          Note that this field cannot be set when spec.os.name is windows.
                        properties:
                          localhostProfile:
                            description: |-
                              localhostProfile indicates a profile defined in a file on the node should be used.
                              The profile must be preconfigured on the node to work.
                              Must be a descending path, relative to the kubelet's configured seccomp profile location.
                              Must be set if type is "Localhost". Must NOT be set for any other type.
                            type: string
                          type:
                            description: |-
                              type indicates which kind of seccomp profile will be applied.
                              Valid options are:

                              Localhost - a profile defined in a file on the node should be used.
                              RuntimeDefault - the container runtime default profile should be used.
                              Unconfined - no profile should be applied.
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        description: |-
                          A list of groups applied to the first process run in each container, in
                          addition to the container's primary GID and fsGroup (if specified).  If
                          the SupplementalGroupsPolicy feature is enabled, the
                          supplementalGroupsPolicy field determines whether these are in addition
                          to or instead of any group memberships defined in the container image.
                          If unspecified, no additional groups are added, though group memberships
                          defined in the container image may still be used, depending on the
                          supplementalGroupsPolicy field.
                          Note that this field cannot be set when spec.os.name is windows.
                        items:
                          format: int64
                          type: integer
                        type: array
                        x-kubernetes-list-type: atomic
                      supplementalGroupsPolicy:
                        description: |-
                          Defines how supplemental groups of the first container processes are calculated.
                          Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
                          (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
                          and the container runtime must implement support for this feature.
                          Note that this field cannot be set when spec.os.name is windows.
                        type: string
                      sysctls:
                        description: |-
                          Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
                          sysctls (by the container runtime) might fail to launch.
                          Note that this field cannot be set when spec.os.name is windows.
                        items:
                          description: Sysctl defines a kernel parameter to be set
                          properties:
                            name:
                              description: Name of a property to set
                              type: string
                            value:
                              description: Value of a property to set
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      windowsOptions:
                        description: |-
                          The Windows specific settings applied to all containers.
                          If unspecified, the options within a container's SecurityContext will be used.
                          If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                          Note that this field cannot be set when spec.os.name is linux.
                        properties:
                          gmsaCredentialSpec:
                            description: |-
                              GMSACredentialSpec is where the GMSA admission webhook
                              (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
                              GMSA credential spec named by the GMSACredentialSpecName field.
                            type: string
                          gmsaCredentialSpecName:
                            description: GMSACredentialSpecName is the name of the
                              GMSA credential spec to use.
                            type: string
                          hostProcess:
                            description: |-
                              HostProcess determines if a container should be run as a 'Host Process' container.
                              All of a Pod's containers must have the same effective HostProcess value
                              (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
                              In addition, if HostProcess is true then HostNetwork must also be set to true.
                            type: boolean
                          runAsUserName:
                            description: |-
                              The UserName in Windows to run the entrypoint of the container process.
                              Defaults to the user specified in image metadata if unspecified.
                              May also be set in PodSecurityContext. If set in both SecurityContext and
                              PodSecurityContext, the value specified in SecurityContext takes precedence.
                            type: string
                        type: object
                    type: object
                  ttlSecondsAfterFinished:
                    description: Time to live after job finishes (seconds)
                    minimum: 60
                    type: integer
                required:
                - image
                - pollIntervalSeconds
                - ttlSecondsAfterFinished
                type: object
              nemoDatastoreTools:
                description: Configuration for data store tools image
                properties:
                  image:
                    description: Image to use for data store CLI tools
                    minLength: 1
                    type: string
                required:
                - image
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                type: object
              otel:
                description: OpenTelemetry Settings
                properties:
                  disableLogging:
                    description: DisableLogging indicates whether Python logging auto-instrumentation
                      should be disabled.
                    type: boolean
                  enabled:
                    description: Enabled indicates if opentelemetry collector and
                      tracing are enabled
                    type: boolean
                  excludedUrls:
                    default:
                    - health
                    description: ExcludedUrls defines URLs to be excluded from tracing.
                    items:
                      type: string
                    type: array
                  exporterConfig:
                    description: ExporterConfig defines configuration for different
                      OTel exporters
                    properties:
                      logsExporter:
                        default: otlp
                        description: 'LogsExporter sets the logs exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                      metricsExporter:
                        default: otlp
                        description: 'MetricsExporter sets the metrics exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                      tracesExporter:
                        default: otlp
                        description: 'TracesExporter sets the traces exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                    type: object
                  exporterOtlpEndpoint:
                    description: ExporterOtlpEndpoint is the OTLP collector endpoint.
                    type: string
                  logLevel:
                    default: INFO
                    description: LogLevel defines the log level (e.g., INFO, DEBUG).
                    enum:
                    - INFO
                    - DEBUG
                    type: string
                type: object
              podAffinity:
                description: 'Deprecated: Use Affinity instead.'
                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.
                              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.
                              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.
                          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.
                          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
              replicas:
                format: int32
                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 field depends on 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
              runtimeClass:
                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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      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.
                              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.
                              type: string
                          required:
                          - type
                          type: object
                        type: array
                      minReplicas:
                        default: 1
                        format: int32
                        minimum: 1
                        type: integer
                    required:
                    - maxReplicas
                    type: object
                type: object
              scheduler:
                description: Scheduler Configuration
                properties:
                  type:
                    default: volcano
                    description: Type is the scheduler type (volcano, runai)
                    enum:
                    - volcano
                    - runai
                    type: string
                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
              trainingConfig:
                description: Training stores the training configuration
                properties:
                  affinity:
                    description: Affinity for the training jobs
                    properties:
                      nodeAffinity:
                        description: Describes node affinity scheduling rules for
                          the pod.
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: |-
                              The scheduler will prefer to schedule pods to nodes that satisfy
                              the affinity expressions specified by this field, but it may choose
                              a node that violates one or more of the expressions. The node that is
                              most preferred is the one with the greatest sum of weights, i.e.
                              for each node that meets all of the scheduling requirements (resource
                              request, requiredDuringScheduling affinity expressions, etc.),
                              compute a sum by iterating through the elements of this field and adding
                              "weight" to the sum if the node matches the corresponding matchExpressions; the
                              node(s) with the highest sum are the most preferred.
                            items:
                              description: |-
                                An empty preferred scheduling term matches all objects with implicit weight 0
                                (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                              properties:
                                preference:
                                  description: A node selector term, associated with
                                    the corresponding weight.
                                  properties:
                                    matchExpressions:
                                      description: A list of node selector requirements
                                        by node's labels.
                                      items:
                                        description: |-
                                          A node selector requirement is a selector that contains values, a key, and an operator
                                          that relates the key and values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: |-
                                              Represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                            type: string
                                          values:
                                            description: |-
                                              An array of string values. If the operator is In or NotIn,
                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                              the values array must be empty. If the operator is Gt or Lt, the values
                                              array must have a single element, which will be interpreted as an integer.
                                              This array is replaced during a strategic merge patch.
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      description: A list of node selector requirements
                                        by node's fields.
                                      items:
                                        description: |-
                                          A node selector requirement is a selector that contains values, a key, and an operator
                                          that relates the key and values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: |-
                                              Represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                            type: string
                                          values:
                                            description: |-
                                              An array of string values. If the operator is In or NotIn,
                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                              the values array must be empty. If the operator is Gt or Lt, the values
                                              array must have a single element, which will be interpreted as an integer.
                                              This array is replaced during a strategic merge patch.
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                weight:
                                  description: Weight associated with matching the
                                    corresponding nodeSelectorTerm, in the range 1-100.
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                            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 an update), the system
                              may or may not try to eventually evict the pod from its node.
                            properties:
                              nodeSelectorTerms:
                                description: Required. A list of node selector terms.
                                  The terms are ORed.
                                items:
                                  description: |-
                                    A null or empty node selector term matches no objects. The requirements of
                                    them are ANDed.
                                    The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                                  properties:
                                    matchExpressions:
                                      description: A list of node selector requirements
                                        by node's labels.
                                      items:
                                        description: |-
                                          A node selector requirement is a selector that contains values, a key, and an operator
                                          that relates the key and values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: |-
                                              Represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                            type: string
                                          values:
                                            description: |-
                                              An array of string values. If the operator is In or NotIn,
                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                              the values array must be empty. If the operator is Gt or Lt, the values
                                              array must have a single element, which will be interpreted as an integer.
                                              This array is replaced during a strategic merge patch.
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      description: A list of node selector requirements
                                        by node's fields.
                                      items:
                                        description: |-
                                          A node selector requirement is a selector that contains values, a key, and an operator
                                          that relates the key and values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: |-
                                              Represents a key's relationship to a set of values.
                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                            type: string
                                          values:
                                            description: |-
                                              An array of string values. If the operator is In or NotIn,
                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                              the values array must be empty. If the operator is Gt or Lt, the values
                                              array must have a single element, which will be interpreted as an integer.
                                              This array is replaced during a strategic merge patch.
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                type: array
                                x-kubernetes-list-type: atomic
                            required:
                            - nodeSelectorTerms
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      podAffinity:
                        description: Describes pod affinity scheduling rules (e.g.
                          co-locate this pod in the same node, zone, etc. as some
                          other pod(s)).
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: |-
                              The scheduler will prefer to schedule pods to nodes that satisfy
                              the affinity expressions specified by this field, but it may choose
                              a node that violates one or more of the expressions. The node that is
                              most preferred is the one with the greatest sum of weights, i.e.
                              for each node that meets all of the scheduling requirements (resource
                              request, requiredDuringScheduling affinity expressions, etc.),
                              compute a sum by iterating through the elements of this field and adding
                              "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                              node(s) with the highest sum are the most preferred.
                            items:
                              description: The weights of all of the matched WeightedPodAffinityTerm
                                fields are added per-node to find the most preferred
                                node(s)
                              properties:
                                podAffinityTerm:
                                  description: Required. A pod affinity term, associated
                                    with the corresponding weight.
                                  properties:
                                    labelSelector:
                                      description: |-
                                        A label query over a set of resources, in this case pods.
                                        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.
                                      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.
                                      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.
                                  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.
                                  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
                      podAntiAffinity:
                        description: Describes pod anti-affinity scheduling rules
                          (e.g. avoid putting this pod in the same node, zone, etc.
                          as some other pod(s)).
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: |-
                              The scheduler will prefer to schedule pods to nodes that satisfy
                              the anti-affinity expressions specified by this field, but it may choose
                              a node that violates one or more of the expressions. The node that is
                              most preferred is the one with the greatest sum of weights, i.e.
                              for each node that meets all of the scheduling requirements (resource
                              request, requiredDuringScheduling anti-affinity expressions, etc.),
                              compute a sum by iterating through the elements of this field and subtracting
                              "weight" from 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.
                                      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.
                                      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 anti-affinity requirements specified by this field are not met at
                              scheduling time, the pod will not be scheduled onto the node.
                              If the anti-affinity requirements specified by this field cease to be met
                              at some point during pod execution (e.g. due to a pod label update), the
                              system may or may not try to eventually evict the pod from its node.
                              When there are multiple elements, the lists of nodes corresponding to each
                              podAffinityTerm are intersected, i.e. all terms must be satisfied.
                            items:
                              description: |-
                                Defines a set of pods (namely those matching the labelSelector
                                relative to the given namespace(s)) that this pod should be
                                co-located (affinity) or not co-located (anti-affinity) with,
                                where co-located is defined as running on a node whose value of
                                the label with key <topologyKey> matches that of any node on which
                                a pod of the set of pods is running
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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
                    type: object
                  configMap:
                    description: ConfigMap is the training configuration in the config
                      map
                    properties:
                      name:
                        minLength: 1
                        type: string
                    required:
                    - name
                    type: object
                  env:
                    description: Env are the environment variables passed to the training
                      jobs
                    items:
                      description: EnvVar represents an environment variable present
                        in a Container.
                      properties:
                        name:
                          description: |-
                            Name of the environment variable.
                            May consist of any printable ASCII characters except '='.
                          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
                            fileKeyRef:
                              description: |-
                                FileKeyRef selects a key of the env file.
                                Requires the EnvFiles feature gate to be enabled.
                              properties:
                                key:
                                  description: |-
                                    The key within the env file. An invalid key will prevent the pod from starting.
                                    The keys defined within a source may consist of any printable ASCII characters except '='.
                                    During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                  type: string
                                optional:
                                  default: false
                                  description: |-
                                    Specify whether the file or its key must be defined. If the file or key
                                    does not exist, then the env var is not published.
                                    If optional is set to true and the specified key does not exist,
                                    the environment variable will not be set in the Pod's containers.

                                    If optional is set to false and the specified key does not exist,
                                    an error will be returned during Pod creation.
                                  type: boolean
                                path:
                                  description: |-
                                    The path within the volume from which to select the file.
                                    Must be relative and may not contain the '..' path or start with '..'.
                                  type: string
                                volumeName:
                                  description: The name of the volume mount containing
                                    the env file.
                                  type: string
                              required:
                              - key
                              - path
                              - volumeName
                              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
                  image:
                    description: Image is the NeMo customizer image used for training
                    properties:
                      pullPolicy:
                        type: string
                      pullSecrets:
                        items:
                          type: string
                        type: array
                      repository:
                        type: string
                      tag:
                        type: string
                    required:
                    - repository
                    - tag
                    type: object
                  modelPVC:
                    description: ModelPVC is the persistent storage for models used
                      for finetuning
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the PVC
                        type: object
                      create:
                        description: |-
                          Create specifies whether to create a new PersistentVolumeClaim (PVC).
                          If set to false, an existing PVC must be referenced via the `Name` field.
                        type: boolean
                      name:
                        description: Name of the PVC to use. Required if `Create`
                          is false (i.e., using an existing 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 or
                          a default storage class is set in the cluster.
                        type: string
                      subPath:
                        description: SubPath is the path inside the PVC that should
                          be mounted
                        type: string
                      volumeAccessMode:
                        description: VolumeAccessMode is the volume access mode of
                          the PVC
                        type: string
                    type: object
                  networkConfig:
                    description: NetworkConfig is the network configuration for multi-node
                      training
                    items:
                      description: EnvVar represents an environment variable present
                        in a Container.
                      properties:
                        name:
                          description: |-
                            Name of the environment variable.
                            May consist of any printable ASCII characters except '='.
                          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
                            fileKeyRef:
                              description: |-
                                FileKeyRef selects a key of the env file.
                                Requires the EnvFiles feature gate to be enabled.
                              properties:
                                key:
                                  description: |-
                                    The key within the env file. An invalid key will prevent the pod from starting.
                                    The keys defined within a source may consist of any printable ASCII characters except '='.
                                    During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                  type: string
                                optional:
                                  default: false
                                  description: |-
                                    Specify whether the file or its key must be defined. If the file or key
                                    does not exist, then the env var is not published.
                                    If optional is set to true and the specified key does not exist,
                                    the environment variable will not be set in the Pod's containers.

                                    If optional is set to false and the specified key does not exist,
                                    an error will be returned during Pod creation.
                                  type: boolean
                                path:
                                  description: |-
                                    The path within the volume from which to select the file.
                                    Must be relative and may not contain the '..' path or start with '..'.
                                  type: string
                                volumeName:
                                  description: The name of the volume mount containing
                                    the env file.
                                  type: string
                              required:
                              - key
                              - path
                              - volumeName
                              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
                  nodeSelector:
                    additionalProperties:
                      type: string
                    description: NodeSelector labels for scheduling training jobs
                    type: object
                  podAffinity:
                    description: |-
                      Deprecated: Use Affinity instead.
                      PodAffinity for the training jobs
                    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.
                                  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.
                                  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.
                              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.
                              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
                  resources:
                    description: Resources for the training jobs
                    properties:
                      claims:
                        description: |-
                          Claims lists the names of resources, defined in spec.resourceClaims,
                          that are used by this container.

                          This field depends on 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
                  runaiQueue:
                    default: default
                    description: |-
                      RunAIQueue is the Run.AI's scheduler queue to be used for training jobs.
                      Used only if the scheduler is set to runai.
                    type: string
                  sharedMemorySizeLimit:
                    anyOf:
                    - type: integer
                    - type: string
                    description: SharedMemorySizeLimit sets the max size of the shared
                      memory volume (emptyDir) used by the training jobs for fast
                      model runtime I/O.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  timeout:
                    description: Timeout for the training job to complete
                    type: integer
                  tolerations:
                    description: Tolerations for the training jobs
                    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
                  ttlSecondsAfterFinished:
                    description: Time to live after the training job finishes (seconds)
                    type: integer
                  workspacePVC:
                    description: WorkspacePVC is the PVC config for NemoTrainingJob,
                      which automatically creates one for each job
                    properties:
                      mountPath:
                        default: /pvc/workspace
                        description: MountPath is the path where the workspace pvc
                          is mounted within the training job
                        type: string
                      size:
                        description: Size of the workspace storage in Gi, used during
                          PVC creation
                        type: string
                      storageClass:
                        description: |-
                          StorageClass to be used for PVC creation. Leave it as empty if
                          a default storage class is set in the cluster.
                        type: string
                      volumeAccessMode:
                        description: VolumeAccessMode is the volume access mode of
                          the PVC
                        type: string
                    type: object
                required:
                - image
                - modelPVC
                - workspacePVC
                type: object
              userID:
                format: int64
                type: integer
              wandb:
                description: WandBConfig stores the config for the Weights and Biases
                  service.
                properties:
                  apiKeyKey:
                    default: apiKey
                    description: |-
                      APIKeyKey is the key in the Secret that holds the WandB API key.
                      Defaults to "apiKey".
                    minLength: 1
                    type: string
                  encryptionKey:
                    default: encryptionKey
                    description: |-
                      EncryptionKey is an optional key in the secret used for encrypting WandB credentials.
                      This can be used for additional security layers if required.
                      Defaults to "encryptionKey".
                    type: string
                  entity:
                    default: "null"
                    description: |-
                      Entity is the username or team name under which the runs will be logged.
                      If not specified, the run will default to your default entity
                      To change the default entity, go to the account settings https://wandb.ai/settings
                      and update the “Default location to create new projects” under “Default team”.
                    type: string
                  projectName:
                    default: nvidia-nemo-customizer
                    description: Project is the name of the project under which this
                      run will be logged
                    type: string
                  secretName:
                    description: |-
                      SecretName is the name of the Kubernetes Secret containing the WandB API key.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                required:
                - apiKeyKey
                - secretName
                type: object
            required:
            - databaseConfig
            - datastore
            - entitystore
            - image
            - mlflow
            - modelConfig
            - modelDownloadJobs
            - nemoDatastoreTools
            - trainingConfig
            - wandb
            type: object
            x-kubernetes-validations:
            - message: .spec.expose.ingress is deprecated, and will be removed in
                a future release. If .spec.expose.ingress is set, please do not set
                .spec.expose.router.ingress.
              rule: '!(has(self.expose.ingress) && has(self.expose.ingress.enabled)
                && self.expose.ingress.enabled && has(self.expose.router) && has(self.expose.router.ingress))'
            - message: spec.replicas cannot be set when spec.scale.enabled is true
              rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                && has(self.replicas))'
          status:
            description: NemoCustomizerStatus defines the observed state of NemoCustomizer.
            properties:
              availableReplicas:
                format: int32
                type: integer
              conditions:
                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:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nemodatastores.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nemodatastores.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NemoDatastore
    listKind: NemoDatastoreList
    plural: nemodatastores
    singular: nemodatastore
  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: NemoDatastore is the Schema for the NemoDatastore 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: NemoDatastoreSpec defines the desired state of NemoDatastore.
            properties:
              affinity:
                description: Affinity is a group of affinity scheduling rules.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node matches the corresponding matchExpressions; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: |-
                            An empty preferred scheduling term matches all objects with implicit weight 0
                            (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        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 an update), the system
                          may or may not try to eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: |-
                                A null or empty node selector term matches no objects. The requirements of
                                them are ANDed.
                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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.
                              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.
                              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
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the anti-affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and subtracting
                          "weight" from 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.
                                  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.
                                  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 anti-affinity requirements specified by this field are not met at
                          scheduling time, the pod will not be scheduled onto the node.
                          If the anti-affinity requirements specified by this field cease to be met
                          at some point during pod execution (e.g. due to a pod label update), the
                          system may or may not try to eventually evict the pod from its node.
                          When there are multiple elements, the lists of nodes corresponding to each
                          podAffinityTerm are intersected, i.e. all terms must be satisfied.
                        items:
                          description: |-
                            Defines a set of pods (namely those matching the labelSelector
                            relative to the given namespace(s)) that this pod should be
                            co-located (affinity) or not co-located (anti-affinity) with,
                            where co-located is defined as running on a node whose value of
                            the label with key <topologyKey> matches that of any node on which
                            a pod of the set of pods is running
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                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.
                              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.
                              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
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              args:
                items:
                  type: string
                type: array
              command:
                items:
                  type: string
                type: array
              databaseConfig:
                description: DatabaseConfig contains external PostgreSQL configuration
                properties:
                  credentials:
                    description: |-
                      DatabaseCredentials stores the configuration to retrieve the database credentials.
                      Required, must not be nil.
                    properties:
                      passwordKey:
                        default: password
                        description: |-
                          PasswordKey is the name of the key in the `CredentialsSecret` secret for the database credentials.
                          Defaults to "password".
                        type: string
                      secretName:
                        description: |-
                          SecretName is the name of the secret which has the database credentials for a NEMO service user.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                      user:
                        description: |-
                          User is the non-root username for a NEMO Service in the database.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                    required:
                    - secretName
                    - user
                    type: object
                  databaseName:
                    description: |-
                      DatabaseName is the database name for a NEMO Service.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  host:
                    description: |-
                      Host is the hostname of the database.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  port:
                    default: 5432
                    description: |-
                      Port is the port where the database is reachable at.
                      If specified, this must be a valid port number, 0 < databasePort < 65536.
                      Defaults to 5432.
                    format: int32
                    maximum: 65535
                    minimum: 1
                    type: integer
                required:
                - credentials
                - databaseName
                - host
                type: object
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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: DEPRECATED ExposeV1 defines attributes to expose the
                  service.
                properties:
                  ingress:
                    description: |-
                      Deprecated: Use .spec.expose.router.ingress instead.
                      IngressV1 defines attributes for ingress
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      enabled:
                        type: boolean
                      spec:
                        properties:
                          host:
                            type: string
                          ingressClassName:
                            pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
                            type: string
                          paths:
                            items:
                              description: IngressPath defines attributes for ingress
                                paths.
                              properties:
                                path:
                                  default: /
                                  type: string
                                pathType:
                                  default: Prefix
                                  description: PathType represents the type of path
                                    referred to by a HTTPIngressPath.
                                  type: string
                              type: object
                            type: array
                        required:
                        - ingressClassName
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: spec cannot be nil when ingress is enabled
                      rule: (has(self.spec) && has(self.enabled) && self.enabled)
                        || !has(self.enabled) || !self.enabled
                  router:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the router, e.g. for ingress
                          class or gateway
                        type: object
                      eppConfig:
                        description: EPPConfig is the configuration for the endpoint
                          picker extension. This is field is currently only supported
                          for standalone inference platform only on NIMService.
                        properties:
                          config:
                            description: |-
                              Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                              The operator will marshal this to YAML and create a ConfigMap automatically.
                              Mutually exclusive with ConfigMapRef.
                              One of ConfigMapRef or Config must be specified (no default configuration).
                              Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                            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
                              data:
                                description: Data configures the DataLayer. It is
                                  required if the new DataLayer is enabled.
                                properties:
                                  sources:
                                    description: Sources is the list of sources to
                                      define to the DataLayer
                                    items:
                                      description: DataLayerSource contains the configuration
                                        of a DataSource of the DataLayer feature
                                      properties:
                                        extractors:
                                          description: |-
                                            Extractors specifies the list of Plugin instances to be associated with
                                            this Source. The entries are references to the names of entries of the Plugins
                                            defined in the configuration's Plugins section
                                          items:
                                            description: DataLayerExtractor contains
                                              the configuration of an Extractor of
                                              the DataLayer feature
                                            properties:
                                              pluginRef:
                                                description: |-
                                                  PluginRef specifies a partiular Plugin instance to be associated with
                                                  this Extractor. The reference is to the name of an entry of the Plugins
                                                  defined in the configuration's Plugins section
                                                type: string
                                            required:
                                            - pluginRef
                                            type: object
                                          type: array
                                        pluginRef:
                                          description: |-
                                            PluginRef specifies a partiular Plugin instance to be associated with
                                            this Source. The reference is to the name of an entry of the Plugins
                                            defined in the configuration's Plugins section
                                          type: string
                                      required:
                                      - extractors
                                      - pluginRef
                                      type: object
                                    type: array
                                required:
                                - sources
                                type: object
                              featureGates:
                                description: |-
                                  FeatureGates is a set of flags that enable various experimental features with the EPP.
                                  If omitted non of these experimental features will be enabled.
                                items:
                                  type: string
                                type: array
                              kind:
                                description: |-
                                  Kind is a string value representing the REST resource this object represents.
                                  Servers may infer this from the endpoint the client submits requests to.
                                  Cannot be updated.
                                  In CamelCase.
                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                type: string
                              plugins:
                                description: Plugins is the list of plugins that will
                                  be instantiated.
                                items:
                                  description: |-
                                    PluginSpec contains the information that describes a plugin that
                                    will be instantiated.
                                  properties:
                                    name:
                                      description: |-
                                        Name provides a name for plugin entries to reference. If
                                        omitted, the value of the Plugin's Type field will be used.
                                      type: string
                                    parameters:
                                      description: |-
                                        Parameters are the set of parameters to be passed to the plugin's
                                        factory function. The factory function is responsible
                                        to parse the parameters.
                                      format: byte
                                      type: string
                                    type:
                                      description: Type specifies the plugin type
                                        to be instantiated.
                                      type: string
                                  required:
                                  - type
                                  type: object
                                type: array
                              saturationDetector:
                                description: |-
                                  SaturationDetector when present specifies the configuration of the
                                  Saturation detector. If not present, default values are used.
                                properties:
                                  kvCacheUtilThreshold:
                                    description: |-
                                      KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                      which a pod is considered to have insufficient capacity.
                                    type: number
                                  metricsStalenessThreshold:
                                    description: |-
                                      MetricsStalenessThreshold defines how old a pod's metrics can be.
                                      If a pod's metrics are older than this, it might be excluded from
                                      "good capacity" considerations or treated as having no capacity for
                                      safety.
                                    type: string
                                  queueDepthThreshold:
                                    description: |-
                                      QueueDepthThreshold defines the backend waiting queue size above which a
                                      pod is considered to have insufficient capacity for new requests.
                                    type: integer
                                type: object
                              schedulingProfiles:
                                description: |-
                                  SchedulingProfiles is the list of named SchedulingProfiles
                                  that will be created.
                                items:
                                  description: |-
                                    SchedulingProfile contains the information to create a SchedulingProfile
                                    entry to be used by the scheduler.
                                  properties:
                                    name:
                                      description: Name specifies the name of this
                                        SchedulingProfile
                                      type: string
                                    plugins:
                                      description: |-
                                        Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                        to the appropriate "slots" based on their type.
                                      items:
                                        description: |-
                                          SchedulingPlugin describes a plugin that will be associated with a
                                          SchedulingProfile entry.
                                        properties:
                                          pluginRef:
                                            description: |-
                                              PluginRef specifies a partiular Plugin instance to be associated with
                                              this SchedulingProfile. The reference is to the name of an
                                              entry of the Plugins defined in the configuration's Plugins
                                              section
                                            type: string
                                          weight:
                                            description: Weight is the weight fo be
                                              used if this plugin is a Scorer.
                                            type: integer
                                        required:
                                        - pluginRef
                                        type: object
                                      type: array
                                  required:
                                  - name
                                  - plugins
                                  type: object
                                type: array
                            required:
                            - plugins
                            - schedulingProfiles
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          configMapRef:
                            description: |-
                              ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                              The ConfigMap should contain EndpointPickerConfig YAML.
                              Mutually exclusive with Config.
                            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
                          containerSpec:
                            description: ContainerSpec is the specification for the
                              EPP container.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          livenessProbe:
                            description: LivenessProbe is the liveness probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          ports:
                            description: Ports is the list of ports to expose for
                              the EPP container.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: |-
                                    Number of port to expose on the pod's IP address.
                                    This must be a valid port number, 0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: |-
                                    Number of port to expose on the host.
                                    If specified, this must be a valid port number, 0 < x < 65536.
                                    If HostNetwork is specified, this must match ContainerPort.
                                    Most containers do not need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: |-
                                    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                    named port in a pod must have a unique name. Name for the port that can be
                                    referred to by services.
                                  type: string
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol for port. Must be UDP, TCP, or SCTP.
                                    Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                          readinessProbe:
                            description: ReadinessProbe is the readiness probe for
                              the EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          startupProbe:
                            description: StartupProbe is the startup probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to a
                                  TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: |-
                                      Number or name of the port to access on the container.
                                      Number must be in the range 1 to 65535.
                                      Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: |-
                                  Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                  The grace period is the duration in seconds after the processes running in the pod are sent
                                  a termination signal and the time when the processes are forcibly halted with a kill signal.
                                  Set this value longer than the expected cleanup time for your process.
                                  If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                  value overrides the value provided by the pod spec.
                                  Value must be non-negative integer. The value zero indicates stop immediately via
                                  the kill signal (no opportunity to shut down).
                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: |-
                                  Number of seconds after which the probe times out.
                                  Defaults to 1 second. Minimum value is 1.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                format: int32
                                type: integer
                            type: object
                        required:
                        - containerSpec
                        type: object
                        x-kubernetes-validations:
                        - message: specify either configMapRef or config, not both
                          rule: '!(has(self.configMapRef) && has(self.config))'
                      gateway:
                        description: Gateway is the gateway to use for the created
                          HTTPRoute.
                        properties:
                          backendRef:
                            description: BackendRef is a reference to a backend to
                              forward matched requests to.
                            properties:
                              group:
                                default: ""
                                description: |-
                                  Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                  When unspecified or empty string, core API group is inferred.
                                maxLength: 253
                                pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                type: string
                              kind:
                                default: Service
                                description: |-
                                  Kind is the Kubernetes resource kind of the referent. For example
                                  "Service".

                                  Defaults to "Service" when not specified.

                                  ExternalName services can refer to CNAME DNS records that may live
                                  outside of the cluster and as such are difficult to reason about in
                                  terms of conformance. They also may not be safe to forward to (see
                                  CVE-2021-25740 for more information). Implementations SHOULD NOT
                                  support ExternalName Services.

                                  Support: Core (Services with a type other than ExternalName)

                                  Support: Implementation-specific (Services with type ExternalName)
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                type: string
                              name:
                                description: Name is the name of the referent.
                                maxLength: 253
                                minLength: 1
                                type: string
                              namespace:
                                description: |-
                                  Namespace is the namespace of the backend. When unspecified, the local
                                  namespace is inferred.

                                  Note that when a namespace different than the local namespace is specified,
                                  a ReferenceGrant object is required in the referent namespace to allow that
                                  namespace's owner to accept the reference. See the ReferenceGrant
                                  documentation for details.

                                  Support: Core
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                type: string
                              port:
                                description: |-
                                  Port specifies the destination port number to use for this resource.
                                  Port is required when the referent is a Kubernetes Service. In this
                                  case, the port number is the service port number, not the target port.
                                  For other resources, destination port might be derived from the referent
                                  resource or this field.
                                format: int32
                                maximum: 65535
                                minimum: 1
                                type: integer
                              weight:
                                default: 1
                                description: |-
                                  Weight specifies the proportion of requests forwarded to the referenced
                                  backend. This is computed as weight/(sum of all weights in this
                                  BackendRefs list). For non-zero values, there may be some epsilon from
                                  the exact proportion defined here depending on the precision an
                                  implementation supports. Weight is not a percentage and the sum of
                                  weights does not need to equal 100.

                                  If only one backend is specified and it has a weight greater than 0, 100%
                                  of the traffic is forwarded to that backend. If weight is set to 0, no
                                  traffic should be forwarded for this entry. If unspecified, weight
                                  defaults to 1.

                                  Support for this field varies based on the context where used.
                                format: int32
                                maximum: 1000000
                                minimum: 0
                                type: integer
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: Must have port for Service reference
                              rule: '(size(self.group) == 0 && self.kind == ''Service'')
                                ? has(self.port) : true'
                          grpcRoutesEnabled:
                            default: false
                            description: GRPCRoutesEnabled is a flag to enable GRPCRoutes
                              for the created gateway.
                            type: boolean
                          httpRoutesEnabled:
                            default: true
                            description: HTTPRoutesEnabled is a flag to enable HTTPRoutes
                              for the created gateway.
                            type: boolean
                          name:
                            description: Name of the gateway
                            minLength: 1
                            type: string
                          namespace:
                            description: Namespace of the gateway
                            minLength: 1
                            type: string
                        required:
                        - name
                        - namespace
                        type: object
                      hostDomainName:
                        description: |-
                          HostDomainName is the domain name of the hostname matched by the router.
                          The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                          eg. example.com for "<nimServiceName>.<namespace>.example.com"
                        maxLength: 63
                        minLength: 1
                        pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                        type: string
                      ingress:
                        description: Ingress is the ingress controller to use for
                          the created ingress.
                        properties:
                          ingressClass:
                            description: IngressClass is the ingress class to use
                              for the created ingress.
                            minLength: 1
                            type: string
                          tlsSecretName:
                            description: TLSSecretName is the name of the secret containing
                              the TLS certificate and key.
                            type: string
                        required:
                        - ingressClass
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: 'unsupported field: spec.expose.router.gateway.grpcRoutesEnabled'
                      rule: '!(has(self.gateway) && self.gateway.grpcRoutesEnabled)'
                    - message: ingress and gateway cannot be specified together
                      rule: '!(has(self.gateway) && has(self.ingress))'
                  service:
                    description: Service defines attributes to create a service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      grpcPort:
                        description: |-
                          GRPCPort is the GRPC serving port
                          Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      metricsPort:
                        description: |-
                          MetricsPort is the port for metrics
                          Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      name:
                        description: Override the default service name
                        type: string
                      port:
                        default: 8000
                        description: 'Port is the main api serving port (default:
                          8000)'
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      type:
                        description: Service Type string describes ingress methods
                          for a service
                        type: string
                    type: object
                type: object
                x-kubernetes-validations:
                - message: 'unsupported field: spec.expose.service.grpcPort'
                  rule: '!(has(self.service.grpcPort))'
                - message: 'unsupported field: spec.expose.service.metricsPort'
                  rule: '!(has(self.service.metricsPort))'
              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
                required:
                - repository
                - tag
                type: object
              labels:
                additionalProperties:
                  type: string
                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
              objectStoreConfig:
                description: ObjectStore specifies the location and credentials for
                  accessing the external Object Storage
                properties:
                  bucketName:
                    description: BucketName is the bucket where LFS files will be
                      stored
                    type: string
                  credentials:
                    description: ObjectStoreCredentials stores the configuration to
                      retrieve the object store credentials
                    properties:
                      passwordKey:
                        description: PasswordKey is the name of the key in the `CredentialsSecret`
                          secret for the object store credentials.
                        type: string
                      secretName:
                        description: SecretName is the name of the secret which has
                          the object credentials for a NEMO service user.
                        type: string
                      user:
                        description: User is the non-root username for a NEMO Service
                          in the object store.
                        type: string
                    required:
                    - passwordKey
                    - secretName
                    - user
                    type: object
                  endpoint:
                    description: endpoint is the fully qualidfied object store endpoint
                    type: string
                  region:
                    description: Region is the region where bucket is hosted
                    type: string
                  serveDirect:
                    default: true
                    type: boolean
                  ssl:
                    description: SSL enable ssl for object store transport
                    type: boolean
                required:
                - bucketName
                - credentials
                - endpoint
                - region
                - ssl
                type: object
              podAffinity:
                description: 'Deprecated: Use Affinity instead.'
                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.
                              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.
                              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.
                          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.
                          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
              pvc:
                description: PVC defines the PersistentVolumeClaim for the datastore
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    description: Annotations for the PVC
                    type: object
                  create:
                    description: |-
                      Create specifies whether to create a new PersistentVolumeClaim (PVC).
                      If set to false, an existing PVC must be referenced via the `Name` field.
                    type: boolean
                  name:
                    description: Name of the PVC to use. Required if `Create` is false
                      (i.e., using an existing 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 or
                      a default storage class is set in the cluster.
                    type: string
                  subPath:
                    description: SubPath is the path inside the PVC that should be
                      mounted
                    type: string
                  volumeAccessMode:
                    description: VolumeAccessMode is the volume access mode of the
                      PVC
                    type: string
                type: object
              replicas:
                format: int32
                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 field depends on 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
              runtimeClass:
                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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      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.
                              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.
                              type: string
                          required:
                          - type
                          type: object
                        type: array
                      minReplicas:
                        default: 1
                        format: int32
                        minimum: 1
                        type: integer
                    required:
                    - maxReplicas
                    type: object
                type: object
              secrets:
                description: Secrets contains the pre-requisite secrets that must
                  be created before deploying the datastore CR
                properties:
                  datastoreConfigSecret:
                    type: string
                  datastoreInitSecret:
                    type: string
                  datastoreInlineConfigSecret:
                    type: string
                  giteaAdminSecret:
                    type: string
                  lfsJwtSecret:
                    type: string
                required:
                - datastoreConfigSecret
                - datastoreInitSecret
                - datastoreInlineConfigSecret
                - giteaAdminSecret
                - lfsJwtSecret
                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:
            - databaseConfig
            - image
            - secrets
            type: object
            x-kubernetes-validations:
            - message: .spec.expose.ingress is deprecated, and will be removed in
                a future release. If .spec.expose.ingress is set, please do not set
                .spec.expose.router.ingress.
              rule: '!(has(self.expose.ingress) && has(self.expose.ingress.enabled)
                && self.expose.ingress.enabled && has(self.expose.router) && has(self.expose.router.ingress))'
            - message: spec.replicas cannot be set when spec.scale.enabled is true
              rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                && has(self.replicas))'
          status:
            description: NemoDatastoreStatus defines the observed state of NemoDatastore.
            properties:
              availableReplicas:
                format: int32
                type: integer
              conditions:
                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:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nemoentitystores.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nemoentitystores.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NemoEntitystore
    listKind: NemoEntitystoreList
    plural: nemoentitystores
    singular: nemoentitystore
  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: NemoEntitystore is the Schema for the NemoEntitystore 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: NemoEntitystoreSpec defines the desired state of NemoEntitystore.
            properties:
              affinity:
                description: Affinity is a group of affinity scheduling rules.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node matches the corresponding matchExpressions; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: |-
                            An empty preferred scheduling term matches all objects with implicit weight 0
                            (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        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 an update), the system
                          may or may not try to eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: |-
                                A null or empty node selector term matches no objects. The requirements of
                                them are ANDed.
                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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.
                              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.
                              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
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the anti-affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and subtracting
                          "weight" from 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.
                                  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.
                                  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 anti-affinity requirements specified by this field are not met at
                          scheduling time, the pod will not be scheduled onto the node.
                          If the anti-affinity requirements specified by this field cease to be met
                          at some point during pod execution (e.g. due to a pod label update), the
                          system may or may not try to eventually evict the pod from its node.
                          When there are multiple elements, the lists of nodes corresponding to each
                          podAffinityTerm are intersected, i.e. all terms must be satisfied.
                        items:
                          description: |-
                            Defines a set of pods (namely those matching the labelSelector
                            relative to the given namespace(s)) that this pod should be
                            co-located (affinity) or not co-located (anti-affinity) with,
                            where co-located is defined as running on a node whose value of
                            the label with key <topologyKey> matches that of any node on which
                            a pod of the set of pods is running
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                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.
                              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.
                              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
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              args:
                items:
                  type: string
                type: array
              command:
                items:
                  type: string
                type: array
              databaseConfig:
                description: |-
                  DatabaseConfig stores the database configuration for NEMO entitystore.
                  Required, must not be nil.
                properties:
                  credentials:
                    description: |-
                      DatabaseCredentials stores the configuration to retrieve the database credentials.
                      Required, must not be nil.
                    properties:
                      passwordKey:
                        default: password
                        description: |-
                          PasswordKey is the name of the key in the `CredentialsSecret` secret for the database credentials.
                          Defaults to "password".
                        type: string
                      secretName:
                        description: |-
                          SecretName is the name of the secret which has the database credentials for a NEMO service user.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                      user:
                        description: |-
                          User is the non-root username for a NEMO Service in the database.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                    required:
                    - secretName
                    - user
                    type: object
                  databaseName:
                    description: |-
                      DatabaseName is the database name for a NEMO Service.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  host:
                    description: |-
                      Host is the hostname of the database.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  port:
                    default: 5432
                    description: |-
                      Port is the port where the database is reachable at.
                      If specified, this must be a valid port number, 0 < databasePort < 65536.
                      Defaults to 5432.
                    format: int32
                    maximum: 65535
                    minimum: 1
                    type: integer
                required:
                - credentials
                - databaseName
                - host
                type: object
              datastore:
                description: Datastore stores the datastore endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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: DEPRECATED ExposeV1 defines attributes to expose the
                  service.
                properties:
                  ingress:
                    description: |-
                      Deprecated: Use .spec.expose.router.ingress instead.
                      IngressV1 defines attributes for ingress
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      enabled:
                        type: boolean
                      spec:
                        properties:
                          host:
                            type: string
                          ingressClassName:
                            pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
                            type: string
                          paths:
                            items:
                              description: IngressPath defines attributes for ingress
                                paths.
                              properties:
                                path:
                                  default: /
                                  type: string
                                pathType:
                                  default: Prefix
                                  description: PathType represents the type of path
                                    referred to by a HTTPIngressPath.
                                  type: string
                              type: object
                            type: array
                        required:
                        - ingressClassName
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: spec cannot be nil when ingress is enabled
                      rule: (has(self.spec) && has(self.enabled) && self.enabled)
                        || !has(self.enabled) || !self.enabled
                  router:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the router, e.g. for ingress
                          class or gateway
                        type: object
                      eppConfig:
                        description: EPPConfig is the configuration for the endpoint
                          picker extension. This is field is currently only supported
                          for standalone inference platform only on NIMService.
                        properties:
                          config:
                            description: |-
                              Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                              The operator will marshal this to YAML and create a ConfigMap automatically.
                              Mutually exclusive with ConfigMapRef.
                              One of ConfigMapRef or Config must be specified (no default configuration).
                              Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                            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
                              data:
                                description: Data configures the DataLayer. It is
                                  required if the new DataLayer is enabled.
                                properties:
                                  sources:
                                    description: Sources is the list of sources to
                                      define to the DataLayer
                                    items:
                                      description: DataLayerSource contains the configuration
                                        of a DataSource of the DataLayer feature
                                      properties:
                                        extractors:
                                          description: |-
                                            Extractors specifies the list of Plugin instances to be associated with
                                            this Source. The entries are references to the names of entries of the Plugins
                                            defined in the configuration's Plugins section
                                          items:
                                            description: DataLayerExtractor contains
                                              the configuration of an Extractor of
                                              the DataLayer feature
                                            properties:
                                              pluginRef:
                                                description: |-
                                                  PluginRef specifies a partiular Plugin instance to be associated with
                                                  this Extractor. The reference is to the name of an entry of the Plugins
                                                  defined in the configuration's Plugins section
                                                type: string
                                            required:
                                            - pluginRef
                                            type: object
                                          type: array
                                        pluginRef:
                                          description: |-
                                            PluginRef specifies a partiular Plugin instance to be associated with
                                            this Source. The reference is to the name of an entry of the Plugins
                                            defined in the configuration's Plugins section
                                          type: string
                                      required:
                                      - extractors
                                      - pluginRef
                                      type: object
                                    type: array
                                required:
                                - sources
                                type: object
                              featureGates:
                                description: |-
                                  FeatureGates is a set of flags that enable various experimental features with the EPP.
                                  If omitted non of these experimental features will be enabled.
                                items:
                                  type: string
                                type: array
                              kind:
                                description: |-
                                  Kind is a string value representing the REST resource this object represents.
                                  Servers may infer this from the endpoint the client submits requests to.
                                  Cannot be updated.
                                  In CamelCase.
                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                type: string
                              plugins:
                                description: Plugins is the list of plugins that will
                                  be instantiated.
                                items:
                                  description: |-
                                    PluginSpec contains the information that describes a plugin that
                                    will be instantiated.
                                  properties:
                                    name:
                                      description: |-
                                        Name provides a name for plugin entries to reference. If
                                        omitted, the value of the Plugin's Type field will be used.
                                      type: string
                                    parameters:
                                      description: |-
                                        Parameters are the set of parameters to be passed to the plugin's
                                        factory function. The factory function is responsible
                                        to parse the parameters.
                                      format: byte
                                      type: string
                                    type:
                                      description: Type specifies the plugin type
                                        to be instantiated.
                                      type: string
                                  required:
                                  - type
                                  type: object
                                type: array
                              saturationDetector:
                                description: |-
                                  SaturationDetector when present specifies the configuration of the
                                  Saturation detector. If not present, default values are used.
                                properties:
                                  kvCacheUtilThreshold:
                                    description: |-
                                      KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                      which a pod is considered to have insufficient capacity.
                                    type: number
                                  metricsStalenessThreshold:
                                    description: |-
                                      MetricsStalenessThreshold defines how old a pod's metrics can be.
                                      If a pod's metrics are older than this, it might be excluded from
                                      "good capacity" considerations or treated as having no capacity for
                                      safety.
                                    type: string
                                  queueDepthThreshold:
                                    description: |-
                                      QueueDepthThreshold defines the backend waiting queue size above which a
                                      pod is considered to have insufficient capacity for new requests.
                                    type: integer
                                type: object
                              schedulingProfiles:
                                description: |-
                                  SchedulingProfiles is the list of named SchedulingProfiles
                                  that will be created.
                                items:
                                  description: |-
                                    SchedulingProfile contains the information to create a SchedulingProfile
                                    entry to be used by the scheduler.
                                  properties:
                                    name:
                                      description: Name specifies the name of this
                                        SchedulingProfile
                                      type: string
                                    plugins:
                                      description: |-
                                        Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                        to the appropriate "slots" based on their type.
                                      items:
                                        description: |-
                                          SchedulingPlugin describes a plugin that will be associated with a
                                          SchedulingProfile entry.
                                        properties:
                                          pluginRef:
                                            description: |-
                                              PluginRef specifies a partiular Plugin instance to be associated with
                                              this SchedulingProfile. The reference is to the name of an
                                              entry of the Plugins defined in the configuration's Plugins
                                              section
                                            type: string
                                          weight:
                                            description: Weight is the weight fo be
                                              used if this plugin is a Scorer.
                                            type: integer
                                        required:
                                        - pluginRef
                                        type: object
                                      type: array
                                  required:
                                  - name
                                  - plugins
                                  type: object
                                type: array
                            required:
                            - plugins
                            - schedulingProfiles
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          configMapRef:
                            description: |-
                              ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                              The ConfigMap should contain EndpointPickerConfig YAML.
                              Mutually exclusive with Config.
                            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
                          containerSpec:
                            description: ContainerSpec is the specification for the
                              EPP container.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          livenessProbe:
                            description: LivenessProbe is the liveness probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          ports:
                            description: Ports is the list of ports to expose for
                              the EPP container.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: |-
                                    Number of port to expose on the pod's IP address.
                                    This must be a valid port number, 0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: |-
                                    Number of port to expose on the host.
                                    If specified, this must be a valid port number, 0 < x < 65536.
                                    If HostNetwork is specified, this must match ContainerPort.
                                    Most containers do not need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: |-
                                    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                    named port in a pod must have a unique name. Name for the port that can be
                                    referred to by services.
                                  type: string
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol for port. Must be UDP, TCP, or SCTP.
                                    Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                          readinessProbe:
                            description: ReadinessProbe is the readiness probe for
                              the EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          startupProbe:
                            description: StartupProbe is the startup probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to a
                                  TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: |-
                                      Number or name of the port to access on the container.
                                      Number must be in the range 1 to 65535.
                                      Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: |-
                                  Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                  The grace period is the duration in seconds after the processes running in the pod are sent
                                  a termination signal and the time when the processes are forcibly halted with a kill signal.
                                  Set this value longer than the expected cleanup time for your process.
                                  If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                  value overrides the value provided by the pod spec.
                                  Value must be non-negative integer. The value zero indicates stop immediately via
                                  the kill signal (no opportunity to shut down).
                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: |-
                                  Number of seconds after which the probe times out.
                                  Defaults to 1 second. Minimum value is 1.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                format: int32
                                type: integer
                            type: object
                        required:
                        - containerSpec
                        type: object
                        x-kubernetes-validations:
                        - message: specify either configMapRef or config, not both
                          rule: '!(has(self.configMapRef) && has(self.config))'
                      gateway:
                        description: Gateway is the gateway to use for the created
                          HTTPRoute.
                        properties:
                          backendRef:
                            description: BackendRef is a reference to a backend to
                              forward matched requests to.
                            properties:
                              group:
                                default: ""
                                description: |-
                                  Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                  When unspecified or empty string, core API group is inferred.
                                maxLength: 253
                                pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                type: string
                              kind:
                                default: Service
                                description: |-
                                  Kind is the Kubernetes resource kind of the referent. For example
                                  "Service".

                                  Defaults to "Service" when not specified.

                                  ExternalName services can refer to CNAME DNS records that may live
                                  outside of the cluster and as such are difficult to reason about in
                                  terms of conformance. They also may not be safe to forward to (see
                                  CVE-2021-25740 for more information). Implementations SHOULD NOT
                                  support ExternalName Services.

                                  Support: Core (Services with a type other than ExternalName)

                                  Support: Implementation-specific (Services with type ExternalName)
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                type: string
                              name:
                                description: Name is the name of the referent.
                                maxLength: 253
                                minLength: 1
                                type: string
                              namespace:
                                description: |-
                                  Namespace is the namespace of the backend. When unspecified, the local
                                  namespace is inferred.

                                  Note that when a namespace different than the local namespace is specified,
                                  a ReferenceGrant object is required in the referent namespace to allow that
                                  namespace's owner to accept the reference. See the ReferenceGrant
                                  documentation for details.

                                  Support: Core
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                type: string
                              port:
                                description: |-
                                  Port specifies the destination port number to use for this resource.
                                  Port is required when the referent is a Kubernetes Service. In this
                                  case, the port number is the service port number, not the target port.
                                  For other resources, destination port might be derived from the referent
                                  resource or this field.
                                format: int32
                                maximum: 65535
                                minimum: 1
                                type: integer
                              weight:
                                default: 1
                                description: |-
                                  Weight specifies the proportion of requests forwarded to the referenced
                                  backend. This is computed as weight/(sum of all weights in this
                                  BackendRefs list). For non-zero values, there may be some epsilon from
                                  the exact proportion defined here depending on the precision an
                                  implementation supports. Weight is not a percentage and the sum of
                                  weights does not need to equal 100.

                                  If only one backend is specified and it has a weight greater than 0, 100%
                                  of the traffic is forwarded to that backend. If weight is set to 0, no
                                  traffic should be forwarded for this entry. If unspecified, weight
                                  defaults to 1.

                                  Support for this field varies based on the context where used.
                                format: int32
                                maximum: 1000000
                                minimum: 0
                                type: integer
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: Must have port for Service reference
                              rule: '(size(self.group) == 0 && self.kind == ''Service'')
                                ? has(self.port) : true'
                          grpcRoutesEnabled:
                            default: false
                            description: GRPCRoutesEnabled is a flag to enable GRPCRoutes
                              for the created gateway.
                            type: boolean
                          httpRoutesEnabled:
                            default: true
                            description: HTTPRoutesEnabled is a flag to enable HTTPRoutes
                              for the created gateway.
                            type: boolean
                          name:
                            description: Name of the gateway
                            minLength: 1
                            type: string
                          namespace:
                            description: Namespace of the gateway
                            minLength: 1
                            type: string
                        required:
                        - name
                        - namespace
                        type: object
                      hostDomainName:
                        description: |-
                          HostDomainName is the domain name of the hostname matched by the router.
                          The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                          eg. example.com for "<nimServiceName>.<namespace>.example.com"
                        maxLength: 63
                        minLength: 1
                        pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                        type: string
                      ingress:
                        description: Ingress is the ingress controller to use for
                          the created ingress.
                        properties:
                          ingressClass:
                            description: IngressClass is the ingress class to use
                              for the created ingress.
                            minLength: 1
                            type: string
                          tlsSecretName:
                            description: TLSSecretName is the name of the secret containing
                              the TLS certificate and key.
                            type: string
                        required:
                        - ingressClass
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: 'unsupported field: spec.expose.router.gateway.grpcRoutesEnabled'
                      rule: '!(has(self.gateway) && self.gateway.grpcRoutesEnabled)'
                    - message: ingress and gateway cannot be specified together
                      rule: '!(has(self.gateway) && has(self.ingress))'
                  service:
                    description: Service defines attributes to create a service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      grpcPort:
                        description: |-
                          GRPCPort is the GRPC serving port
                          Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      metricsPort:
                        description: |-
                          MetricsPort is the port for metrics
                          Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      name:
                        description: Override the default service name
                        type: string
                      port:
                        default: 8000
                        description: 'Port is the main api serving port (default:
                          8000)'
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      type:
                        description: Service Type string describes ingress methods
                          for a service
                        type: string
                    type: object
                type: object
                x-kubernetes-validations:
                - message: 'unsupported field: spec.expose.service.grpcPort'
                  rule: '!(has(self.service.grpcPort))'
                - message: 'unsupported field: spec.expose.service.metricsPort'
                  rule: '!(has(self.service.metricsPort))'
              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
                required:
                - repository
                - tag
                type: object
              labels:
                additionalProperties:
                  type: string
                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: 'Deprecated: Use Affinity instead.'
                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.
                              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.
                              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.
                          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.
                          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
              replicas:
                format: int32
                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 field depends on 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
              runtimeClass:
                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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      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.
                              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.
                              type: string
                          required:
                          - type
                          type: object
                        type: array
                      minReplicas:
                        default: 1
                        format: int32
                        minimum: 1
                        type: integer
                    required:
                    - maxReplicas
                    type: object
                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:
            - databaseConfig
            - datastore
            - image
            type: object
            x-kubernetes-validations:
            - message: .spec.expose.ingress is deprecated, and will be removed in
                a future release. If .spec.expose.ingress is set, please do not set
                .spec.expose.router.ingress.
              rule: '!(has(self.expose.ingress) && has(self.expose.ingress.enabled)
                && self.expose.ingress.enabled && has(self.expose.router) && has(self.expose.router.ingress))'
            - message: spec.replicas cannot be set when spec.scale.enabled is true
              rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                && has(self.replicas))'
          status:
            description: NemoEntitystoreStatus defines the observed state of NemoEntitystore.
            properties:
              availableReplicas:
                format: int32
                type: integer
              conditions:
                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:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nemoevaluators.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nemoevaluators.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NemoEvaluator
    listKind: NemoEvaluatorList
    plural: nemoevaluators
    singular: nemoevaluator
  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: NemoEvaluator is the Schema for the NemoEvaluator 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: NemoEvaluatorSpec defines the desired state of NemoEvaluator.
            properties:
              affinity:
                description: Affinity is a group of affinity scheduling rules.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node matches the corresponding matchExpressions; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: |-
                            An empty preferred scheduling term matches all objects with implicit weight 0
                            (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        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 an update), the system
                          may or may not try to eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: |-
                                A null or empty node selector term matches no objects. The requirements of
                                them are ANDed.
                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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.
                              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.
                              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
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the anti-affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and subtracting
                          "weight" from 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.
                                  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.
                                  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 anti-affinity requirements specified by this field are not met at
                          scheduling time, the pod will not be scheduled onto the node.
                          If the anti-affinity requirements specified by this field cease to be met
                          at some point during pod execution (e.g. due to a pod label update), the
                          system may or may not try to eventually evict the pod from its node.
                          When there are multiple elements, the lists of nodes corresponding to each
                          podAffinityTerm are intersected, i.e. all terms must be satisfied.
                        items:
                          description: |-
                            Defines a set of pods (namely those matching the labelSelector
                            relative to the given namespace(s)) that this pod should be
                            co-located (affinity) or not co-located (anti-affinity) with,
                            where co-located is defined as running on a node whose value of
                            the label with key <topologyKey> matches that of any node on which
                            a pod of the set of pods is running
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                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.
                              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.
                              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
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              argoWorkflows:
                description: ArgoWorkflows stores the argo workflow service endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                  serviceAccount:
                    type: string
                required:
                - endpoint
                - serviceAccount
                type: object
              args:
                items:
                  type: string
                type: array
              command:
                items:
                  type: string
                type: array
              consoleLogLevel:
                default: INFO
                description: ConsoleLogLevel defines the console log level (e.g.,
                  INFO, DEBUG).
                enum:
                - INFO
                - DEBUG
                type: string
              databaseConfig:
                description: DatabaseConfig stores the database configuration for
                  NeMo entitystore.
                properties:
                  credentials:
                    description: |-
                      DatabaseCredentials stores the configuration to retrieve the database credentials.
                      Required, must not be nil.
                    properties:
                      passwordKey:
                        default: password
                        description: |-
                          PasswordKey is the name of the key in the `CredentialsSecret` secret for the database credentials.
                          Defaults to "password".
                        type: string
                      secretName:
                        description: |-
                          SecretName is the name of the secret which has the database credentials for a NEMO service user.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                      user:
                        description: |-
                          User is the non-root username for a NEMO Service in the database.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                    required:
                    - secretName
                    - user
                    type: object
                  databaseName:
                    description: |-
                      DatabaseName is the database name for a NEMO Service.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  host:
                    description: |-
                      Host is the hostname of the database.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  port:
                    default: 5432
                    description: |-
                      Port is the port where the database is reachable at.
                      If specified, this must be a valid port number, 0 < databasePort < 65536.
                      Defaults to 5432.
                    format: int32
                    maximum: 65535
                    minimum: 1
                    type: integer
                required:
                - credentials
                - databaseName
                - host
                type: object
              datastore:
                description: Datastore stores the datastore endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
              enableValidation:
                description: EnableValidation indicates that the validation jobs to
                  be enabled
                type: boolean
              entitystore:
                description: Entitystore stores the entitystore endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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
              evalLogLevel:
                default: INFO
                description: EvalLogLevel defines the evaluator log level (e.g., INFO,
                  DEBUG).
                enum:
                - INFO
                - DEBUG
                type: string
              evaluationImages:
                description: EvaluationImages defines the external images used for
                  evaluation
                properties:
                  agenticEval:
                    type: string
                  bfcl:
                    type: string
                  bigcodeEvalHarness:
                    type: string
                  llmAsJudge:
                    type: string
                  lmEvalHarness:
                    type: string
                  mtBench:
                    type: string
                  rag:
                    type: string
                  retriever:
                    type: string
                  similarityMetrics:
                    type: string
                type: object
              expose:
                description: DEPRECATED ExposeV1 defines attributes to expose the
                  service.
                properties:
                  ingress:
                    description: |-
                      Deprecated: Use .spec.expose.router.ingress instead.
                      IngressV1 defines attributes for ingress
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      enabled:
                        type: boolean
                      spec:
                        properties:
                          host:
                            type: string
                          ingressClassName:
                            pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
                            type: string
                          paths:
                            items:
                              description: IngressPath defines attributes for ingress
                                paths.
                              properties:
                                path:
                                  default: /
                                  type: string
                                pathType:
                                  default: Prefix
                                  description: PathType represents the type of path
                                    referred to by a HTTPIngressPath.
                                  type: string
                              type: object
                            type: array
                        required:
                        - ingressClassName
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: spec cannot be nil when ingress is enabled
                      rule: (has(self.spec) && has(self.enabled) && self.enabled)
                        || !has(self.enabled) || !self.enabled
                  router:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the router, e.g. for ingress
                          class or gateway
                        type: object
                      eppConfig:
                        description: EPPConfig is the configuration for the endpoint
                          picker extension. This is field is currently only supported
                          for standalone inference platform only on NIMService.
                        properties:
                          config:
                            description: |-
                              Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                              The operator will marshal this to YAML and create a ConfigMap automatically.
                              Mutually exclusive with ConfigMapRef.
                              One of ConfigMapRef or Config must be specified (no default configuration).
                              Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                            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
                              data:
                                description: Data configures the DataLayer. It is
                                  required if the new DataLayer is enabled.
                                properties:
                                  sources:
                                    description: Sources is the list of sources to
                                      define to the DataLayer
                                    items:
                                      description: DataLayerSource contains the configuration
                                        of a DataSource of the DataLayer feature
                                      properties:
                                        extractors:
                                          description: |-
                                            Extractors specifies the list of Plugin instances to be associated with
                                            this Source. The entries are references to the names of entries of the Plugins
                                            defined in the configuration's Plugins section
                                          items:
                                            description: DataLayerExtractor contains
                                              the configuration of an Extractor of
                                              the DataLayer feature
                                            properties:
                                              pluginRef:
                                                description: |-
                                                  PluginRef specifies a partiular Plugin instance to be associated with
                                                  this Extractor. The reference is to the name of an entry of the Plugins
                                                  defined in the configuration's Plugins section
                                                type: string
                                            required:
                                            - pluginRef
                                            type: object
                                          type: array
                                        pluginRef:
                                          description: |-
                                            PluginRef specifies a partiular Plugin instance to be associated with
                                            this Source. The reference is to the name of an entry of the Plugins
                                            defined in the configuration's Plugins section
                                          type: string
                                      required:
                                      - extractors
                                      - pluginRef
                                      type: object
                                    type: array
                                required:
                                - sources
                                type: object
                              featureGates:
                                description: |-
                                  FeatureGates is a set of flags that enable various experimental features with the EPP.
                                  If omitted non of these experimental features will be enabled.
                                items:
                                  type: string
                                type: array
                              kind:
                                description: |-
                                  Kind is a string value representing the REST resource this object represents.
                                  Servers may infer this from the endpoint the client submits requests to.
                                  Cannot be updated.
                                  In CamelCase.
                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                type: string
                              plugins:
                                description: Plugins is the list of plugins that will
                                  be instantiated.
                                items:
                                  description: |-
                                    PluginSpec contains the information that describes a plugin that
                                    will be instantiated.
                                  properties:
                                    name:
                                      description: |-
                                        Name provides a name for plugin entries to reference. If
                                        omitted, the value of the Plugin's Type field will be used.
                                      type: string
                                    parameters:
                                      description: |-
                                        Parameters are the set of parameters to be passed to the plugin's
                                        factory function. The factory function is responsible
                                        to parse the parameters.
                                      format: byte
                                      type: string
                                    type:
                                      description: Type specifies the plugin type
                                        to be instantiated.
                                      type: string
                                  required:
                                  - type
                                  type: object
                                type: array
                              saturationDetector:
                                description: |-
                                  SaturationDetector when present specifies the configuration of the
                                  Saturation detector. If not present, default values are used.
                                properties:
                                  kvCacheUtilThreshold:
                                    description: |-
                                      KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                      which a pod is considered to have insufficient capacity.
                                    type: number
                                  metricsStalenessThreshold:
                                    description: |-
                                      MetricsStalenessThreshold defines how old a pod's metrics can be.
                                      If a pod's metrics are older than this, it might be excluded from
                                      "good capacity" considerations or treated as having no capacity for
                                      safety.
                                    type: string
                                  queueDepthThreshold:
                                    description: |-
                                      QueueDepthThreshold defines the backend waiting queue size above which a
                                      pod is considered to have insufficient capacity for new requests.
                                    type: integer
                                type: object
                              schedulingProfiles:
                                description: |-
                                  SchedulingProfiles is the list of named SchedulingProfiles
                                  that will be created.
                                items:
                                  description: |-
                                    SchedulingProfile contains the information to create a SchedulingProfile
                                    entry to be used by the scheduler.
                                  properties:
                                    name:
                                      description: Name specifies the name of this
                                        SchedulingProfile
                                      type: string
                                    plugins:
                                      description: |-
                                        Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                        to the appropriate "slots" based on their type.
                                      items:
                                        description: |-
                                          SchedulingPlugin describes a plugin that will be associated with a
                                          SchedulingProfile entry.
                                        properties:
                                          pluginRef:
                                            description: |-
                                              PluginRef specifies a partiular Plugin instance to be associated with
                                              this SchedulingProfile. The reference is to the name of an
                                              entry of the Plugins defined in the configuration's Plugins
                                              section
                                            type: string
                                          weight:
                                            description: Weight is the weight fo be
                                              used if this plugin is a Scorer.
                                            type: integer
                                        required:
                                        - pluginRef
                                        type: object
                                      type: array
                                  required:
                                  - name
                                  - plugins
                                  type: object
                                type: array
                            required:
                            - plugins
                            - schedulingProfiles
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          configMapRef:
                            description: |-
                              ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                              The ConfigMap should contain EndpointPickerConfig YAML.
                              Mutually exclusive with Config.
                            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
                          containerSpec:
                            description: ContainerSpec is the specification for the
                              EPP container.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          livenessProbe:
                            description: LivenessProbe is the liveness probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          ports:
                            description: Ports is the list of ports to expose for
                              the EPP container.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: |-
                                    Number of port to expose on the pod's IP address.
                                    This must be a valid port number, 0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: |-
                                    Number of port to expose on the host.
                                    If specified, this must be a valid port number, 0 < x < 65536.
                                    If HostNetwork is specified, this must match ContainerPort.
                                    Most containers do not need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: |-
                                    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                    named port in a pod must have a unique name. Name for the port that can be
                                    referred to by services.
                                  type: string
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol for port. Must be UDP, TCP, or SCTP.
                                    Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                          readinessProbe:
                            description: ReadinessProbe is the readiness probe for
                              the EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          startupProbe:
                            description: StartupProbe is the startup probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to a
                                  TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: |-
                                      Number or name of the port to access on the container.
                                      Number must be in the range 1 to 65535.
                                      Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: |-
                                  Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                  The grace period is the duration in seconds after the processes running in the pod are sent
                                  a termination signal and the time when the processes are forcibly halted with a kill signal.
                                  Set this value longer than the expected cleanup time for your process.
                                  If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                  value overrides the value provided by the pod spec.
                                  Value must be non-negative integer. The value zero indicates stop immediately via
                                  the kill signal (no opportunity to shut down).
                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: |-
                                  Number of seconds after which the probe times out.
                                  Defaults to 1 second. Minimum value is 1.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                format: int32
                                type: integer
                            type: object
                        required:
                        - containerSpec
                        type: object
                        x-kubernetes-validations:
                        - message: specify either configMapRef or config, not both
                          rule: '!(has(self.configMapRef) && has(self.config))'
                      gateway:
                        description: Gateway is the gateway to use for the created
                          HTTPRoute.
                        properties:
                          backendRef:
                            description: BackendRef is a reference to a backend to
                              forward matched requests to.
                            properties:
                              group:
                                default: ""
                                description: |-
                                  Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                  When unspecified or empty string, core API group is inferred.
                                maxLength: 253
                                pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                type: string
                              kind:
                                default: Service
                                description: |-
                                  Kind is the Kubernetes resource kind of the referent. For example
                                  "Service".

                                  Defaults to "Service" when not specified.

                                  ExternalName services can refer to CNAME DNS records that may live
                                  outside of the cluster and as such are difficult to reason about in
                                  terms of conformance. They also may not be safe to forward to (see
                                  CVE-2021-25740 for more information). Implementations SHOULD NOT
                                  support ExternalName Services.

                                  Support: Core (Services with a type other than ExternalName)

                                  Support: Implementation-specific (Services with type ExternalName)
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                type: string
                              name:
                                description: Name is the name of the referent.
                                maxLength: 253
                                minLength: 1
                                type: string
                              namespace:
                                description: |-
                                  Namespace is the namespace of the backend. When unspecified, the local
                                  namespace is inferred.

                                  Note that when a namespace different than the local namespace is specified,
                                  a ReferenceGrant object is required in the referent namespace to allow that
                                  namespace's owner to accept the reference. See the ReferenceGrant
                                  documentation for details.

                                  Support: Core
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                type: string
                              port:
                                description: |-
                                  Port specifies the destination port number to use for this resource.
                                  Port is required when the referent is a Kubernetes Service. In this
                                  case, the port number is the service port number, not the target port.
                                  For other resources, destination port might be derived from the referent
                                  resource or this field.
                                format: int32
                                maximum: 65535
                                minimum: 1
                                type: integer
                              weight:
                                default: 1
                                description: |-
                                  Weight specifies the proportion of requests forwarded to the referenced
                                  backend. This is computed as weight/(sum of all weights in this
                                  BackendRefs list). For non-zero values, there may be some epsilon from
                                  the exact proportion defined here depending on the precision an
                                  implementation supports. Weight is not a percentage and the sum of
                                  weights does not need to equal 100.

                                  If only one backend is specified and it has a weight greater than 0, 100%
                                  of the traffic is forwarded to that backend. If weight is set to 0, no
                                  traffic should be forwarded for this entry. If unspecified, weight
                                  defaults to 1.

                                  Support for this field varies based on the context where used.
                                format: int32
                                maximum: 1000000
                                minimum: 0
                                type: integer
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: Must have port for Service reference
                              rule: '(size(self.group) == 0 && self.kind == ''Service'')
                                ? has(self.port) : true'
                          grpcRoutesEnabled:
                            default: false
                            description: GRPCRoutesEnabled is a flag to enable GRPCRoutes
                              for the created gateway.
                            type: boolean
                          httpRoutesEnabled:
                            default: true
                            description: HTTPRoutesEnabled is a flag to enable HTTPRoutes
                              for the created gateway.
                            type: boolean
                          name:
                            description: Name of the gateway
                            minLength: 1
                            type: string
                          namespace:
                            description: Namespace of the gateway
                            minLength: 1
                            type: string
                        required:
                        - name
                        - namespace
                        type: object
                      hostDomainName:
                        description: |-
                          HostDomainName is the domain name of the hostname matched by the router.
                          The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                          eg. example.com for "<nimServiceName>.<namespace>.example.com"
                        maxLength: 63
                        minLength: 1
                        pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                        type: string
                      ingress:
                        description: Ingress is the ingress controller to use for
                          the created ingress.
                        properties:
                          ingressClass:
                            description: IngressClass is the ingress class to use
                              for the created ingress.
                            minLength: 1
                            type: string
                          tlsSecretName:
                            description: TLSSecretName is the name of the secret containing
                              the TLS certificate and key.
                            type: string
                        required:
                        - ingressClass
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: 'unsupported field: spec.expose.router.gateway.grpcRoutesEnabled'
                      rule: '!(has(self.gateway) && self.gateway.grpcRoutesEnabled)'
                    - message: ingress and gateway cannot be specified together
                      rule: '!(has(self.gateway) && has(self.ingress))'
                  service:
                    description: Service defines attributes to create a service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      grpcPort:
                        description: |-
                          GRPCPort is the GRPC serving port
                          Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      metricsPort:
                        description: |-
                          MetricsPort is the port for metrics
                          Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      name:
                        description: Override the default service name
                        type: string
                      port:
                        default: 8000
                        description: 'Port is the main api serving port (default:
                          8000)'
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      type:
                        description: Service Type string describes ingress methods
                          for a service
                        type: string
                    type: object
                type: object
                x-kubernetes-validations:
                - message: 'unsupported field: spec.expose.service.grpcPort'
                  rule: '!(has(self.service.grpcPort))'
                - message: 'unsupported field: spec.expose.service.metricsPort'
                  rule: '!(has(self.service.metricsPort))'
              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
                required:
                - repository
                - tag
                type: object
              labels:
                additionalProperties:
                  type: string
                description: The name of an secret that contains authn for the NGC
                  NIM service API
                type: object
              logHandlers:
                default: console
                description: LogHandlers defines the log sink handlers (e.g., INFO,
                  DEBUG).
                enum:
                - console
                - file
                type: string
              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
              otel:
                description: OpenTelemetry Settings
                properties:
                  disableLogging:
                    description: DisableLogging indicates whether Python logging auto-instrumentation
                      should be disabled.
                    type: boolean
                  enabled:
                    description: Enabled indicates if opentelemetry collector and
                      tracing are enabled
                    type: boolean
                  excludedUrls:
                    default:
                    - health
                    description: ExcludedUrls defines URLs to be excluded from tracing.
                    items:
                      type: string
                    type: array
                  exporterConfig:
                    description: ExporterConfig defines configuration for different
                      OTel exporters
                    properties:
                      logsExporter:
                        default: otlp
                        description: 'LogsExporter sets the logs exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                      metricsExporter:
                        default: otlp
                        description: 'MetricsExporter sets the metrics exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                      tracesExporter:
                        default: otlp
                        description: 'TracesExporter sets the traces exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                    type: object
                  exporterOtlpEndpoint:
                    description: ExporterOtlpEndpoint is the OTLP collector endpoint.
                    type: string
                  logLevel:
                    default: INFO
                    description: LogLevel defines the log level (e.g., INFO, DEBUG).
                    enum:
                    - INFO
                    - DEBUG
                    type: string
                type: object
              podAffinity:
                description: 'Deprecated: Use Affinity instead.'
                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.
                              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.
                              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.
                          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.
                          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
              replicas:
                format: int32
                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 field depends on 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
              runtimeClass:
                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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      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.
                              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.
                              type: string
                          required:
                          - type
                          type: object
                        type: array
                      minReplicas:
                        default: 1
                        format: int32
                        minimum: 1
                        type: integer
                    required:
                    - maxReplicas
                    type: object
                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
              vectorDB:
                description: VectorDB stores the vector db endpoint.
                properties:
                  endpoint:
                    minLength: 1
                    pattern: ^http
                    type: string
                required:
                - endpoint
                type: object
            required:
            - argoWorkflows
            - databaseConfig
            - datastore
            - entitystore
            - evaluationImages
            - image
            - vectorDB
            type: object
            x-kubernetes-validations:
            - message: .spec.expose.ingress is deprecated, and will be removed in
                a future release. If .spec.expose.ingress is set, please do not set
                .spec.expose.router.ingress.
              rule: '!(has(self.expose.ingress) && has(self.expose.ingress.enabled)
                && self.expose.ingress.enabled && has(self.expose.router) && has(self.expose.router.ingress))'
            - message: spec.replicas cannot be set when spec.scale.enabled is true
              rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                && has(self.replicas))'
          status:
            description: NemoEvaluatorStatus defines the observed state of NemoEvaluator.
            properties:
              availableReplicas:
                format: int32
                type: integer
              conditions:
                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:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nemoguardrails.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nemoguardrails.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NemoGuardrail
    listKind: NemoGuardrailList
    plural: nemoguardrails
    singular: nemoguardrail
  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: NemoGuardrail is the Schema for the NemoGuardrail 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: NemoGuardrailSpec defines the desired state of NemoGuardrail.
            properties:
              affinity:
                description: Affinity is a group of affinity scheduling rules.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node matches the corresponding matchExpressions; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: |-
                            An empty preferred scheduling term matches all objects with implicit weight 0
                            (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        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 an update), the system
                          may or may not try to eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: |-
                                A null or empty node selector term matches no objects. The requirements of
                                them are ANDed.
                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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.
                              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.
                              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
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the anti-affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and subtracting
                          "weight" from 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.
                                  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.
                                  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 anti-affinity requirements specified by this field are not met at
                          scheduling time, the pod will not be scheduled onto the node.
                          If the anti-affinity requirements specified by this field cease to be met
                          at some point during pod execution (e.g. due to a pod label update), the
                          system may or may not try to eventually evict the pod from its node.
                          When there are multiple elements, the lists of nodes corresponding to each
                          podAffinityTerm are intersected, i.e. all terms must be satisfied.
                        items:
                          description: |-
                            Defines a set of pods (namely those matching the labelSelector
                            relative to the given namespace(s)) that this pod should be
                            co-located (affinity) or not co-located (anti-affinity) with,
                            where co-located is defined as running on a node whose value of
                            the label with key <topologyKey> matches that of any node on which
                            a pod of the set of pods is running
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                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.
                              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.
                              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
                type: object
              annotations:
                additionalProperties:
                  type: string
                type: object
              args:
                items:
                  type: string
                type: array
              command:
                items:
                  type: string
                type: array
              configStore:
                description: ConfigStore stores the config of the guardrail service
                properties:
                  configMap:
                    description: ConfigMapRef with a valid config map name.
                    properties:
                      name:
                        minLength: 1
                        type: string
                    required:
                    - name
                    type: object
                  pvc:
                    description: PersistentVolumeClaim defines the attributes of PVC.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the PVC
                        type: object
                      create:
                        description: |-
                          Create specifies whether to create a new PersistentVolumeClaim (PVC).
                          If set to false, an existing PVC must be referenced via the `Name` field.
                        type: boolean
                      name:
                        description: Name of the PVC to use. Required if `Create`
                          is false (i.e., using an existing 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 or
                          a default storage class is set in the cluster.
                        type: string
                      subPath:
                        description: SubPath is the path inside the PVC that should
                          be mounted
                        type: string
                      volumeAccessMode:
                        description: VolumeAccessMode is the volume access mode of
                          the PVC
                        type: string
                    type: object
                type: object
                x-kubernetes-validations:
                - message: Cannot set both ConfigMap and PVC in ConfigStore
                  rule: '!(has(self.configMap) && has(self.pvc))'
              databaseConfig:
                description: DatabaseConfig stores the metadata for the guardrail
                  service.
                properties:
                  credentials:
                    description: |-
                      DatabaseCredentials stores the configuration to retrieve the database credentials.
                      Required, must not be nil.
                    properties:
                      passwordKey:
                        default: password
                        description: |-
                          PasswordKey is the name of the key in the `CredentialsSecret` secret for the database credentials.
                          Defaults to "password".
                        type: string
                      secretName:
                        description: |-
                          SecretName is the name of the secret which has the database credentials for a NEMO service user.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                      user:
                        description: |-
                          User is the non-root username for a NEMO Service in the database.
                          Required, must not be empty.
                        minLength: 1
                        type: string
                    required:
                    - secretName
                    - user
                    type: object
                  databaseName:
                    description: |-
                      DatabaseName is the database name for a NEMO Service.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  host:
                    description: |-
                      Host is the hostname of the database.
                      Required, must not be empty.
                    minLength: 1
                    type: string
                  port:
                    default: 5432
                    description: |-
                      Port is the port where the database is reachable at.
                      If specified, this must be a valid port number, 0 < databasePort < 65536.
                      Defaults to 5432.
                    format: int32
                    maximum: 65535
                    minimum: 1
                    type: integer
                required:
                - credentials
                - databaseName
                - host
                type: object
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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: DEPRECATED ExposeV1 defines attributes to expose the
                  service.
                properties:
                  ingress:
                    description: |-
                      Deprecated: Use .spec.expose.router.ingress instead.
                      IngressV1 defines attributes for ingress
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      enabled:
                        type: boolean
                      spec:
                        properties:
                          host:
                            type: string
                          ingressClassName:
                            pattern: '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'
                            type: string
                          paths:
                            items:
                              description: IngressPath defines attributes for ingress
                                paths.
                              properties:
                                path:
                                  default: /
                                  type: string
                                pathType:
                                  default: Prefix
                                  description: PathType represents the type of path
                                    referred to by a HTTPIngressPath.
                                  type: string
                              type: object
                            type: array
                        required:
                        - ingressClassName
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: spec cannot be nil when ingress is enabled
                      rule: (has(self.spec) && has(self.enabled) && self.enabled)
                        || !has(self.enabled) || !self.enabled
                  router:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the router, e.g. for ingress
                          class or gateway
                        type: object
                      eppConfig:
                        description: EPPConfig is the configuration for the endpoint
                          picker extension. This is field is currently only supported
                          for standalone inference platform only on NIMService.
                        properties:
                          config:
                            description: |-
                              Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                              The operator will marshal this to YAML and create a ConfigMap automatically.
                              Mutually exclusive with ConfigMapRef.
                              One of ConfigMapRef or Config must be specified (no default configuration).
                              Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                            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
                              data:
                                description: Data configures the DataLayer. It is
                                  required if the new DataLayer is enabled.
                                properties:
                                  sources:
                                    description: Sources is the list of sources to
                                      define to the DataLayer
                                    items:
                                      description: DataLayerSource contains the configuration
                                        of a DataSource of the DataLayer feature
                                      properties:
                                        extractors:
                                          description: |-
                                            Extractors specifies the list of Plugin instances to be associated with
                                            this Source. The entries are references to the names of entries of the Plugins
                                            defined in the configuration's Plugins section
                                          items:
                                            description: DataLayerExtractor contains
                                              the configuration of an Extractor of
                                              the DataLayer feature
                                            properties:
                                              pluginRef:
                                                description: |-
                                                  PluginRef specifies a partiular Plugin instance to be associated with
                                                  this Extractor. The reference is to the name of an entry of the Plugins
                                                  defined in the configuration's Plugins section
                                                type: string
                                            required:
                                            - pluginRef
                                            type: object
                                          type: array
                                        pluginRef:
                                          description: |-
                                            PluginRef specifies a partiular Plugin instance to be associated with
                                            this Source. The reference is to the name of an entry of the Plugins
                                            defined in the configuration's Plugins section
                                          type: string
                                      required:
                                      - extractors
                                      - pluginRef
                                      type: object
                                    type: array
                                required:
                                - sources
                                type: object
                              featureGates:
                                description: |-
                                  FeatureGates is a set of flags that enable various experimental features with the EPP.
                                  If omitted non of these experimental features will be enabled.
                                items:
                                  type: string
                                type: array
                              kind:
                                description: |-
                                  Kind is a string value representing the REST resource this object represents.
                                  Servers may infer this from the endpoint the client submits requests to.
                                  Cannot be updated.
                                  In CamelCase.
                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                type: string
                              plugins:
                                description: Plugins is the list of plugins that will
                                  be instantiated.
                                items:
                                  description: |-
                                    PluginSpec contains the information that describes a plugin that
                                    will be instantiated.
                                  properties:
                                    name:
                                      description: |-
                                        Name provides a name for plugin entries to reference. If
                                        omitted, the value of the Plugin's Type field will be used.
                                      type: string
                                    parameters:
                                      description: |-
                                        Parameters are the set of parameters to be passed to the plugin's
                                        factory function. The factory function is responsible
                                        to parse the parameters.
                                      format: byte
                                      type: string
                                    type:
                                      description: Type specifies the plugin type
                                        to be instantiated.
                                      type: string
                                  required:
                                  - type
                                  type: object
                                type: array
                              saturationDetector:
                                description: |-
                                  SaturationDetector when present specifies the configuration of the
                                  Saturation detector. If not present, default values are used.
                                properties:
                                  kvCacheUtilThreshold:
                                    description: |-
                                      KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                      which a pod is considered to have insufficient capacity.
                                    type: number
                                  metricsStalenessThreshold:
                                    description: |-
                                      MetricsStalenessThreshold defines how old a pod's metrics can be.
                                      If a pod's metrics are older than this, it might be excluded from
                                      "good capacity" considerations or treated as having no capacity for
                                      safety.
                                    type: string
                                  queueDepthThreshold:
                                    description: |-
                                      QueueDepthThreshold defines the backend waiting queue size above which a
                                      pod is considered to have insufficient capacity for new requests.
                                    type: integer
                                type: object
                              schedulingProfiles:
                                description: |-
                                  SchedulingProfiles is the list of named SchedulingProfiles
                                  that will be created.
                                items:
                                  description: |-
                                    SchedulingProfile contains the information to create a SchedulingProfile
                                    entry to be used by the scheduler.
                                  properties:
                                    name:
                                      description: Name specifies the name of this
                                        SchedulingProfile
                                      type: string
                                    plugins:
                                      description: |-
                                        Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                        to the appropriate "slots" based on their type.
                                      items:
                                        description: |-
                                          SchedulingPlugin describes a plugin that will be associated with a
                                          SchedulingProfile entry.
                                        properties:
                                          pluginRef:
                                            description: |-
                                              PluginRef specifies a partiular Plugin instance to be associated with
                                              this SchedulingProfile. The reference is to the name of an
                                              entry of the Plugins defined in the configuration's Plugins
                                              section
                                            type: string
                                          weight:
                                            description: Weight is the weight fo be
                                              used if this plugin is a Scorer.
                                            type: integer
                                        required:
                                        - pluginRef
                                        type: object
                                      type: array
                                  required:
                                  - name
                                  - plugins
                                  type: object
                                type: array
                            required:
                            - plugins
                            - schedulingProfiles
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          configMapRef:
                            description: |-
                              ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                              The ConfigMap should contain EndpointPickerConfig YAML.
                              Mutually exclusive with Config.
                            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
                          containerSpec:
                            description: ContainerSpec is the specification for the
                              EPP container.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          livenessProbe:
                            description: LivenessProbe is the liveness probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          ports:
                            description: Ports is the list of ports to expose for
                              the EPP container.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: |-
                                    Number of port to expose on the pod's IP address.
                                    This must be a valid port number, 0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: |-
                                    Number of port to expose on the host.
                                    If specified, this must be a valid port number, 0 < x < 65536.
                                    If HostNetwork is specified, this must match ContainerPort.
                                    Most containers do not need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: |-
                                    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                    named port in a pod must have a unique name. Name for the port that can be
                                    referred to by services.
                                  type: string
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol for port. Must be UDP, TCP, or SCTP.
                                    Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                          readinessProbe:
                            description: ReadinessProbe is the readiness probe for
                              the EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          startupProbe:
                            description: StartupProbe is the startup probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to a
                                  TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: |-
                                      Number or name of the port to access on the container.
                                      Number must be in the range 1 to 65535.
                                      Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: |-
                                  Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                  The grace period is the duration in seconds after the processes running in the pod are sent
                                  a termination signal and the time when the processes are forcibly halted with a kill signal.
                                  Set this value longer than the expected cleanup time for your process.
                                  If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                  value overrides the value provided by the pod spec.
                                  Value must be non-negative integer. The value zero indicates stop immediately via
                                  the kill signal (no opportunity to shut down).
                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: |-
                                  Number of seconds after which the probe times out.
                                  Defaults to 1 second. Minimum value is 1.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                format: int32
                                type: integer
                            type: object
                        required:
                        - containerSpec
                        type: object
                        x-kubernetes-validations:
                        - message: specify either configMapRef or config, not both
                          rule: '!(has(self.configMapRef) && has(self.config))'
                      gateway:
                        description: Gateway is the gateway to use for the created
                          HTTPRoute.
                        properties:
                          backendRef:
                            description: BackendRef is a reference to a backend to
                              forward matched requests to.
                            properties:
                              group:
                                default: ""
                                description: |-
                                  Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                  When unspecified or empty string, core API group is inferred.
                                maxLength: 253
                                pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                type: string
                              kind:
                                default: Service
                                description: |-
                                  Kind is the Kubernetes resource kind of the referent. For example
                                  "Service".

                                  Defaults to "Service" when not specified.

                                  ExternalName services can refer to CNAME DNS records that may live
                                  outside of the cluster and as such are difficult to reason about in
                                  terms of conformance. They also may not be safe to forward to (see
                                  CVE-2021-25740 for more information). Implementations SHOULD NOT
                                  support ExternalName Services.

                                  Support: Core (Services with a type other than ExternalName)

                                  Support: Implementation-specific (Services with type ExternalName)
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                type: string
                              name:
                                description: Name is the name of the referent.
                                maxLength: 253
                                minLength: 1
                                type: string
                              namespace:
                                description: |-
                                  Namespace is the namespace of the backend. When unspecified, the local
                                  namespace is inferred.

                                  Note that when a namespace different than the local namespace is specified,
                                  a ReferenceGrant object is required in the referent namespace to allow that
                                  namespace's owner to accept the reference. See the ReferenceGrant
                                  documentation for details.

                                  Support: Core
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                type: string
                              port:
                                description: |-
                                  Port specifies the destination port number to use for this resource.
                                  Port is required when the referent is a Kubernetes Service. In this
                                  case, the port number is the service port number, not the target port.
                                  For other resources, destination port might be derived from the referent
                                  resource or this field.
                                format: int32
                                maximum: 65535
                                minimum: 1
                                type: integer
                              weight:
                                default: 1
                                description: |-
                                  Weight specifies the proportion of requests forwarded to the referenced
                                  backend. This is computed as weight/(sum of all weights in this
                                  BackendRefs list). For non-zero values, there may be some epsilon from
                                  the exact proportion defined here depending on the precision an
                                  implementation supports. Weight is not a percentage and the sum of
                                  weights does not need to equal 100.

                                  If only one backend is specified and it has a weight greater than 0, 100%
                                  of the traffic is forwarded to that backend. If weight is set to 0, no
                                  traffic should be forwarded for this entry. If unspecified, weight
                                  defaults to 1.

                                  Support for this field varies based on the context where used.
                                format: int32
                                maximum: 1000000
                                minimum: 0
                                type: integer
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: Must have port for Service reference
                              rule: '(size(self.group) == 0 && self.kind == ''Service'')
                                ? has(self.port) : true'
                          grpcRoutesEnabled:
                            default: false
                            description: GRPCRoutesEnabled is a flag to enable GRPCRoutes
                              for the created gateway.
                            type: boolean
                          httpRoutesEnabled:
                            default: true
                            description: HTTPRoutesEnabled is a flag to enable HTTPRoutes
                              for the created gateway.
                            type: boolean
                          name:
                            description: Name of the gateway
                            minLength: 1
                            type: string
                          namespace:
                            description: Namespace of the gateway
                            minLength: 1
                            type: string
                        required:
                        - name
                        - namespace
                        type: object
                      hostDomainName:
                        description: |-
                          HostDomainName is the domain name of the hostname matched by the router.
                          The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                          eg. example.com for "<nimServiceName>.<namespace>.example.com"
                        maxLength: 63
                        minLength: 1
                        pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                        type: string
                      ingress:
                        description: Ingress is the ingress controller to use for
                          the created ingress.
                        properties:
                          ingressClass:
                            description: IngressClass is the ingress class to use
                              for the created ingress.
                            minLength: 1
                            type: string
                          tlsSecretName:
                            description: TLSSecretName is the name of the secret containing
                              the TLS certificate and key.
                            type: string
                        required:
                        - ingressClass
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: 'unsupported field: spec.expose.router.gateway.grpcRoutesEnabled'
                      rule: '!(has(self.gateway) && self.gateway.grpcRoutesEnabled)'
                    - message: ingress and gateway cannot be specified together
                      rule: '!(has(self.gateway) && has(self.ingress))'
                  service:
                    description: Service defines attributes to create a service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      grpcPort:
                        description: |-
                          GRPCPort is the GRPC serving port
                          Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      metricsPort:
                        description: |-
                          MetricsPort is the port for metrics
                          Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      name:
                        description: Override the default service name
                        type: string
                      port:
                        default: 8000
                        description: 'Port is the main api serving port (default:
                          8000)'
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      type:
                        description: Service Type string describes ingress methods
                          for a service
                        type: string
                    type: object
                type: object
                x-kubernetes-validations:
                - message: 'unsupported field: spec.expose.service.grpcPort'
                  rule: '!(has(self.service.grpcPort))'
                - message: 'unsupported field: spec.expose.service.metricsPort'
                  rule: '!(has(self.service.metricsPort))'
              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
                required:
                - repository
                - tag
                type: object
              labels:
                additionalProperties:
                  type: string
                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
              nimEndpoint:
                properties:
                  apiKeyKey:
                    default: NIM_ENDPOINT_API_KEY
                    description: The key in the secret that contains the API key for
                      accessing the base URL endpoint. Defaults to `NIM_ENDPOINT_API_KEY`
                    type: string
                  apiKeySecret:
                    description: |-
                      The name of the secret that contains the API key for accessing the base URL endpoint. This is needed if the base URL is for a NIM proxy.
                      When using NVIDIA's hosted NIM proxy `https://integrate.api.nvidia.com/v1` as the base URL, the API key can be retrieved from https://build.nvidia.com/explore/discover
                    type: string
                  baseURL:
                    description: |-
                      The base URL for the NIM service. This can either be the endpoint for a single NIM or a NIM proxy.
                      A NIM proxy endpoint is needed if you need to run guardrail for serving multiple NIMs.
                    format: uri
                    minLength: 1
                    pattern: ^https?:\/\/[^\s]+\/v1\/?$
                    type: string
                required:
                - baseURL
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                type: object
              otel:
                description: OpenTelemetry Settings
                properties:
                  disableLogging:
                    description: DisableLogging indicates whether Python logging auto-instrumentation
                      should be disabled.
                    type: boolean
                  enabled:
                    description: Enabled indicates if opentelemetry collector and
                      tracing are enabled
                    type: boolean
                  excludedUrls:
                    default:
                    - health
                    description: ExcludedUrls defines URLs to be excluded from tracing.
                    items:
                      type: string
                    type: array
                  exporterConfig:
                    description: ExporterConfig defines configuration for different
                      OTel exporters
                    properties:
                      logsExporter:
                        default: otlp
                        description: 'LogsExporter sets the logs exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                      metricsExporter:
                        default: otlp
                        description: 'MetricsExporter sets the metrics exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                      tracesExporter:
                        default: otlp
                        description: 'TracesExporter sets the traces exporter: (otlp,
                          console, none).'
                        enum:
                        - otlp
                        - console
                        - none
                        type: string
                    type: object
                  exporterOtlpEndpoint:
                    description: ExporterOtlpEndpoint is the OTLP collector endpoint.
                    type: string
                  logLevel:
                    default: INFO
                    description: LogLevel defines the log level (e.g., INFO, DEBUG).
                    enum:
                    - INFO
                    - DEBUG
                    type: string
                type: object
              podAffinity:
                description: 'Deprecated: Use Affinity instead.'
                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.
                              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.
                              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.
                          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.
                          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
              replicas:
                format: int32
                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 field depends on 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
              runtimeClass:
                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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      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.
                              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.
                              type: string
                          required:
                          - type
                          type: object
                        type: array
                      minReplicas:
                        default: 1
                        format: int32
                        minimum: 1
                        type: integer
                    required:
                    - maxReplicas
                    type: object
                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:
            - image
            type: object
            x-kubernetes-validations:
            - message: .spec.expose.ingress is deprecated, and will be removed in
                a future release. If .spec.expose.ingress is set, please do not set
                .spec.expose.router.ingress.
              rule: '!(has(self.expose.ingress) && has(self.expose.ingress.enabled)
                && self.expose.ingress.enabled && has(self.expose.router) && has(self.expose.router.ingress))'
            - message: spec.replicas cannot be set when spec.scale.enabled is true
              rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                && has(self.replicas))'
          status:
            description: NemoGuardrailStatus defines the observed state of NemoGuardrail.
            properties:
              availableReplicas:
                format: int32
                type: integer
              conditions:
                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:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nimbuilds.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nimbuilds.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NIMBuild
    listKind: NIMBuildList
    plural: nimbuilds
    singular: nimbuild
  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: NIMBuild is the Schema for the nimcaches 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: NIMBuildSpec to build optimized trtllm engines with given
              model config and weights.
            properties:
              annotations:
                additionalProperties:
                  type: string
                type: object
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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
              image:
                description: Image defines image attributes.
                properties:
                  pullPolicy:
                    type: string
                  pullSecrets:
                    items:
                      type: string
                    type: array
                  repository:
                    type: string
                  tag:
                    type: string
                required:
                - repository
                - tag
                type: object
              labels:
                additionalProperties:
                  type: string
                type: object
              modelName:
                description: ModelName is the name given to the locally built engine.
                type: string
              nimCache:
                description: NIMCache is Reference to the model weights from NIMCache
                properties:
                  name:
                    type: string
                  profile:
                    type: string
                required:
                - name
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                description: NodeSelector is the node selector labels to schedule
                  the caching job.
                type: object
              resources:
                description: Resources is the resource requirements for the NIMBuild
                  pod.
                properties:
                  limits:
                    additionalProperties:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    description: |-
                      Limits describes the maximum amount of compute resources allowed.
                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                    type: object
                  requests:
                    additionalProperties:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    description: |-
                      Requests describes the minimum amount of compute resources required.
                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
                      otherwise to an implementation-defined value. Requests cannot exceed Limits.
                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                    type: object
                type: object
              tolerations:
                description: Tolerations for running the job to cache the NIM model
                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
            required:
            - image
            - nimCache
            type: object
            x-kubernetes-validations:
            - message: spec is immutable
              rule: self == oldSelf
          status:
            description: NIMBuildStatus defines the observed state of NIMBuild.
            properties:
              conditions:
                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
              inputProfile:
                description: NIMProfile defines the profiles that were cached.
                properties:
                  config:
                    additionalProperties:
                      type: string
                    type: object
                  model:
                    type: string
                  name:
                    type: string
                  release:
                    type: string
                type: object
              outputProfile:
                description: NIMProfile defines the profiles that were cached.
                properties:
                  config:
                    additionalProperties:
                      type: string
                    type: object
                  model:
                    type: string
                  name:
                    type: string
                  release:
                    type: string
                type: object
              state:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nimcaches.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nimcaches.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NIMCache
    listKind: NIMCacheList
    plural: nimcaches
    singular: nimcache
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.state
      name: Status
      type: string
    - jsonPath: .status.pvc
      name: PVC
      type: string
    - format: date-time
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: NIMCache is the Schema for the nimcaches 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: NIMCacheSpec defines the desired state of NIMCache.
            properties:
              certConfig:
                description: |-
                  CertConfig is the name of the ConfigMap containing the custom certificates.
                  for secure communication.

                  Deprecated: use `Proxy` instead to configure custom certificates for using proxy.
                properties:
                  mountPath:
                    description: MountPath is the path where the certificates should
                      be mounted in the container.
                    type: string
                  name:
                    description: Name of the ConfigMap containing the certificate
                      data.
                    type: string
                required:
                - mountPath
                - name
                type: object
              env:
                description: Env are the additional custom environment variabes for
                  the caching job
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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
              groupID:
                description: GroupID is the group ID for the caching job
                format: int64
                type: integer
              initContainers:
                items:
                  description: NIMContainerSpec defines the specification for a container
                    within a NIM workload.
                  properties:
                    args:
                      description: Args are the arguments passed to the container
                        command at runtime.
                      items:
                        type: string
                      type: array
                    command:
                      description: Command is the entrypoint array. If not specified,
                        the image's default entrypoint is used.
                      items:
                        type: string
                      type: array
                    env:
                      description: Env is the list of environment variables to set
                        in the container.
                      items:
                        description: EnvVar represents an environment variable present
                          in a Container.
                        properties:
                          name:
                            description: |-
                              Name of the environment variable.
                              May consist of any printable ASCII characters except '='.
                            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
                              fileKeyRef:
                                description: |-
                                  FileKeyRef selects a key of the env file.
                                  Requires the EnvFiles feature gate to be enabled.
                                properties:
                                  key:
                                    description: |-
                                      The key within the env file. An invalid key will prevent the pod from starting.
                                      The keys defined within a source may consist of any printable ASCII characters except '='.
                                      During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                    type: string
                                  optional:
                                    default: false
                                    description: |-
                                      Specify whether the file or its key must be defined. If the file or key
                                      does not exist, then the env var is not published.
                                      If optional is set to true and the specified key does not exist,
                                      the environment variable will not be set in the Pod's containers.

                                      If optional is set to false and the specified key does not exist,
                                      an error will be returned during Pod creation.
                                    type: boolean
                                  path:
                                    description: |-
                                      The path within the volume from which to select the file.
                                      Must be relative and may not contain the '..' path or start with '..'.
                                    type: string
                                  volumeName:
                                    description: The name of the volume mount containing
                                      the env file.
                                    type: string
                                required:
                                - key
                                - path
                                - volumeName
                                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
                    image:
                      description: Image specifies the container image to run.
                      properties:
                        pullPolicy:
                          type: string
                        pullSecrets:
                          items:
                            type: string
                          type: array
                        repository:
                          type: string
                        tag:
                          type: string
                      required:
                      - repository
                      - tag
                      type: object
                    name:
                      description: Name is the unique name of the container within
                        the pod.
                      type: string
                    workingDir:
                      description: WorkingDir is the container's working directory.
                        If unset, the container runtime's default is used.
                      type: string
                  required:
                  - image
                  - name
                  type: object
                type: array
              nodeSelector:
                additionalProperties:
                  type: string
                description: NodeSelector is the node selector labels to schedule
                  the caching job.
                type: object
              proxy:
                description: ProxySpec defines the proxy configuration for NIMService.
                properties:
                  certConfigMap:
                    type: string
                  httpProxy:
                    type: string
                  httpsProxy:
                    type: string
                  noProxy:
                    type: string
                type: object
              resources:
                description: Resources defines the minimum resources required for
                  the caching job to run(cpu, memory, gpu).
                properties:
                  cpu:
                    anyOf:
                    - type: integer
                    - type: string
                    description: CPU indicates the minimum number of CPUs to use while
                      caching NIM
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  memory:
                    anyOf:
                    - type: integer
                    - type: string
                    description: |-
                      Memory indicates the minimum amount of memory to use while caching NIM
                      Valid values are numbers followed by one of the suffixes Ki, Mi, Gi, or Ti (e.g. "4Gi", "4096Mi").
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                type: object
              runtimeClassName:
                description: RuntimeClassName is the runtimeclass for the caching
                  job
                type: string
              source:
                description: Source is the NIM model source to cache
                properties:
                  dataStore:
                    description: DataStore represents models stored in NVIDIA NeMo
                      DataStore service
                    properties:
                      authSecret:
                        description: AuthSecret is the name of the secret containing
                          the "HF_TOKEN" token
                        minLength: 1
                        type: string
                      datasetName:
                        description: DatasetName is the name of the dataset
                        type: string
                      endpoint:
                        description: Endpoint is the HuggingFace endpoint from NeMo
                          DataStore
                        pattern: ^https?://.*/v1/hf/?$
                        type: string
                      modelName:
                        description: ModelName is the name of the model
                        type: string
                      modelPuller:
                        description: ModelPuller is the containerized huggingface-cli
                          image to pull the data
                        minLength: 1
                        type: string
                      namespace:
                        default: default
                        description: Namespace is the namespace within NeMo DataStore
                        type: string
                      pullSecret:
                        description: PullSecret is the name of the image pull secret
                          for the modelPuller image
                        minLength: 1
                        type: string
                      revision:
                        description: Revision is the revision of the object to be
                          cached. This is either a commit hash, branch name or tag.
                        minLength: 1
                        type: string
                    required:
                    - authSecret
                    - endpoint
                    - modelPuller
                    - namespace
                    - pullSecret
                    type: object
                    x-kubernetes-validations:
                    - message: Exactly one of modelName or datasetName must be defined
                      rule: '(has(self.modelName) ? 1 : 0) + (has(self.datasetName)
                        ? 1 : 0) == 1'
                  hf:
                    description: HuggingFaceHub represents models stored in HuggingFace
                      Hub
                    properties:
                      authSecret:
                        description: AuthSecret is the name of the secret containing
                          the "HF_TOKEN" token
                        minLength: 1
                        type: string
                      datasetName:
                        description: DatasetName is the name of the dataset
                        type: string
                      endpoint:
                        description: Endpoint is the HuggingFace endpoint
                        pattern: ^https?://.*$
                        type: string
                      modelName:
                        description: ModelName is the name of the model
                        type: string
                      modelPuller:
                        description: ModelPuller is the containerized huggingface-cli
                          image to pull the data
                        minLength: 1
                        type: string
                      namespace:
                        description: Namespace is the namespace within the HuggingFace
                          Hub
                        minLength: 1
                        type: string
                      pullSecret:
                        description: PullSecret is the name of the image pull secret
                          for the modelPuller image
                        minLength: 1
                        type: string
                      revision:
                        description: Revision is the revision of the object to be
                          cached. This is either a commit hash, branch name or tag.
                        minLength: 1
                        type: string
                    required:
                    - authSecret
                    - endpoint
                    - modelPuller
                    - namespace
                    - pullSecret
                    type: object
                    x-kubernetes-validations:
                    - message: Exactly one of modelName or datasetName must be defined
                      rule: '(has(self.modelName) ? 1 : 0) + (has(self.datasetName)
                        ? 1 : 0) == 1'
                  ngc:
                    description: NGCSource represents models stored in NGC
                    properties:
                      authSecret:
                        description: The name of an existing pull secret containing
                          the NGC_API_KEY
                        type: string
                      model:
                        description: Model spec for caching
                        properties:
                          buildable:
                            description: Buildable indicates generic model profiles
                              that can be optimized with an NVIDIA engine for any
                              GPUs
                            type: boolean
                          engine:
                            description: Engine is the backend engine (tensorrt_llm,
                              vllm)
                            type: string
                          gpus:
                            description: GPU is the spec for matching GPUs for caching
                              optimized models
                            items:
                              description: GPUSpec is the spec required to cache models
                                for selected gpu type.
                              properties:
                                ids:
                                  description: IDs are the device-ids for a specific
                                    GPU SKU
                                  items:
                                    type: string
                                  type: array
                                product:
                                  description: Product is the GPU product string (h100,
                                    a100, l40s)
                                  type: string
                              type: object
                            type: array
                          lora:
                            description: Lora indicates a finetuned model with LoRa
                              adapters
                            type: boolean
                          precision:
                            description: Precision is the precision for model quantization
                            type: string
                          profiles:
                            description: Profiles are the specific model profiles
                              to cache. When these are provided, rest of the model
                              parameters for profile selection are ignored
                            items:
                              type: string
                            type: array
                          qosProfile:
                            description: QoSProfile is the supported QoS profile types
                              for the models (throughput, latency)
                            type: string
                          tensorParallelism:
                            description: TensorParallelism is the minimum GPUs required
                              for the model computations
                            type: string
                        type: object
                      modelEndpoint:
                        description: ModelEndpoint is the endpoint for the model to
                          be cached for Universal NIM
                        type: string
                      modelPuller:
                        description: ModelPuller is the container image that can pull
                          the model
                        type: string
                        x-kubernetes-validations:
                        - message: modelPuller is an immutable field. Please create
                            a new NIMCache resource instead when you want to change
                            this container.
                          rule: self == oldSelf
                      pullSecret:
                        description: PullSecret to pull the model puller image
                        type: string
                    required:
                    - authSecret
                    - modelPuller
                    type: object
                    x-kubernetes-validations:
                    - message: Only one of 'model' or 'modelEndpoint' can be specified
                      rule: '!(has(self.model) && has(self.modelEndpoint))'
                type: object
                x-kubernetes-validations:
                - message: Exactly one of ngc, dataStore, or hf must be defined
                  rule: '(has(self.ngc) ? 1 : 0) + (has(self.dataStore) ? 1 : 0) +
                    (has(self.hf) ? 1 : 0) == 1'
              storage:
                description: Storage is the target storage for caching NIM model
                properties:
                  hostPath:
                    description: |-
                      HostPath is the host path volume for caching NIM

                      Deprecated: use PVC instead.
                    type: string
                  pvc:
                    description: PersistentVolumeClaim is the pvc volume used for
                      caching NIM
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the PVC
                        type: object
                      create:
                        description: |-
                          Create specifies whether to create a new PersistentVolumeClaim (PVC).
                          If set to false, an existing PVC must be referenced via the `Name` field.
                        type: boolean
                      name:
                        description: Name of the PVC to use. Required if `Create`
                          is false (i.e., using an existing 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 or
                          a default storage class is set in the cluster.
                        type: string
                      subPath:
                        description: SubPath is the path inside the PVC that should
                          be mounted
                        type: string
                      volumeAccessMode:
                        description: VolumeAccessMode is the volume access mode of
                          the PVC
                        type: string
                    type: object
                type: object
              tolerations:
                description: Tolerations for running the job to cache the NIM model
                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:
                description: UserID is the user ID for the caching job
                format: int64
                type: integer
            required:
            - source
            - storage
            type: object
          status:
            description: NIMCacheStatus defines the observed state of NIMCache.
            properties:
              conditions:
                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
              profiles:
                items:
                  description: NIMProfile defines the profiles that were cached.
                  properties:
                    config:
                      additionalProperties:
                        type: string
                      type: object
                    model:
                      type: string
                    name:
                      type: string
                    release:
                      type: string
                  type: object
                type: array
              pvc:
                type: string
              state:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nimpipelines.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  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:
                        affinity:
                          description: Affinity is a group of affinity scheduling
                            rules.
                          properties:
                            nodeAffinity:
                              description: Describes node affinity scheduling rules
                                for the pod.
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  description: |-
                                    The scheduler will prefer to schedule pods to nodes that satisfy
                                    the affinity expressions specified by this field, but it may choose
                                    a node that violates one or more of the expressions. The node that is
                                    most preferred is the one with the greatest sum of weights, i.e.
                                    for each node that meets all of the scheduling requirements (resource
                                    request, requiredDuringScheduling affinity expressions, etc.),
                                    compute a sum by iterating through the elements of this field and adding
                                    "weight" to the sum if the node matches the corresponding matchExpressions; the
                                    node(s) with the highest sum are the most preferred.
                                  items:
                                    description: |-
                                      An empty preferred scheduling term matches all objects with implicit weight 0
                                      (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                                    properties:
                                      preference:
                                        description: A node selector term, associated
                                          with the corresponding weight.
                                        properties:
                                          matchExpressions:
                                            description: A list of node selector requirements
                                              by node's labels.
                                            items:
                                              description: |-
                                                A node selector requirement is a selector that contains values, a key, and an operator
                                                that relates the key and values.
                                              properties:
                                                key:
                                                  description: The label key that
                                                    the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    Represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                  type: string
                                                values:
                                                  description: |-
                                                    An array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. If the operator is Gt or Lt, the values
                                                    array must have a single element, which will be interpreted as an integer.
                                                    This array is replaced during a strategic merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchFields:
                                            description: A list of node selector requirements
                                              by node's fields.
                                            items:
                                              description: |-
                                                A node selector requirement is a selector that contains values, a key, and an operator
                                                that relates the key and values.
                                              properties:
                                                key:
                                                  description: The label key that
                                                    the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    Represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                  type: string
                                                values:
                                                  description: |-
                                                    An array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. If the operator is Gt or Lt, the values
                                                    array must have a single element, which will be interpreted as an integer.
                                                    This array is replaced during a strategic merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      weight:
                                        description: Weight associated with matching
                                          the corresponding nodeSelectorTerm, in the
                                          range 1-100.
                                        format: int32
                                        type: integer
                                    required:
                                    - preference
                                    - weight
                                    type: object
                                  type: array
                                  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 an update), the system
                                    may or may not try to eventually evict the pod from its node.
                                  properties:
                                    nodeSelectorTerms:
                                      description: Required. A list of node selector
                                        terms. The terms are ORed.
                                      items:
                                        description: |-
                                          A null or empty node selector term matches no objects. The requirements of
                                          them are ANDed.
                                          The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                                        properties:
                                          matchExpressions:
                                            description: A list of node selector requirements
                                              by node's labels.
                                            items:
                                              description: |-
                                                A node selector requirement is a selector that contains values, a key, and an operator
                                                that relates the key and values.
                                              properties:
                                                key:
                                                  description: The label key that
                                                    the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    Represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                  type: string
                                                values:
                                                  description: |-
                                                    An array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. If the operator is Gt or Lt, the values
                                                    array must have a single element, which will be interpreted as an integer.
                                                    This array is replaced during a strategic merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchFields:
                                            description: A list of node selector requirements
                                              by node's fields.
                                            items:
                                              description: |-
                                                A node selector requirement is a selector that contains values, a key, and an operator
                                                that relates the key and values.
                                              properties:
                                                key:
                                                  description: The label key that
                                                    the selector applies to.
                                                  type: string
                                                operator:
                                                  description: |-
                                                    Represents a key's relationship to a set of values.
                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                                  type: string
                                                values:
                                                  description: |-
                                                    An array of string values. If the operator is In or NotIn,
                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                                    the values array must be empty. If the operator is Gt or Lt, the values
                                                    array must have a single element, which will be interpreted as an integer.
                                                    This array is replaced during a strategic merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  required:
                                  - nodeSelectorTerms
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            podAffinity:
                              description: Describes pod affinity scheduling rules
                                (e.g. co-locate this pod in the same node, zone, etc.
                                as some other pod(s)).
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  description: |-
                                    The scheduler will prefer to schedule pods to nodes that satisfy
                                    the affinity expressions specified by this field, but it may choose
                                    a node that violates one or more of the expressions. The node that is
                                    most preferred is the one with the greatest sum of weights, i.e.
                                    for each node that meets all of the scheduling requirements (resource
                                    request, requiredDuringScheduling affinity expressions, etc.),
                                    compute a sum by iterating through the elements of this field and adding
                                    "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                                    node(s) with the highest sum are the most preferred.
                                  items:
                                    description: The weights of all of the matched
                                      WeightedPodAffinityTerm fields are added per-node
                                      to find the most preferred node(s)
                                    properties:
                                      podAffinityTerm:
                                        description: Required. A pod affinity term,
                                          associated with the corresponding weight.
                                        properties:
                                          labelSelector:
                                            description: |-
                                              A label query over a set of resources, in this case pods.
                                              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.
                                            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.
                                            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.
                                        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.
                                        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
                            podAntiAffinity:
                              description: Describes pod anti-affinity scheduling
                                rules (e.g. avoid putting this pod in the same node,
                                zone, etc. as some other pod(s)).
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  description: |-
                                    The scheduler will prefer to schedule pods to nodes that satisfy
                                    the anti-affinity expressions specified by this field, but it may choose
                                    a node that violates one or more of the expressions. The node that is
                                    most preferred is the one with the greatest sum of weights, i.e.
                                    for each node that meets all of the scheduling requirements (resource
                                    request, requiredDuringScheduling anti-affinity expressions, etc.),
                                    compute a sum by iterating through the elements of this field and subtracting
                                    "weight" from 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.
                                            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.
                                            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 anti-affinity requirements specified by this field are not met at
                                    scheduling time, the pod will not be scheduled onto the node.
                                    If the anti-affinity requirements specified by this field cease to be met
                                    at some point during pod execution (e.g. due to a pod label update), the
                                    system may or may not try to eventually evict the pod from its node.
                                    When there are multiple elements, the lists of nodes corresponding to each
                                    podAffinityTerm are intersected, i.e. all terms must be satisfied.
                                  items:
                                    description: |-
                                      Defines a set of pods (namely those matching the labelSelector
                                      relative to the given namespace(s)) that this pod should be
                                      co-located (affinity) or not co-located (anti-affinity) with,
                                      where co-located is defined as running on a node whose value of
                                      the label with key <topologyKey> matches that of any node on which
                                      a pod of the set of pods is running
                                    properties:
                                      labelSelector:
                                        description: |-
                                          A label query over a set of resources, in this case pods.
                                          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.
                                        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.
                                        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
                          type: object
                        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
                        draResources:
                          description: DRAResources is the list of DRA resource claims
                            to be used for the NIMService deployment or leader worker
                            set.
                          items:
                            description: |-
                              DRAResource references exactly one ResourceClaim, either directly
                              or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim.

                              When creating the NIMService pods, it adds a name (`DNS_LABEL` format) to it
                              that uniquely identifies the DRA resource.
                            properties:
                              claimCreationSpec:
                                description: |-
                                  ClaimCreationSpec is the spec to auto-generate a DRA resource claim template.
                                  Only one of ClaimCreationSpec, ResourceClaimName or ResourceClaimTemplateName must be specified.
                                properties:
                                  devices:
                                    items:
                                      properties:
                                        attributeSelectors:
                                          description: AttributeSelectors defines
                                            the criteria which must be satisfied by
                                            the device attributes of a device.
                                          items:
                                            description: DRADeviceAttributeSelector
                                              defines the selector expression for
                                              a DRA device attribute.
                                            properties:
                                              key:
                                                description: |-
                                                  Key is the name of the device attribute.
                                                  This is either a qualified name or a simple name.
                                                  If it is a simple name, then it is assumed to be prefixed with the DRA driver name.
                                                  Eg: "gpu.nvidia.com/productName" is equivalent to "productName" if the driver name is "gpu.nvidia.com". Otherwise they're treated as 2 different attributes.
                                                maxLength: 64
                                                type: string
                                              op:
                                                default: Equal
                                                description: |-
                                                  Op is the operator to use for comparing the device attribute value. Supported operators are:
                                                  * Equal: The device attribute value must be equal to the value specified in the selector.
                                                  * NotEqual: The device attribute value must not be equal to the value specified in the selector.
                                                  * GreaterThan: The device attribute value must be greater than the value specified in the selector.
                                                  * GreaterThanOrEqual: The device attribute value must be greater than or equal to the value specified in the selector.
                                                  * LessThan: The device attribute value must be less than the value specified in the selector.
                                                  * LessThanOrEqual: The device attribute value must be less than or equal to the value specified in the selector.
                                                enum:
                                                - Equal
                                                - NotEqual
                                                - GreaterThan
                                                - GreaterThanOrEqual
                                                - LessThan
                                                - LessThanOrEqual
                                                type: string
                                              value:
                                                description: Value is the value to
                                                  compare against the device attribute.
                                                properties:
                                                  boolValue:
                                                    description: BoolValue is a true/false
                                                      value.
                                                    type: boolean
                                                  intValue:
                                                    description: IntValue is a number.
                                                    format: int32
                                                    type: integer
                                                  stringValue:
                                                    description: StringValue is a
                                                      string value.
                                                    maxLength: 64
                                                    type: string
                                                  versionValue:
                                                    description: VersionValue is a
                                                      semantic version according to
                                                      semver.org spec 2.0.0.
                                                    maxLength: 64
                                                    type: string
                                                type: object
                                            required:
                                            - key
                                            - op
                                            type: object
                                          type: array
                                        capacitySelectors:
                                          description: CapacitySelectors defines the
                                            criteria which must be satisfied by the
                                            device capacity of a device.
                                          items:
                                            description: DRAResourceQuantitySelector
                                              defines the selector expression for
                                              a DRA device capacity.
                                            properties:
                                              key:
                                                description: |-
                                                  Key is the name of the resource.
                                                  This is either a qualified name or a simple name.
                                                  If it is a simple name, then it is assumed to be prefixed with the DRA driver name.
                                                  Eg: "gpu.nvidia.com/memory" is equivalent to "memory" if the driver name is "gpu.nvidia.com". Otherwise they're treated as 2 different attributes.
                                                maxLength: 64
                                                type: string
                                              op:
                                                default: Equal
                                                description: |-
                                                  Op is the operator to use for comparing against the device capacity. Supported operators are:
                                                  * Equal: The resource quantity value must be equal to the value specified in the selector.
                                                  * NotEqual: The resource quantity value must not be equal to the value specified in the selector.
                                                  * GreaterThan: The resource quantity value must be greater than the value specified in the selector.
                                                  * GreaterThanOrEqual: The resource quantity value must be greater than or equal to the value specified in the selector.
                                                  * LessThan: The resource quantity value must be less than the value specified in the selector.
                                                  * LessThanOrEqual: The resource quantity value must be less than or equal to the value specified in the selector.
                                                enum:
                                                - Equal
                                                - NotEqual
                                                - GreaterThan
                                                - GreaterThanOrEqual
                                                - LessThan
                                                - LessThanOrEqual
                                                type: string
                                              value:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: Value is the resource
                                                  quantity to compare against.
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - key
                                            - op
                                            - value
                                            type: object
                                          type: array
                                        celExpressions:
                                          description: CELExpressions is a list of
                                            CEL expressions that must be satisfied
                                            by the DRA device.
                                          items:
                                            type: string
                                          type: array
                                        count:
                                          default: 1
                                          description: Count is the number of devices
                                            to request.
                                          format: int32
                                          type: integer
                                        deviceClassName:
                                          default: gpu.nvidia.com
                                          description: DeviceClassName references
                                            a specific DeviceClass to inherit configuration
                                            and selectors from.
                                          type: string
                                        driverName:
                                          default: gpu.nvidia.com
                                          description: |-
                                            DriverName is the name of the DRA driver providing the capacity information.
                                            Must be a DNS subdomain.
                                          maxLength: 253
                                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                                          type: string
                                        name:
                                          description: |-
                                            Name is the name of the device request to use in the generated claim spec.
                                            Must be a valid DNS_LABEL.
                                          maxLength: 253
                                          minLength: 1
                                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                                          type: string
                                      required:
                                      - count
                                      - deviceClassName
                                      - name
                                      type: object
                                      x-kubernetes-validations:
                                      - message: celExpressions must not be set if
                                          attributeSelectors or capacitySelectors
                                          are set
                                        rule: (has(self.celExpressions) && !(has(self.attributeSelectors)
                                          || has(self.capacitySelectors))) || !has(self.celExpressions)
                                    type: array
                                  generateName:
                                    description: GenerateName is an optional name
                                      prefix to use for generating the resource claim
                                      template.
                                    maxLength: 16
                                    minLength: 1
                                    type: string
                                required:
                                - devices
                                type: object
                              requests:
                                description: |-
                                  Requests is the list of requests in the referenced DRA resource claim.
                                  to be made available to the model container of the NIMService pods.

                                  If empty, everything from the claim is made available, otherwise
                                  only the result of this subset of requests.
                                items:
                                  minLength: 1
                                  type: string
                                type: array
                              resourceClaimName:
                                description: |-
                                  ResourceClaimName is the name of a DRA resource claim object in the same
                                  namespace as the NIMService.

                                  Exactly one of ResourceClaimName and ResourceClaimTemplateName must
                                  be set.
                                maxLength: 253
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                                type: string
                              resourceClaimTemplateName:
                                description: |-
                                  ResourceClaimTemplateName is the name of a DRA resource claim template
                                  object in the same namespace as the pods for this NIMService.

                                  The template will be used to create a new DRA resource claim, which will
                                  be bound to the pods created for this NIMService.

                                  Exactly one of ResourceClaimName and ResourceClaimTemplateName must
                                  be set.
                                maxLength: 253
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                                type: string
                            type: object
                            x-kubernetes-validations:
                            - message: exactly one of spec.resourceClaimName, spec.resourceClaimTemplateName,
                                or spec.claimCreationSpec must be set.
                              rule: '(has(self.resourceClaimName) ? 1 : 0) + (has(self.resourceClaimTemplateName)
                                ? 1 : 0) + (has(self.claimCreationSpec) ? 1 : 0) ==
                                1'
                          type: array
                        env:
                          items:
                            description: EnvVar represents an environment variable
                              present in a Container.
                            properties:
                              name:
                                description: |-
                                  Name of the environment variable.
                                  May consist of any printable ASCII characters except '='.
                                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
                                  fileKeyRef:
                                    description: |-
                                      FileKeyRef selects a key of the env file.
                                      Requires the EnvFiles feature gate to be enabled.
                                    properties:
                                      key:
                                        description: |-
                                          The key within the env file. An invalid key will prevent the pod from starting.
                                          The keys defined within a source may consist of any printable ASCII characters except '='.
                                          During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                        type: string
                                      optional:
                                        default: false
                                        description: |-
                                          Specify whether the file or its key must be defined. If the file or key
                                          does not exist, then the env var is not published.
                                          If optional is set to true and the specified key does not exist,
                                          the environment variable will not be set in the Pod's containers.

                                          If optional is set to false and the specified key does not exist,
                                          an error will be returned during Pod creation.
                                        type: boolean
                                      path:
                                        description: |-
                                          The path within the volume from which to select the file.
                                          Must be relative and may not contain the '..' path or start with '..'.
                                        type: string
                                      volumeName:
                                        description: The name of the volume mount
                                          containing the env file.
                                        type: string
                                    required:
                                    - key
                                    - path
                                    - volumeName
                                    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: 'Deprecated: Use .spec.expose.router instead.'
                              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
                            router:
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: Annotations for the router, e.g. for
                                    ingress class or gateway
                                  type: object
                                eppConfig:
                                  description: EPPConfig is the configuration for
                                    the endpoint picker extension. This is field is
                                    currently only supported for standalone inference
                                    platform only on NIMService.
                                  properties:
                                    config:
                                      description: |-
                                        Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                                        The operator will marshal this to YAML and create a ConfigMap automatically.
                                        Mutually exclusive with ConfigMapRef.
                                        One of ConfigMapRef or Config must be specified (no default configuration).
                                        Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                                      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
                                        data:
                                          description: Data configures the DataLayer.
                                            It is required if the new DataLayer is
                                            enabled.
                                          properties:
                                            sources:
                                              description: Sources is the list of
                                                sources to define to the DataLayer
                                              items:
                                                description: DataLayerSource contains
                                                  the configuration of a DataSource
                                                  of the DataLayer feature
                                                properties:
                                                  extractors:
                                                    description: |-
                                                      Extractors specifies the list of Plugin instances to be associated with
                                                      this Source. The entries are references to the names of entries of the Plugins
                                                      defined in the configuration's Plugins section
                                                    items:
                                                      description: DataLayerExtractor
                                                        contains the configuration
                                                        of an Extractor of the DataLayer
                                                        feature
                                                      properties:
                                                        pluginRef:
                                                          description: |-
                                                            PluginRef specifies a partiular Plugin instance to be associated with
                                                            this Extractor. The reference is to the name of an entry of the Plugins
                                                            defined in the configuration's Plugins section
                                                          type: string
                                                      required:
                                                      - pluginRef
                                                      type: object
                                                    type: array
                                                  pluginRef:
                                                    description: |-
                                                      PluginRef specifies a partiular Plugin instance to be associated with
                                                      this Source. The reference is to the name of an entry of the Plugins
                                                      defined in the configuration's Plugins section
                                                    type: string
                                                required:
                                                - extractors
                                                - pluginRef
                                                type: object
                                              type: array
                                          required:
                                          - sources
                                          type: object
                                        featureGates:
                                          description: |-
                                            FeatureGates is a set of flags that enable various experimental features with the EPP.
                                            If omitted non of these experimental features will be enabled.
                                          items:
                                            type: string
                                          type: array
                                        kind:
                                          description: |-
                                            Kind is a string value representing the REST resource this object represents.
                                            Servers may infer this from the endpoint the client submits requests to.
                                            Cannot be updated.
                                            In CamelCase.
                                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                          type: string
                                        plugins:
                                          description: Plugins is the list of plugins
                                            that will be instantiated.
                                          items:
                                            description: |-
                                              PluginSpec contains the information that describes a plugin that
                                              will be instantiated.
                                            properties:
                                              name:
                                                description: |-
                                                  Name provides a name for plugin entries to reference. If
                                                  omitted, the value of the Plugin's Type field will be used.
                                                type: string
                                              parameters:
                                                description: |-
                                                  Parameters are the set of parameters to be passed to the plugin's
                                                  factory function. The factory function is responsible
                                                  to parse the parameters.
                                                format: byte
                                                type: string
                                              type:
                                                description: Type specifies the plugin
                                                  type to be instantiated.
                                                type: string
                                            required:
                                            - type
                                            type: object
                                          type: array
                                        saturationDetector:
                                          description: |-
                                            SaturationDetector when present specifies the configuration of the
                                            Saturation detector. If not present, default values are used.
                                          properties:
                                            kvCacheUtilThreshold:
                                              description: |-
                                                KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                                which a pod is considered to have insufficient capacity.
                                              type: number
                                            metricsStalenessThreshold:
                                              description: |-
                                                MetricsStalenessThreshold defines how old a pod's metrics can be.
                                                If a pod's metrics are older than this, it might be excluded from
                                                "good capacity" considerations or treated as having no capacity for
                                                safety.
                                              type: string
                                            queueDepthThreshold:
                                              description: |-
                                                QueueDepthThreshold defines the backend waiting queue size above which a
                                                pod is considered to have insufficient capacity for new requests.
                                              type: integer
                                          type: object
                                        schedulingProfiles:
                                          description: |-
                                            SchedulingProfiles is the list of named SchedulingProfiles
                                            that will be created.
                                          items:
                                            description: |-
                                              SchedulingProfile contains the information to create a SchedulingProfile
                                              entry to be used by the scheduler.
                                            properties:
                                              name:
                                                description: Name specifies the name
                                                  of this SchedulingProfile
                                                type: string
                                              plugins:
                                                description: |-
                                                  Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                                  to the appropriate "slots" based on their type.
                                                items:
                                                  description: |-
                                                    SchedulingPlugin describes a plugin that will be associated with a
                                                    SchedulingProfile entry.
                                                  properties:
                                                    pluginRef:
                                                      description: |-
                                                        PluginRef specifies a partiular Plugin instance to be associated with
                                                        this SchedulingProfile. The reference is to the name of an
                                                        entry of the Plugins defined in the configuration's Plugins
                                                        section
                                                      type: string
                                                    weight:
                                                      description: Weight is the weight
                                                        fo be used if this plugin
                                                        is a Scorer.
                                                      type: integer
                                                  required:
                                                  - pluginRef
                                                  type: object
                                                type: array
                                            required:
                                            - name
                                            - plugins
                                            type: object
                                          type: array
                                      required:
                                      - plugins
                                      - schedulingProfiles
                                      type: object
                                      x-kubernetes-preserve-unknown-fields: true
                                    configMapRef:
                                      description: |-
                                        ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                                        The ConfigMap should contain EndpointPickerConfig YAML.
                                        Mutually exclusive with Config.
                                      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
                                    containerSpec:
                                      description: ContainerSpec is the specification
                                        for the EPP container.
                                      properties:
                                        args:
                                          description: Args are the arguments passed
                                            to the container command at runtime.
                                          items:
                                            type: string
                                          type: array
                                        command:
                                          description: Command is the entrypoint array.
                                            If not specified, the image's default
                                            entrypoint is used.
                                          items:
                                            type: string
                                          type: array
                                        env:
                                          description: Env is the list of environment
                                            variables to set in the container.
                                          items:
                                            description: EnvVar represents an environment
                                              variable present in a Container.
                                            properties:
                                              name:
                                                description: |-
                                                  Name of the environment variable.
                                                  May consist of any printable ASCII characters except '='.
                                                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
                                                  fileKeyRef:
                                                    description: |-
                                                      FileKeyRef selects a key of the env file.
                                                      Requires the EnvFiles feature gate to be enabled.
                                                    properties:
                                                      key:
                                                        description: |-
                                                          The key within the env file. An invalid key will prevent the pod from starting.
                                                          The keys defined within a source may consist of any printable ASCII characters except '='.
                                                          During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                                        type: string
                                                      optional:
                                                        default: false
                                                        description: |-
                                                          Specify whether the file or its key must be defined. If the file or key
                                                          does not exist, then the env var is not published.
                                                          If optional is set to true and the specified key does not exist,
                                                          the environment variable will not be set in the Pod's containers.

                                                          If optional is set to false and the specified key does not exist,
                                                          an error will be returned during Pod creation.
                                                        type: boolean
                                                      path:
                                                        description: |-
                                                          The path within the volume from which to select the file.
                                                          Must be relative and may not contain the '..' path or start with '..'.
                                                        type: string
                                                      volumeName:
                                                        description: The name of the
                                                          volume mount containing
                                                          the env file.
                                                        type: string
                                                    required:
                                                    - key
                                                    - path
                                                    - volumeName
                                                    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
                                        image:
                                          description: Image specifies the container
                                            image to run.
                                          properties:
                                            pullPolicy:
                                              type: string
                                            pullSecrets:
                                              items:
                                                type: string
                                              type: array
                                            repository:
                                              type: string
                                            tag:
                                              type: string
                                          required:
                                          - repository
                                          - tag
                                          type: object
                                        name:
                                          description: Name is the unique name of
                                            the container within the pod.
                                          type: string
                                        workingDir:
                                          description: WorkingDir is the container's
                                            working directory. If unset, the container
                                            runtime's default is used.
                                          type: string
                                      required:
                                      - image
                                      - name
                                      type: object
                                    livenessProbe:
                                      description: LivenessProbe is the liveness probe
                                        for the EPP container.
                                      properties:
                                        exec:
                                          description: Exec specifies a command to
                                            execute in the container.
                                          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 a GRPC HealthCheckRequest.
                                          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 an HTTP GET
                                            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 a connection
                                            to 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
                                    ports:
                                      description: Ports is the list of ports to expose
                                        for the EPP container.
                                      items:
                                        description: ContainerPort represents a network
                                          port in a single container.
                                        properties:
                                          containerPort:
                                            description: |-
                                              Number of port to expose on the pod's IP address.
                                              This must be a valid port number, 0 < x < 65536.
                                            format: int32
                                            type: integer
                                          hostIP:
                                            description: What host IP to bind the
                                              external port to.
                                            type: string
                                          hostPort:
                                            description: |-
                                              Number of port to expose on the host.
                                              If specified, this must be a valid port number, 0 < x < 65536.
                                              If HostNetwork is specified, this must match ContainerPort.
                                              Most containers do not need this.
                                            format: int32
                                            type: integer
                                          name:
                                            description: |-
                                              If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                              named port in a pod must have a unique name. Name for the port that can be
                                              referred to by services.
                                            type: string
                                          protocol:
                                            default: TCP
                                            description: |-
                                              Protocol for port. Must be UDP, TCP, or SCTP.
                                              Defaults to "TCP".
                                            type: string
                                        required:
                                        - containerPort
                                        type: object
                                      type: array
                                    readinessProbe:
                                      description: ReadinessProbe is the readiness
                                        probe for the EPP container.
                                      properties:
                                        exec:
                                          description: Exec specifies a command to
                                            execute in the container.
                                          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 a GRPC HealthCheckRequest.
                                          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 an HTTP GET
                                            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 a connection
                                            to 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
                                    startupProbe:
                                      description: StartupProbe is the startup probe
                                        for the EPP container.
                                      properties:
                                        exec:
                                          description: Exec specifies a command to
                                            execute in the container.
                                          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 a GRPC HealthCheckRequest.
                                          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 an HTTP GET
                                            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 a connection
                                            to a TCP port.
                                          properties:
                                            host:
                                              description: 'Optional: Host name to
                                                connect to, defaults to the pod IP.'
                                              type: string
                                            port:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: |-
                                                Number or name of the port to access on the container.
                                                Number must be in the range 1 to 65535.
                                                Name must be an IANA_SVC_NAME.
                                              x-kubernetes-int-or-string: true
                                          required:
                                          - port
                                          type: object
                                        terminationGracePeriodSeconds:
                                          description: |-
                                            Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                            The grace period is the duration in seconds after the processes running in the pod are sent
                                            a termination signal and the time when the processes are forcibly halted with a kill signal.
                                            Set this value longer than the expected cleanup time for your process.
                                            If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                            value overrides the value provided by the pod spec.
                                            Value must be non-negative integer. The value zero indicates stop immediately via
                                            the kill signal (no opportunity to shut down).
                                            This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                            Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                          format: int64
                                          type: integer
                                        timeoutSeconds:
                                          description: |-
                                            Number of seconds after which the probe times out.
                                            Defaults to 1 second. Minimum value is 1.
                                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                          format: int32
                                          type: integer
                                      type: object
                                  required:
                                  - containerSpec
                                  type: object
                                  x-kubernetes-validations:
                                  - message: specify either configMapRef or config,
                                      not both
                                    rule: '!(has(self.configMapRef) && has(self.config))'
                                gateway:
                                  description: Gateway is the gateway to use for the
                                    created HTTPRoute.
                                  properties:
                                    backendRef:
                                      description: BackendRef is a reference to a
                                        backend to forward matched requests to.
                                      properties:
                                        group:
                                          default: ""
                                          description: |-
                                            Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                            When unspecified or empty string, core API group is inferred.
                                          maxLength: 253
                                          pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                          type: string
                                        kind:
                                          default: Service
                                          description: |-
                                            Kind is the Kubernetes resource kind of the referent. For example
                                            "Service".

                                            Defaults to "Service" when not specified.

                                            ExternalName services can refer to CNAME DNS records that may live
                                            outside of the cluster and as such are difficult to reason about in
                                            terms of conformance. They also may not be safe to forward to (see
                                            CVE-2021-25740 for more information). Implementations SHOULD NOT
                                            support ExternalName Services.

                                            Support: Core (Services with a type other than ExternalName)

                                            Support: Implementation-specific (Services with type ExternalName)
                                          maxLength: 63
                                          minLength: 1
                                          pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                          type: string
                                        name:
                                          description: Name is the name of the referent.
                                          maxLength: 253
                                          minLength: 1
                                          type: string
                                        namespace:
                                          description: |-
                                            Namespace is the namespace of the backend. When unspecified, the local
                                            namespace is inferred.

                                            Note that when a namespace different than the local namespace is specified,
                                            a ReferenceGrant object is required in the referent namespace to allow that
                                            namespace's owner to accept the reference. See the ReferenceGrant
                                            documentation for details.

                                            Support: Core
                                          maxLength: 63
                                          minLength: 1
                                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                          type: string
                                        port:
                                          description: |-
                                            Port specifies the destination port number to use for this resource.
                                            Port is required when the referent is a Kubernetes Service. In this
                                            case, the port number is the service port number, not the target port.
                                            For other resources, destination port might be derived from the referent
                                            resource or this field.
                                          format: int32
                                          maximum: 65535
                                          minimum: 1
                                          type: integer
                                        weight:
                                          default: 1
                                          description: |-
                                            Weight specifies the proportion of requests forwarded to the referenced
                                            backend. This is computed as weight/(sum of all weights in this
                                            BackendRefs list). For non-zero values, there may be some epsilon from
                                            the exact proportion defined here depending on the precision an
                                            implementation supports. Weight is not a percentage and the sum of
                                            weights does not need to equal 100.

                                            If only one backend is specified and it has a weight greater than 0, 100%
                                            of the traffic is forwarded to that backend. If weight is set to 0, no
                                            traffic should be forwarded for this entry. If unspecified, weight
                                            defaults to 1.

                                            Support for this field varies based on the context where used.
                                          format: int32
                                          maximum: 1000000
                                          minimum: 0
                                          type: integer
                                      required:
                                      - name
                                      type: object
                                      x-kubernetes-validations:
                                      - message: Must have port for Service reference
                                        rule: '(size(self.group) == 0 && self.kind
                                          == ''Service'') ? has(self.port) : true'
                                    grpcRoutesEnabled:
                                      default: false
                                      description: GRPCRoutesEnabled is a flag to
                                        enable GRPCRoutes for the created gateway.
                                      type: boolean
                                    httpRoutesEnabled:
                                      default: true
                                      description: HTTPRoutesEnabled is a flag to
                                        enable HTTPRoutes for the created gateway.
                                      type: boolean
                                    name:
                                      description: Name of the gateway
                                      minLength: 1
                                      type: string
                                    namespace:
                                      description: Namespace of the gateway
                                      minLength: 1
                                      type: string
                                  required:
                                  - name
                                  - namespace
                                  type: object
                                hostDomainName:
                                  description: |-
                                    HostDomainName is the domain name of the hostname matched by the router.
                                    The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                                    eg. example.com for "<nimServiceName>.<namespace>.example.com"
                                  maxLength: 63
                                  minLength: 1
                                  pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                                  type: string
                                ingress:
                                  description: Ingress is the ingress controller to
                                    use for the created ingress.
                                  properties:
                                    ingressClass:
                                      description: IngressClass is the ingress class
                                        to use for the created ingress.
                                      minLength: 1
                                      type: string
                                    tlsSecretName:
                                      description: TLSSecretName is the name of the
                                        secret containing the TLS certificate and
                                        key.
                                      type: string
                                  required:
                                  - ingressClass
                                  type: object
                              type: object
                              x-kubernetes-validations:
                              - message: ingress and gateway cannot be specified together
                                rule: '!(has(self.gateway) && has(self.ingress))'
                            service:
                              description: Service defines attributes to create a
                                service.
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                grpcPort:
                                  description: |-
                                    GRPCPort is the GRPC serving port
                                    Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                metricsPort:
                                  description: |-
                                    MetricsPort is the port for metrics
                                    Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                name:
                                  description: Override the default service name
                                  type: string
                                port:
                                  default: 8000
                                  description: 'Port is the main api serving port
                                    (default: 8000)'
                                  format: int32
                                  maximum: 65535
                                  minimum: 1
                                  type: integer
                                type:
                                  description: Service Type string describes ingress
                                    methods for a service
                                  type: string
                              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
                          required:
                          - repository
                          - tag
                          type: object
                        inferencePlatform:
                          default: standalone
                          description: |-
                            InferencePlatform specifies the inference platform to use for this NIMService.
                            Valid values are "standalone" (default) and "kserve".
                          enum:
                          - standalone
                          - kserve
                          type: string
                        initContainers:
                          items:
                            description: NIMContainerSpec defines the specification
                              for a container within a NIM workload.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          type: array
                        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 a command to execute
                                    in the container.
                                  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 a GRPC HealthCheckRequest.
                                  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 an HTTP GET 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 a connection to
                                    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
                        multiNode:
                          description: NimServiceMultiNodeConfig defines the configuration
                            for multi-node NIMService.
                          properties:
                            backendType:
                              default: lws
                              description: BackendType specifies the backend type
                                for the multi-node NIMService. Currently only LWS
                                is supported.
                              enum:
                              - lws
                              type: string
                            computeDomain:
                              description: |-
                                ComputeDomain specifies the compute domain to use for a
                                multi-node NIMService.
                              properties:
                                create:
                                  description: |-
                                    Create specifies whether to create a new ComputeDomain or use an existing one.
                                    If set to false, an existing ComputeDomain must be specified via the `Name` field.
                                  type: boolean
                                name:
                                  description: Name of the ComputeDomain to use. Required
                                    if `Create` is false (i.e., using an existing
                                    ComputeDomain).
                                  type: string
                              type: object
                              x-kubernetes-validations:
                              - message: if create is true, name must not be set;
                                  otherwise name is required.
                                rule: '(has(self.create) && self.create) ? !has(self.name)
                                  : (has(self.name) && size(self.name) > 0)'
                            mpi:
                              description: MPI config for NIMService using LeaderWorkerSet
                              properties:
                                mpiStartTimeout:
                                  default: 300
                                  description: MPIStartTimeout specifies the timeout
                                    in seconds for starting the cluster.
                                  type: integer
                              required:
                              - mpiStartTimeout
                              type: object
                            parallelism:
                              description: Parallelism specifies the parallelism strategy
                                for the multi-node NIMService.
                              properties:
                                pipeline:
                                  description: Pipeline specifies pipeline parallelism
                                    size for the multi-node NIMService.
                                  format: int32
                                  minimum: 1
                                  type: integer
                                tensor:
                                  description: Tensor specifies tensor parallelism
                                    size for the multi-node NIMService.
                                  format: int32
                                  minimum: 1
                                  type: integer
                              type: object
                          required:
                          - parallelism
                          type: object
                        nodeSelector:
                          additionalProperties:
                            type: string
                          type: object
                        podAffinity:
                          description: 'Deprecated: Use Affinity instead.'
                          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.
                                        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.
                                        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.
                                    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.
                                    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
                        proxy:
                          description: ProxySpec defines the proxy configuration for
                            NIMService.
                          properties:
                            certConfigMap:
                              type: string
                            httpProxy:
                              type: string
                            httpsProxy:
                              type: string
                            noProxy:
                              type: string
                          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 a command to execute
                                    in the container.
                                  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 a GRPC HealthCheckRequest.
                                  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 an HTTP GET 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 a connection to
                                    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:
                          format: int32
                          minimum: 0
                          type: integer
                        resources:
                          description: |-
                            Resources is the resource requirements for the NIMService deployment or leader worker set.

                            Note: Only traditional resources like cpu/memory and custom device plugin resources are supported here.
                            Any DRA claim references are ignored. Use DRAResources instead for those.
                          properties:
                            claims:
                              description: |-
                                Claims lists the names of resources, defined in spec.resourceClaims,
                                that are used by this container.

                                This field depends on 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.
                                            If not set, use the default values:
                                            - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                            - For scale down: allow all pods to be removed in a 15s window.
                                          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
                                        tolerance:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: |-
                                            tolerance is the tolerance on the ratio between the current and desired
                                            metric value under which no updates are made to the desired number of
                                            replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                            set, the default cluster-wide tolerance is applied (by default 10%).

                                            For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                            and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                            triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                            This is an alpha field and requires enabling the HPAConfigurableTolerance
                                            feature gate.
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                      type: object
                                    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.
                                            If not set, use the default values:
                                            - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                            - For scale down: allow all pods to be removed in a 15s window.
                                          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
                                        tolerance:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: |-
                                            tolerance is the tolerance on the ratio between the current and desired
                                            metric value under which no updates are made to the desired number of
                                            replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                            set, the default cluster-wide tolerance is applied (by default 10%).

                                            For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                            and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                            triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                            This is an alpha field and requires enabling the HPAConfigurableTolerance
                                            feature gate.
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                      type: object
                                  type: object
                                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.
                                        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.
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  type: array
                                minReplicas:
                                  default: 1
                                  format: int32
                                  minimum: 1
                                  type: integer
                              required:
                              - maxReplicas
                              type: object
                          type: object
                        schedulerName:
                          type: string
                        sidecarContainers:
                          items:
                            description: NIMContainerSpec defines the specification
                              for a container within a NIM workload.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          type: array
                        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 a command to execute
                                    in the container.
                                  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 a GRPC HealthCheckRequest.
                                  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 an HTTP GET 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 a connection to
                                    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:
                            emptyDir:
                              description: EmptyDir is the empty dir volume used for
                                caching NIM
                              properties:
                                sizeLimit:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: SizeLimit is the size limit of the
                                    empty dir volume
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              type: object
                            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:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  description: Annotations for the PVC
                                  type: object
                                create:
                                  description: |-
                                    Create specifies whether to create a new PersistentVolumeClaim (PVC).
                                    If set to false, an existing PVC must be referenced via the `Name` field.
                                  type: boolean
                                name:
                                  description: Name of the PVC to use. Required if
                                    `Create` is false (i.e., using an existing 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 or
                                    a default storage class is set in the cluster.
                                  type: string
                                subPath:
                                  description: SubPath is the path inside the PVC
                                    that should be mounted
                                  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
                            sharedMemorySizeLimit:
                              anyOf:
                              - type: integer
                              - type: string
                              description: SharedMemorySizeLimit sets the max size
                                of the shared memory volume (emptyDir) used by NIMs
                                for fast model runtime I/O.
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                          type: object
                        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
                      - image
                      type: object
                      x-kubernetes-validations:
                      - message: autoScaling must be nil or disabled when multiNode
                          is set
                        rule: '!(has(self.multiNode) && has(self.scale) && has(self.scale.enabled)
                          && self.scale.enabled)'
                      - message: spec.replicas cannot be set when spec.scale.enabled
                          is true
                        rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                          && has(self.replicas))'
                      - message: .spec.expose.ingress is deprecated, and will be removed
                          in a future release. If .spec.expose.ingress is set, please
                          do not set .spec.expose.router.ingress.
                        rule: '!(has(self.expose) && has(self.expose.ingress) && has(self.expose.ingress.enabled)
                          && self.expose.ingress.enabled && has(self.expose.router)
                          && has(self.expose.router.ingress))'
                  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: {}

---
# Source: k8s-nim-operator/crds/apps.nvidia.com_nimservices.yaml
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  name: nimservices.apps.nvidia.com
spec:
  group: apps.nvidia.com
  names:
    kind: NIMService
    listKind: NIMServiceList
    plural: nimservices
    singular: nimservice
  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: NIMService is the Schema for the nimservices 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: NIMServiceSpec defines the desired state of NIMService.
            properties:
              affinity:
                description: Affinity is a group of affinity scheduling rules.
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the
                      pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node matches the corresponding matchExpressions; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: |-
                            An empty preferred scheduling term matches all objects with implicit weight 0
                            (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
                          properties:
                            preference:
                              description: A node selector term, associated with the
                                corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding
                                nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        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 an update), the system
                          may or may not try to eventually evict the pod from its node.
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms.
                              The terms are ORed.
                            items:
                              description: |-
                                A null or empty node selector term matches no objects. The requirements of
                                them are ANDed.
                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements
                                    by node's labels.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements
                                    by node's fields.
                                  items:
                                    description: |-
                                      A node selector requirement is a selector that contains values, a key, and an operator
                                      that relates the key and values.
                                    properties:
                                      key:
                                        description: The label key that the selector
                                          applies to.
                                        type: string
                                      operator:
                                        description: |-
                                          Represents a key's relationship to a set of values.
                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
                                        type: string
                                      values:
                                        description: |-
                                          An array of string values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,
                                          the values array must be empty. If the operator is Gt or Lt, the values
                                          array must have a single element, which will be interpreted as an integer.
                                          This array is replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate
                      this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and adding
                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
                          node(s) with the highest sum are the most preferred.
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm
                            fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated
                                with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: |-
                                    A label query over a set of resources, in this case pods.
                                    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.
                                  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.
                                  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.
                              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.
                              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
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g.
                      avoid putting this pod in the same node, zone, etc. as some
                      other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: |-
                          The scheduler will prefer to schedule pods to nodes that satisfy
                          the anti-affinity expressions specified by this field, but it may choose
                          a node that violates one or more of the expressions. The node that is
                          most preferred is the one with the greatest sum of weights, i.e.
                          for each node that meets all of the scheduling requirements (resource
                          request, requiredDuringScheduling anti-affinity expressions, etc.),
                          compute a sum by iterating through the elements of this field and subtracting
                          "weight" from 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.
                                  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.
                                  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 anti-affinity requirements specified by this field are not met at
                          scheduling time, the pod will not be scheduled onto the node.
                          If the anti-affinity requirements specified by this field cease to be met
                          at some point during pod execution (e.g. due to a pod label update), the
                          system may or may not try to eventually evict the pod from its node.
                          When there are multiple elements, the lists of nodes corresponding to each
                          podAffinityTerm are intersected, i.e. all terms must be satisfied.
                        items:
                          description: |-
                            Defines a set of pods (namely those matching the labelSelector
                            relative to the given namespace(s)) that this pod should be
                            co-located (affinity) or not co-located (anti-affinity) with,
                            where co-located is defined as running on a node whose value of
                            the label with key <topologyKey> matches that of any node on which
                            a pod of the set of pods is running
                          properties:
                            labelSelector:
                              description: |-
                                A label query over a set of resources, in this case pods.
                                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.
                              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.
                              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
                type: object
              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
              draResources:
                description: DRAResources is the list of DRA resource claims to be
                  used for the NIMService deployment or leader worker set.
                items:
                  description: |-
                    DRAResource references exactly one ResourceClaim, either directly
                    or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim.

                    When creating the NIMService pods, it adds a name (`DNS_LABEL` format) to it
                    that uniquely identifies the DRA resource.
                  properties:
                    claimCreationSpec:
                      description: |-
                        ClaimCreationSpec is the spec to auto-generate a DRA resource claim template.
                        Only one of ClaimCreationSpec, ResourceClaimName or ResourceClaimTemplateName must be specified.
                      properties:
                        devices:
                          items:
                            properties:
                              attributeSelectors:
                                description: AttributeSelectors defines the criteria
                                  which must be satisfied by the device attributes
                                  of a device.
                                items:
                                  description: DRADeviceAttributeSelector defines
                                    the selector expression for a DRA device attribute.
                                  properties:
                                    key:
                                      description: |-
                                        Key is the name of the device attribute.
                                        This is either a qualified name or a simple name.
                                        If it is a simple name, then it is assumed to be prefixed with the DRA driver name.
                                        Eg: "gpu.nvidia.com/productName" is equivalent to "productName" if the driver name is "gpu.nvidia.com". Otherwise they're treated as 2 different attributes.
                                      maxLength: 64
                                      type: string
                                    op:
                                      default: Equal
                                      description: |-
                                        Op is the operator to use for comparing the device attribute value. Supported operators are:
                                        * Equal: The device attribute value must be equal to the value specified in the selector.
                                        * NotEqual: The device attribute value must not be equal to the value specified in the selector.
                                        * GreaterThan: The device attribute value must be greater than the value specified in the selector.
                                        * GreaterThanOrEqual: The device attribute value must be greater than or equal to the value specified in the selector.
                                        * LessThan: The device attribute value must be less than the value specified in the selector.
                                        * LessThanOrEqual: The device attribute value must be less than or equal to the value specified in the selector.
                                      enum:
                                      - Equal
                                      - NotEqual
                                      - GreaterThan
                                      - GreaterThanOrEqual
                                      - LessThan
                                      - LessThanOrEqual
                                      type: string
                                    value:
                                      description: Value is the value to compare against
                                        the device attribute.
                                      properties:
                                        boolValue:
                                          description: BoolValue is a true/false value.
                                          type: boolean
                                        intValue:
                                          description: IntValue is a number.
                                          format: int32
                                          type: integer
                                        stringValue:
                                          description: StringValue is a string value.
                                          maxLength: 64
                                          type: string
                                        versionValue:
                                          description: VersionValue is a semantic
                                            version according to semver.org spec 2.0.0.
                                          maxLength: 64
                                          type: string
                                      type: object
                                  required:
                                  - key
                                  - op
                                  type: object
                                type: array
                              capacitySelectors:
                                description: CapacitySelectors defines the criteria
                                  which must be satisfied by the device capacity of
                                  a device.
                                items:
                                  description: DRAResourceQuantitySelector defines
                                    the selector expression for a DRA device capacity.
                                  properties:
                                    key:
                                      description: |-
                                        Key is the name of the resource.
                                        This is either a qualified name or a simple name.
                                        If it is a simple name, then it is assumed to be prefixed with the DRA driver name.
                                        Eg: "gpu.nvidia.com/memory" is equivalent to "memory" if the driver name is "gpu.nvidia.com". Otherwise they're treated as 2 different attributes.
                                      maxLength: 64
                                      type: string
                                    op:
                                      default: Equal
                                      description: |-
                                        Op is the operator to use for comparing against the device capacity. Supported operators are:
                                        * Equal: The resource quantity value must be equal to the value specified in the selector.
                                        * NotEqual: The resource quantity value must not be equal to the value specified in the selector.
                                        * GreaterThan: The resource quantity value must be greater than the value specified in the selector.
                                        * GreaterThanOrEqual: The resource quantity value must be greater than or equal to the value specified in the selector.
                                        * LessThan: The resource quantity value must be less than the value specified in the selector.
                                        * LessThanOrEqual: The resource quantity value must be less than or equal to the value specified in the selector.
                                      enum:
                                      - Equal
                                      - NotEqual
                                      - GreaterThan
                                      - GreaterThanOrEqual
                                      - LessThan
                                      - LessThanOrEqual
                                      type: string
                                    value:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: Value is the resource quantity
                                        to compare against.
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - key
                                  - op
                                  - value
                                  type: object
                                type: array
                              celExpressions:
                                description: CELExpressions is a list of CEL expressions
                                  that must be satisfied by the DRA device.
                                items:
                                  type: string
                                type: array
                              count:
                                default: 1
                                description: Count is the number of devices to request.
                                format: int32
                                type: integer
                              deviceClassName:
                                default: gpu.nvidia.com
                                description: DeviceClassName references a specific
                                  DeviceClass to inherit configuration and selectors
                                  from.
                                type: string
                              driverName:
                                default: gpu.nvidia.com
                                description: |-
                                  DriverName is the name of the DRA driver providing the capacity information.
                                  Must be a DNS subdomain.
                                maxLength: 253
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                                type: string
                              name:
                                description: |-
                                  Name is the name of the device request to use in the generated claim spec.
                                  Must be a valid DNS_LABEL.
                                maxLength: 253
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                                type: string
                            required:
                            - count
                            - deviceClassName
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: celExpressions must not be set if attributeSelectors
                                or capacitySelectors are set
                              rule: (has(self.celExpressions) && !(has(self.attributeSelectors)
                                || has(self.capacitySelectors))) || !has(self.celExpressions)
                          type: array
                        generateName:
                          description: GenerateName is an optional name prefix to
                            use for generating the resource claim template.
                          maxLength: 16
                          minLength: 1
                          type: string
                      required:
                      - devices
                      type: object
                    requests:
                      description: |-
                        Requests is the list of requests in the referenced DRA resource claim.
                        to be made available to the model container of the NIMService pods.

                        If empty, everything from the claim is made available, otherwise
                        only the result of this subset of requests.
                      items:
                        minLength: 1
                        type: string
                      type: array
                    resourceClaimName:
                      description: |-
                        ResourceClaimName is the name of a DRA resource claim object in the same
                        namespace as the NIMService.

                        Exactly one of ResourceClaimName and ResourceClaimTemplateName must
                        be set.
                      maxLength: 253
                      minLength: 1
                      pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                      type: string
                    resourceClaimTemplateName:
                      description: |-
                        ResourceClaimTemplateName is the name of a DRA resource claim template
                        object in the same namespace as the pods for this NIMService.

                        The template will be used to create a new DRA resource claim, which will
                        be bound to the pods created for this NIMService.

                        Exactly one of ResourceClaimName and ResourceClaimTemplateName must
                        be set.
                      maxLength: 253
                      minLength: 1
                      pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
                      type: string
                  type: object
                  x-kubernetes-validations:
                  - message: exactly one of spec.resourceClaimName, spec.resourceClaimTemplateName,
                      or spec.claimCreationSpec must be set.
                    rule: '(has(self.resourceClaimName) ? 1 : 0) + (has(self.resourceClaimTemplateName)
                      ? 1 : 0) + (has(self.claimCreationSpec) ? 1 : 0) == 1'
                type: array
              env:
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: |-
                        Name of the environment variable.
                        May consist of any printable ASCII characters except '='.
                      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
                        fileKeyRef:
                          description: |-
                            FileKeyRef selects a key of the env file.
                            Requires the EnvFiles feature gate to be enabled.
                          properties:
                            key:
                              description: |-
                                The key within the env file. An invalid key will prevent the pod from starting.
                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                              type: string
                            optional:
                              default: false
                              description: |-
                                Specify whether the file or its key must be defined. If the file or key
                                does not exist, then the env var is not published.
                                If optional is set to true and the specified key does not exist,
                                the environment variable will not be set in the Pod's containers.

                                If optional is set to false and the specified key does not exist,
                                an error will be returned during Pod creation.
                              type: boolean
                            path:
                              description: |-
                                The path within the volume from which to select the file.
                                Must be relative and may not contain the '..' path or start with '..'.
                              type: string
                            volumeName:
                              description: The name of the volume mount containing
                                the env file.
                              type: string
                          required:
                          - key
                          - path
                          - volumeName
                          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: 'Deprecated: Use .spec.expose.router instead.'
                    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
                  router:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the router, e.g. for ingress
                          class or gateway
                        type: object
                      eppConfig:
                        description: EPPConfig is the configuration for the endpoint
                          picker extension. This is field is currently only supported
                          for standalone inference platform only on NIMService.
                        properties:
                          config:
                            description: |-
                              Config allows specifying EPP EndpointPickerConfig directly as a structured object.
                              The operator will marshal this to YAML and create a ConfigMap automatically.
                              Mutually exclusive with ConfigMapRef.
                              One of ConfigMapRef or Config must be specified (no default configuration).
                              Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension
                            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
                              data:
                                description: Data configures the DataLayer. It is
                                  required if the new DataLayer is enabled.
                                properties:
                                  sources:
                                    description: Sources is the list of sources to
                                      define to the DataLayer
                                    items:
                                      description: DataLayerSource contains the configuration
                                        of a DataSource of the DataLayer feature
                                      properties:
                                        extractors:
                                          description: |-
                                            Extractors specifies the list of Plugin instances to be associated with
                                            this Source. The entries are references to the names of entries of the Plugins
                                            defined in the configuration's Plugins section
                                          items:
                                            description: DataLayerExtractor contains
                                              the configuration of an Extractor of
                                              the DataLayer feature
                                            properties:
                                              pluginRef:
                                                description: |-
                                                  PluginRef specifies a partiular Plugin instance to be associated with
                                                  this Extractor. The reference is to the name of an entry of the Plugins
                                                  defined in the configuration's Plugins section
                                                type: string
                                            required:
                                            - pluginRef
                                            type: object
                                          type: array
                                        pluginRef:
                                          description: |-
                                            PluginRef specifies a partiular Plugin instance to be associated with
                                            this Source. The reference is to the name of an entry of the Plugins
                                            defined in the configuration's Plugins section
                                          type: string
                                      required:
                                      - extractors
                                      - pluginRef
                                      type: object
                                    type: array
                                required:
                                - sources
                                type: object
                              featureGates:
                                description: |-
                                  FeatureGates is a set of flags that enable various experimental features with the EPP.
                                  If omitted non of these experimental features will be enabled.
                                items:
                                  type: string
                                type: array
                              kind:
                                description: |-
                                  Kind is a string value representing the REST resource this object represents.
                                  Servers may infer this from the endpoint the client submits requests to.
                                  Cannot be updated.
                                  In CamelCase.
                                  More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                                type: string
                              plugins:
                                description: Plugins is the list of plugins that will
                                  be instantiated.
                                items:
                                  description: |-
                                    PluginSpec contains the information that describes a plugin that
                                    will be instantiated.
                                  properties:
                                    name:
                                      description: |-
                                        Name provides a name for plugin entries to reference. If
                                        omitted, the value of the Plugin's Type field will be used.
                                      type: string
                                    parameters:
                                      description: |-
                                        Parameters are the set of parameters to be passed to the plugin's
                                        factory function. The factory function is responsible
                                        to parse the parameters.
                                      format: byte
                                      type: string
                                    type:
                                      description: Type specifies the plugin type
                                        to be instantiated.
                                      type: string
                                  required:
                                  - type
                                  type: object
                                type: array
                              saturationDetector:
                                description: |-
                                  SaturationDetector when present specifies the configuration of the
                                  Saturation detector. If not present, default values are used.
                                properties:
                                  kvCacheUtilThreshold:
                                    description: |-
                                      KVCacheUtilThreshold defines the KV cache utilization (0.0 to 1.0) above
                                      which a pod is considered to have insufficient capacity.
                                    type: number
                                  metricsStalenessThreshold:
                                    description: |-
                                      MetricsStalenessThreshold defines how old a pod's metrics can be.
                                      If a pod's metrics are older than this, it might be excluded from
                                      "good capacity" considerations or treated as having no capacity for
                                      safety.
                                    type: string
                                  queueDepthThreshold:
                                    description: |-
                                      QueueDepthThreshold defines the backend waiting queue size above which a
                                      pod is considered to have insufficient capacity for new requests.
                                    type: integer
                                type: object
                              schedulingProfiles:
                                description: |-
                                  SchedulingProfiles is the list of named SchedulingProfiles
                                  that will be created.
                                items:
                                  description: |-
                                    SchedulingProfile contains the information to create a SchedulingProfile
                                    entry to be used by the scheduler.
                                  properties:
                                    name:
                                      description: Name specifies the name of this
                                        SchedulingProfile
                                      type: string
                                    plugins:
                                      description: |-
                                        Plugins is the list of plugins for this SchedulingProfile. They are assigned
                                        to the appropriate "slots" based on their type.
                                      items:
                                        description: |-
                                          SchedulingPlugin describes a plugin that will be associated with a
                                          SchedulingProfile entry.
                                        properties:
                                          pluginRef:
                                            description: |-
                                              PluginRef specifies a partiular Plugin instance to be associated with
                                              this SchedulingProfile. The reference is to the name of an
                                              entry of the Plugins defined in the configuration's Plugins
                                              section
                                            type: string
                                          weight:
                                            description: Weight is the weight fo be
                                              used if this plugin is a Scorer.
                                            type: integer
                                        required:
                                        - pluginRef
                                        type: object
                                      type: array
                                  required:
                                  - name
                                  - plugins
                                  type: object
                                type: array
                            required:
                            - plugins
                            - schedulingProfiles
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          configMapRef:
                            description: |-
                              ConfigMapRef references a user-provided ConfigMap containing EPP configuration.
                              The ConfigMap should contain EndpointPickerConfig YAML.
                              Mutually exclusive with Config.
                            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
                          containerSpec:
                            description: ContainerSpec is the specification for the
                              EPP container.
                            properties:
                              args:
                                description: Args are the arguments passed to the
                                  container command at runtime.
                                items:
                                  type: string
                                type: array
                              command:
                                description: Command is the entrypoint array. If not
                                  specified, the image's default entrypoint is used.
                                items:
                                  type: string
                                type: array
                              env:
                                description: Env is the list of environment variables
                                  to set in the container.
                                items:
                                  description: EnvVar represents an environment variable
                                    present in a Container.
                                  properties:
                                    name:
                                      description: |-
                                        Name of the environment variable.
                                        May consist of any printable ASCII characters except '='.
                                      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
                                        fileKeyRef:
                                          description: |-
                                            FileKeyRef selects a key of the env file.
                                            Requires the EnvFiles feature gate to be enabled.
                                          properties:
                                            key:
                                              description: |-
                                                The key within the env file. An invalid key will prevent the pod from starting.
                                                The keys defined within a source may consist of any printable ASCII characters except '='.
                                                During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                              type: string
                                            optional:
                                              default: false
                                              description: |-
                                                Specify whether the file or its key must be defined. If the file or key
                                                does not exist, then the env var is not published.
                                                If optional is set to true and the specified key does not exist,
                                                the environment variable will not be set in the Pod's containers.

                                                If optional is set to false and the specified key does not exist,
                                                an error will be returned during Pod creation.
                                              type: boolean
                                            path:
                                              description: |-
                                                The path within the volume from which to select the file.
                                                Must be relative and may not contain the '..' path or start with '..'.
                                              type: string
                                            volumeName:
                                              description: The name of the volume
                                                mount containing the env file.
                                              type: string
                                          required:
                                          - key
                                          - path
                                          - volumeName
                                          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
                              image:
                                description: Image specifies the container image to
                                  run.
                                properties:
                                  pullPolicy:
                                    type: string
                                  pullSecrets:
                                    items:
                                      type: string
                                    type: array
                                  repository:
                                    type: string
                                  tag:
                                    type: string
                                required:
                                - repository
                                - tag
                                type: object
                              name:
                                description: Name is the unique name of the container
                                  within the pod.
                                type: string
                              workingDir:
                                description: WorkingDir is the container's working
                                  directory. If unset, the container runtime's default
                                  is used.
                                type: string
                            required:
                            - image
                            - name
                            type: object
                          livenessProbe:
                            description: LivenessProbe is the liveness probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          ports:
                            description: Ports is the list of ports to expose for
                              the EPP container.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: |-
                                    Number of port to expose on the pod's IP address.
                                    This must be a valid port number, 0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: |-
                                    Number of port to expose on the host.
                                    If specified, this must be a valid port number, 0 < x < 65536.
                                    If HostNetwork is specified, this must match ContainerPort.
                                    Most containers do not need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: |-
                                    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                    named port in a pod must have a unique name. Name for the port that can be
                                    referred to by services.
                                  type: string
                                protocol:
                                  default: TCP
                                  description: |-
                                    Protocol for port. Must be UDP, TCP, or SCTP.
                                    Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                          readinessProbe:
                            description: ReadinessProbe is the readiness probe for
                              the EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to 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
                          startupProbe:
                            description: StartupProbe is the startup probe for the
                              EPP container.
                            properties:
                              exec:
                                description: Exec specifies a command to execute in
                                  the container.
                                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 a GRPC HealthCheckRequest.
                                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 an HTTP GET 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 a connection to a
                                  TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: |-
                                      Number or name of the port to access on the container.
                                      Number must be in the range 1 to 65535.
                                      Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: |-
                                  Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
                                  The grace period is the duration in seconds after the processes running in the pod are sent
                                  a termination signal and the time when the processes are forcibly halted with a kill signal.
                                  Set this value longer than the expected cleanup time for your process.
                                  If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
                                  value overrides the value provided by the pod spec.
                                  Value must be non-negative integer. The value zero indicates stop immediately via
                                  the kill signal (no opportunity to shut down).
                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: |-
                                  Number of seconds after which the probe times out.
                                  Defaults to 1 second. Minimum value is 1.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                                format: int32
                                type: integer
                            type: object
                        required:
                        - containerSpec
                        type: object
                        x-kubernetes-validations:
                        - message: specify either configMapRef or config, not both
                          rule: '!(has(self.configMapRef) && has(self.config))'
                      gateway:
                        description: Gateway is the gateway to use for the created
                          HTTPRoute.
                        properties:
                          backendRef:
                            description: BackendRef is a reference to a backend to
                              forward matched requests to.
                            properties:
                              group:
                                default: ""
                                description: |-
                                  Group is the group of the referent. For example, "gateway.networking.k8s.io".
                                  When unspecified or empty string, core API group is inferred.
                                maxLength: 253
                                pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                type: string
                              kind:
                                default: Service
                                description: |-
                                  Kind is the Kubernetes resource kind of the referent. For example
                                  "Service".

                                  Defaults to "Service" when not specified.

                                  ExternalName services can refer to CNAME DNS records that may live
                                  outside of the cluster and as such are difficult to reason about in
                                  terms of conformance. They also may not be safe to forward to (see
                                  CVE-2021-25740 for more information). Implementations SHOULD NOT
                                  support ExternalName Services.

                                  Support: Core (Services with a type other than ExternalName)

                                  Support: Implementation-specific (Services with type ExternalName)
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
                                type: string
                              name:
                                description: Name is the name of the referent.
                                maxLength: 253
                                minLength: 1
                                type: string
                              namespace:
                                description: |-
                                  Namespace is the namespace of the backend. When unspecified, the local
                                  namespace is inferred.

                                  Note that when a namespace different than the local namespace is specified,
                                  a ReferenceGrant object is required in the referent namespace to allow that
                                  namespace's owner to accept the reference. See the ReferenceGrant
                                  documentation for details.

                                  Support: Core
                                maxLength: 63
                                minLength: 1
                                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                type: string
                              port:
                                description: |-
                                  Port specifies the destination port number to use for this resource.
                                  Port is required when the referent is a Kubernetes Service. In this
                                  case, the port number is the service port number, not the target port.
                                  For other resources, destination port might be derived from the referent
                                  resource or this field.
                                format: int32
                                maximum: 65535
                                minimum: 1
                                type: integer
                              weight:
                                default: 1
                                description: |-
                                  Weight specifies the proportion of requests forwarded to the referenced
                                  backend. This is computed as weight/(sum of all weights in this
                                  BackendRefs list). For non-zero values, there may be some epsilon from
                                  the exact proportion defined here depending on the precision an
                                  implementation supports. Weight is not a percentage and the sum of
                                  weights does not need to equal 100.

                                  If only one backend is specified and it has a weight greater than 0, 100%
                                  of the traffic is forwarded to that backend. If weight is set to 0, no
                                  traffic should be forwarded for this entry. If unspecified, weight
                                  defaults to 1.

                                  Support for this field varies based on the context where used.
                                format: int32
                                maximum: 1000000
                                minimum: 0
                                type: integer
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: Must have port for Service reference
                              rule: '(size(self.group) == 0 && self.kind == ''Service'')
                                ? has(self.port) : true'
                          grpcRoutesEnabled:
                            default: false
                            description: GRPCRoutesEnabled is a flag to enable GRPCRoutes
                              for the created gateway.
                            type: boolean
                          httpRoutesEnabled:
                            default: true
                            description: HTTPRoutesEnabled is a flag to enable HTTPRoutes
                              for the created gateway.
                            type: boolean
                          name:
                            description: Name of the gateway
                            minLength: 1
                            type: string
                          namespace:
                            description: Namespace of the gateway
                            minLength: 1
                            type: string
                        required:
                        - name
                        - namespace
                        type: object
                      hostDomainName:
                        description: |-
                          HostDomainName is the domain name of the hostname matched by the router.
                          The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
                          eg. example.com for "<nimServiceName>.<namespace>.example.com"
                        maxLength: 63
                        minLength: 1
                        pattern: ^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$
                        type: string
                      ingress:
                        description: Ingress is the ingress controller to use for
                          the created ingress.
                        properties:
                          ingressClass:
                            description: IngressClass is the ingress class to use
                              for the created ingress.
                            minLength: 1
                            type: string
                          tlsSecretName:
                            description: TLSSecretName is the name of the secret containing
                              the TLS certificate and key.
                            type: string
                        required:
                        - ingressClass
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: ingress and gateway cannot be specified together
                      rule: '!(has(self.gateway) && has(self.ingress))'
                  service:
                    description: Service defines attributes to create a service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      grpcPort:
                        description: |-
                          GRPCPort is the GRPC serving port
                          Note: This port is only applicable for NIMs that runs a Triton GRPC Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      metricsPort:
                        description: |-
                          MetricsPort is the port for metrics
                          Note: This port is only applicable for NIMs that runs a separate metrics endpoint on Triton Inference Server.
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      name:
                        description: Override the default service name
                        type: string
                      port:
                        default: 8000
                        description: 'Port is the main api serving port (default:
                          8000)'
                        format: int32
                        maximum: 65535
                        minimum: 1
                        type: integer
                      type:
                        description: Service Type string describes ingress methods
                          for a service
                        type: string
                    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
                required:
                - repository
                - tag
                type: object
              inferencePlatform:
                default: standalone
                description: |-
                  InferencePlatform specifies the inference platform to use for this NIMService.
                  Valid values are "standalone" (default) and "kserve".
                enum:
                - standalone
                - kserve
                type: string
              initContainers:
                items:
                  description: NIMContainerSpec defines the specification for a container
                    within a NIM workload.
                  properties:
                    args:
                      description: Args are the arguments passed to the container
                        command at runtime.
                      items:
                        type: string
                      type: array
                    command:
                      description: Command is the entrypoint array. If not specified,
                        the image's default entrypoint is used.
                      items:
                        type: string
                      type: array
                    env:
                      description: Env is the list of environment variables to set
                        in the container.
                      items:
                        description: EnvVar represents an environment variable present
                          in a Container.
                        properties:
                          name:
                            description: |-
                              Name of the environment variable.
                              May consist of any printable ASCII characters except '='.
                            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
                              fileKeyRef:
                                description: |-
                                  FileKeyRef selects a key of the env file.
                                  Requires the EnvFiles feature gate to be enabled.
                                properties:
                                  key:
                                    description: |-
                                      The key within the env file. An invalid key will prevent the pod from starting.
                                      The keys defined within a source may consist of any printable ASCII characters except '='.
                                      During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                    type: string
                                  optional:
                                    default: false
                                    description: |-
                                      Specify whether the file or its key must be defined. If the file or key
                                      does not exist, then the env var is not published.
                                      If optional is set to true and the specified key does not exist,
                                      the environment variable will not be set in the Pod's containers.

                                      If optional is set to false and the specified key does not exist,
                                      an error will be returned during Pod creation.
                                    type: boolean
                                  path:
                                    description: |-
                                      The path within the volume from which to select the file.
                                      Must be relative and may not contain the '..' path or start with '..'.
                                    type: string
                                  volumeName:
                                    description: The name of the volume mount containing
                                      the env file.
                                    type: string
                                required:
                                - key
                                - path
                                - volumeName
                                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
                    image:
                      description: Image specifies the container image to run.
                      properties:
                        pullPolicy:
                          type: string
                        pullSecrets:
                          items:
                            type: string
                          type: array
                        repository:
                          type: string
                        tag:
                          type: string
                      required:
                      - repository
                      - tag
                      type: object
                    name:
                      description: Name is the unique name of the container within
                        the pod.
                      type: string
                    workingDir:
                      description: WorkingDir is the container's working directory.
                        If unset, the container runtime's default is used.
                      type: string
                  required:
                  - image
                  - name
                  type: object
                type: array
              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 a command to execute in the container.
                        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 a GRPC HealthCheckRequest.
                        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 an HTTP GET 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 a connection to 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
              multiNode:
                description: NimServiceMultiNodeConfig defines the configuration for
                  multi-node NIMService.
                properties:
                  backendType:
                    default: lws
                    description: BackendType specifies the backend type for the multi-node
                      NIMService. Currently only LWS is supported.
                    enum:
                    - lws
                    type: string
                  computeDomain:
                    description: |-
                      ComputeDomain specifies the compute domain to use for a
                      multi-node NIMService.
                    properties:
                      create:
                        description: |-
                          Create specifies whether to create a new ComputeDomain or use an existing one.
                          If set to false, an existing ComputeDomain must be specified via the `Name` field.
                        type: boolean
                      name:
                        description: Name of the ComputeDomain to use. Required if
                          `Create` is false (i.e., using an existing ComputeDomain).
                        type: string
                    type: object
                    x-kubernetes-validations:
                    - message: if create is true, name must not be set; otherwise
                        name is required.
                      rule: '(has(self.create) && self.create) ? !has(self.name) :
                        (has(self.name) && size(self.name) > 0)'
                  mpi:
                    description: MPI config for NIMService using LeaderWorkerSet
                    properties:
                      mpiStartTimeout:
                        default: 300
                        description: MPIStartTimeout specifies the timeout in seconds
                          for starting the cluster.
                        type: integer
                    required:
                    - mpiStartTimeout
                    type: object
                  parallelism:
                    description: Parallelism specifies the parallelism strategy for
                      the multi-node NIMService.
                    properties:
                      pipeline:
                        description: Pipeline specifies pipeline parallelism size
                          for the multi-node NIMService.
                        format: int32
                        minimum: 1
                        type: integer
                      tensor:
                        description: Tensor specifies tensor parallelism size for
                          the multi-node NIMService.
                        format: int32
                        minimum: 1
                        type: integer
                    type: object
                required:
                - parallelism
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                type: object
              podAffinity:
                description: 'Deprecated: Use Affinity instead.'
                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.
                              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.
                              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.
                          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.
                          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
              proxy:
                description: ProxySpec defines the proxy configuration for NIMService.
                properties:
                  certConfigMap:
                    type: string
                  httpProxy:
                    type: string
                  httpsProxy:
                    type: string
                  noProxy:
                    type: string
                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 a command to execute in the container.
                        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 a GRPC HealthCheckRequest.
                        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 an HTTP GET 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 a connection to 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:
                format: int32
                minimum: 0
                type: integer
              resources:
                description: |-
                  Resources is the resource requirements for the NIMService deployment or leader worker set.

                  Note: Only traditional resources like cpu/memory and custom device plugin resources are supported here.
                  Any DRA claim references are ignored. Use DRAResources instead for those.
                properties:
                  claims:
                    description: |-
                      Claims lists the names of resources, defined in spec.resourceClaims,
                      that are used by this container.

                      This field depends on 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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          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.
                                  If not set, use the default values:
                                  - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
                                  - For scale down: allow all pods to be removed in a 15s window.
                                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
                              tolerance:
                                anyOf:
                                - type: integer
                                - type: string
                                description: |-
                                  tolerance is the tolerance on the ratio between the current and desired
                                  metric value under which no updates are made to the desired number of
                                  replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not
                                  set, the default cluster-wide tolerance is applied (by default 10%).

                                  For example, if autoscaling is configured with a memory consumption target of 100Mi,
                                  and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be
                                  triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

                                  This is an alpha field and requires enabling the HPAConfigurableTolerance
                                  feature gate.
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      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.
                              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.
                              type: string
                          required:
                          - type
                          type: object
                        type: array
                      minReplicas:
                        default: 1
                        format: int32
                        minimum: 1
                        type: integer
                    required:
                    - maxReplicas
                    type: object
                type: object
              schedulerName:
                type: string
              sidecarContainers:
                items:
                  description: NIMContainerSpec defines the specification for a container
                    within a NIM workload.
                  properties:
                    args:
                      description: Args are the arguments passed to the container
                        command at runtime.
                      items:
                        type: string
                      type: array
                    command:
                      description: Command is the entrypoint array. If not specified,
                        the image's default entrypoint is used.
                      items:
                        type: string
                      type: array
                    env:
                      description: Env is the list of environment variables to set
                        in the container.
                      items:
                        description: EnvVar represents an environment variable present
                          in a Container.
                        properties:
                          name:
                            description: |-
                              Name of the environment variable.
                              May consist of any printable ASCII characters except '='.
                            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
                              fileKeyRef:
                                description: |-
                                  FileKeyRef selects a key of the env file.
                                  Requires the EnvFiles feature gate to be enabled.
                                properties:
                                  key:
                                    description: |-
                                      The key within the env file. An invalid key will prevent the pod from starting.
                                      The keys defined within a source may consist of any printable ASCII characters except '='.
                                      During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
                                    type: string
                                  optional:
                                    default: false
                                    description: |-
                                      Specify whether the file or its key must be defined. If the file or key
                                      does not exist, then the env var is not published.
                                      If optional is set to true and the specified key does not exist,
                                      the environment variable will not be set in the Pod's containers.

                                      If optional is set to false and the specified key does not exist,
                                      an error will be returned during Pod creation.
                                    type: boolean
                                  path:
                                    description: |-
                                      The path within the volume from which to select the file.
                                      Must be relative and may not contain the '..' path or start with '..'.
                                    type: string
                                  volumeName:
                                    description: The name of the volume mount containing
                                      the env file.
                                    type: string
                                required:
                                - key
                                - path
                                - volumeName
                                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
                    image:
                      description: Image specifies the container image to run.
                      properties:
                        pullPolicy:
                          type: string
                        pullSecrets:
                          items:
                            type: string
                          type: array
                        repository:
                          type: string
                        tag:
                          type: string
                      required:
                      - repository
                      - tag
                      type: object
                    name:
                      description: Name is the unique name of the container within
                        the pod.
                      type: string
                    workingDir:
                      description: WorkingDir is the container's working directory.
                        If unset, the container runtime's default is used.
                      type: string
                  required:
                  - image
                  - name
                  type: object
                type: array
              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 a command to execute in the container.
                        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 a GRPC HealthCheckRequest.
                        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 an HTTP GET 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 a connection to 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:
                  emptyDir:
                    description: EmptyDir is the empty dir volume used for caching
                      NIM
                    properties:
                      sizeLimit:
                        anyOf:
                        - type: integer
                        - type: string
                        description: SizeLimit is the size limit of the empty dir
                          volume
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                    type: object
                  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:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations for the PVC
                        type: object
                      create:
                        description: |-
                          Create specifies whether to create a new PersistentVolumeClaim (PVC).
                          If set to false, an existing PVC must be referenced via the `Name` field.
                        type: boolean
                      name:
                        description: Name of the PVC to use. Required if `Create`
                          is false (i.e., using an existing 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 or
                          a default storage class is set in the cluster.
                        type: string
                      subPath:
                        description: SubPath is the path inside the PVC that should
                          be mounted
                        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
                  sharedMemorySizeLimit:
                    anyOf:
                    - type: integer
                    - type: string
                    description: SharedMemorySizeLimit sets the max size of the shared
                      memory volume (emptyDir) used by NIMs for fast model runtime
                      I/O.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                type: object
              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
            - image
            type: object
            x-kubernetes-validations:
            - message: spec.draResources is immutable
              rule: (has(self.draResources) && has(oldSelf.draResources) && self.draResources
                == oldSelf.draResources) || (!has(self.draResources) && !has(oldSelf.draResources))
            - message: autoScaling must be nil or disabled when multiNode is set
              rule: '!(has(self.multiNode) && has(self.scale) && has(self.scale.enabled)
                && self.scale.enabled)'
            - message: spec.replicas cannot be set when spec.scale.enabled is true
              rule: '!(has(self.scale) && has(self.scale.enabled) && self.scale.enabled
                && has(self.replicas))'
            - message: .spec.expose.ingress is deprecated, and will be removed in
                a future release. If .spec.expose.ingress is set, please do not set
                .spec.expose.router.ingress.
              rule: '!(has(self.expose) && has(self.expose.ingress) && has(self.expose.ingress.enabled)
                && self.expose.ingress.enabled && has(self.expose.router) && has(self.expose.router.ingress))'
          status:
            description: NIMServiceStatus defines the observed state of NIMService.
            properties:
              availableReplicas:
                format: int32
                type: integer
              computeDomainStatus:
                description: ComputeDomainStatus is the status of the ComputeDomain
                  for a multi-node NIMService.
                properties:
                  name:
                    type: string
                  nodes:
                    items:
                      description: ComputeDomainStatus defines the status of a node
                        in the ComputeDomain.
                      properties:
                        cliqueID:
                          description: CliqueID is the clique ID of the NVLink domain.
                          type: string
                        name:
                          description: Name is the name of the node.
                          type: string
                        status:
                          default: NotReady
                          description: |-
                            Status tracks the readiness of the IMEX daemon running on this node.
                            * Ready: the IMEX daemon is ready to broker GPU memory exchanges.
                            * NotReady: the IMEX daemon is not ready to broker GPU memory exchanges.
                          enum:
                          - Ready
                          - NotReady
                          type: string
                      required:
                      - cliqueID
                      - name
                      type: object
                    type: array
                  status:
                    type: string
                required:
                - name
                type: object
              conditions:
                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
              draResourceStatuses:
                description: DRAResourceStatuses is the status of the DRA resources.
                items:
                  description: DRAResourceStatus defines the status of the DRAResource.
                  properties:
                    name:
                      description: Name is the pod claim name referenced in the pod
                        spec as `spec.resourceClaims[].name` for this DRA resource.
                      type: string
                    resourceClaimStatus:
                      description: |-
                        ResourceClaimStatus is the status of the resource claim in this DRA resource.

                        Exactly one of resourceClaimStatus and resourceClaimTemplateStatus will be set.
                      properties:
                        name:
                          description: Name is the name of the ResourceClaim.
                          type: string
                        state:
                          description: |-
                            State is the state of the ResourceClaim.
                            * pending: the resource claim is pending allocation.
                            * deleted: the resource claim has a deletion timestamp set but is not yet finalized.
                            * allocated: the resource claim is allocated to a pod.
                            * reserved: the resource claim is consumed by a pod.
                            This field will have one or more of the above values depending on the status of the resource claim.
                          type: string
                      required:
                      - name
                      - state
                      type: object
                    resourceClaimTemplateStatus:
                      description: |-
                        ResourceClaimTemplateStatus is the status of the resource claim template in this DRA resource.

                        Exactly one of resourceClaimStatus and resourceClaimTemplateStatus will be set.
                      properties:
                        name:
                          description: Name is the name of the resource claim template.
                          type: string
                        resourceClaimStatuses:
                          description: ResourceClaimStatuses is the statuses of the
                            generated resource claims from this resource claim template.
                          items:
                            description: DRAResourceClaimStatusInfo defines the status
                              of a ResourceClaim referenced in the DRAResource.
                            properties:
                              name:
                                description: Name is the name of the ResourceClaim.
                                type: string
                              state:
                                description: |-
                                  State is the state of the ResourceClaim.
                                  * pending: the resource claim is pending allocation.
                                  * deleted: the resource claim has a deletion timestamp set but is not yet finalized.
                                  * allocated: the resource claim is allocated to a pod.
                                  * reserved: the resource claim is consumed by a pod.
                                  This field will have one or more of the above values depending on the status of the resource claim.
                                type: string
                            required:
                            - name
                            - state
                            type: object
                          type: array
                      required:
                      - name
                      type: object
                  required:
                  - name
                  type: object
                  x-kubernetes-validations:
                  - message: exactly one of resourceClaimStatus and resourceClaimTemplateStatus
                      must be set.
                    rule: has(self.resourceClaimStatus) != has(self.resourceClaimTemplateStatus)
                type: array
                x-kubernetes-list-map-keys:
                - name
                x-kubernetes-list-type: map
              model:
                description: ModelStatus defines the configuration of the NIMService
                  model.
                properties:
                  clusterEndpoint:
                    type: string
                  externalEndpoint:
                    type: string
                  name:
                    type: string
                required:
                - clusterEndpoint
                - externalEndpoint
                - name
                type: object
              state:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}

---
# Source: k8s-nim-operator/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: k8s-nim-operator
  labels:
    app.kubernetes.io/component: rbac
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
  annotations:
    {}
---
# Source: k8s-nim-operator/templates/manager-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: k8s-nim-operator-role
  labels:
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - configmaps
  - persistentvolumeclaims
  - secrets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - get
  - list
  - create
  - update
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints
  - pods
  - pods/log
  - pods/eviction
  - serviceaccounts
  - services
  - services/finalizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - create
  - delete
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - deployments
  - statefulsets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemocustomizers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemocustomizers/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemocustomizers/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoguardrails
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoguardrails/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoguardrails/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemodatastores
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemodatastores/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemodatastores/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoevaluators
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoevaluators/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoevaluators/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoentitystores
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoentitystores/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nemoentitystores/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimcaches
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimcaches/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimcaches/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
    - apps.nvidia.com
  resources:
    - nimbuilds
  verbs:
    - create
    - delete
    - get
    - list
    - patch
    - update
    - watch
- apiGroups:
    - apps.nvidia.com
  resources:
    - nimbuilds/finalizers
  verbs:
    - update
- apiGroups:
    - apps.nvidia.com
  resources:
    - nimbuilds/status
  verbs:
    - get
    - patch
    - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimpipelines
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimpipelines/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimpipelines/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimservices
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimservices/finalizers
  verbs:
  - update
- apiGroups:
  - apps.nvidia.com
  resources:
  - nimservices/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - batch
  resources:
  - jobs/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - config.openshift.io
  resources:
  - clusterversions
  - proxies
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
- apiGroups:
  - monitoring.coreos.com
  resources:
  - prometheusrules
  - servicemonitors
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - rolebindings
  - roles
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - resource.k8s.io
  resources:
  - resourceclaims
  - resourceclaimtemplates
  verbs:
  - get
  - list
  - watch
  - create
  - delete
- apiGroups:
  - route.openshift.io
  resources:
  - routes
  verbs:
  - create
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - create
  - get
  - list
  - patch
  - update
  - watch
  - delete
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - scheduling.k8s.io
  resources:
  - priorityclasses
  verbs:
  - create
  - get
  - list
  - watch
- apiGroups:
  - security.openshift.io
  resourceNames:
  - nonroot
  - anyuid
  - hostmount-anyuid
  resources:
  - securitycontextconstraints
  verbs:
  - use
- apiGroups:
  - security.openshift.io
  resources:
  - securitycontextconstraints
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
- apiGroups:
  - batch.volcano.sh
  resources:
  - jobs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - batch.volcano.sh
  resources:
  - jobs/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - nvidia.com
  resources:
  - nemoentityhandlers
  - nemotrainingjobs
  - nemotrainingjobs/status
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - scheduling.incubator.k8s.io
  - scheduling.volcano.sh
  resources:
  - podgroups
  - queues
  - queues/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - nodeinfo.volcano.sh
  resources:
  - numatopologies
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - run.ai
  resources:
  - trainingworkloads
  - runaijobs
  verbs:
  - get
  - list
  - watch
  - delete
  - patch
  - update
- apiGroups:
  - leaderworkerset.x-k8s.io
  resources:
  - leaderworkersets
  verbs:
  - create
  - get
  - list
  - watch
  - delete
  - patch
  - update
- apiGroups:
  - serving.kserve.io
  resources:
  - inferenceservices
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - leaderworkerset.x-k8s.io
  resources:
  - leaderworkersets
  verbs:
  - create
  - get
  - list
  - watch
  - delete
  - patch
  - update
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - watch
  - patch
  - update
- apiGroups:
  - gateway.networking.k8s.io
  resources:
  - httproutes
  - grpcroutes
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - resource.nvidia.com
  resources:
  - computedomains
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - inference.networking.k8s.io
  resources:
  - inferencepools
  - inferenceobjectives
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - inference.networking.x-k8s.io
  resources:
  - inferencepools
  - inferenceobjectives
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
---
# Source: k8s-nim-operator/templates/metrics-reader-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: k8s-nim-operator-metrics-reader
  labels:
    app.kubernetes.io/component: kube-rbac-proxy
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
rules:
- nonResourceURLs:
  - /metrics
  verbs:
  - get
---
# Source: k8s-nim-operator/templates/manager-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: k8s-nim-operator-rolebinding
  labels:
    app.kubernetes.io/component: rbac
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: k8s-nim-operator-role
subjects:
- kind: ServiceAccount
  name: k8s-nim-operator
  namespace: nvidia-nim
---
# Source: k8s-nim-operator/templates/leader-election-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: k8s-nim-operator-leader-election-role
  labels:
    app.kubernetes.io/component: rbac
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
# Source: k8s-nim-operator/templates/leader-election-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: k8s-nim-operator-leader-election-rolebinding
  labels:
    app.kubernetes.io/component: rbac
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: k8s-nim-operator-leader-election-role
subjects:
- kind: ServiceAccount
  name: k8s-nim-operator
  namespace: 'nvidia-nim'
---
# Source: k8s-nim-operator/templates/admission-controller.yaml
apiVersion: v1
kind: Service
metadata:
  name: k8s-nim-operator-webhook-service
  namespace: nvidia-nim
  labels:
    control-plane: controller-manager
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
spec:
  ports:
    - port: 443
      protocol: TCP
      targetPort: 9443
  selector:
    control-plane: controller-manager
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
---
# Source: k8s-nim-operator/templates/metrics-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: k8s-nim-operator-metrics-service
  labels:
    app.kubernetes.io/component: kube-rbac-proxy
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    control-plane: controller-manager
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
spec:
  type: ClusterIP
  selector:
    control-plane: controller-manager
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
  ports:
  - name: metrics
    port: 8080
    protocol: TCP
---
# Source: k8s-nim-operator/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k8s-nim-operator
  labels:
    app.kubernetes.io/component: manager
    app.kubernetes.io/created-by: k8s-nim-operator
    app.kubernetes.io/part-of: k8s-nim-operator
    control-plane: controller-manager
    helm.sh/chart: k8s-nim-operator-3.1.0
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/instance: k8s-nim-operator
    app.kubernetes.io/version: "3.1.0"
    app.kubernetes.io/managed-by: Helm
  annotations:
    {}
spec:
  replicas: 1
  selector:
    matchLabels:
      control-plane: controller-manager
      app.kubernetes.io/name: k8s-nim-operator
      app.kubernetes.io/instance: k8s-nim-operator
  template:
    metadata:
      labels:
        control-plane: controller-manager
        app.kubernetes.io/name: k8s-nim-operator
        app.kubernetes.io/instance: k8s-nim-operator
      annotations:
        kubectl.kubernetes.io/default-container: manager
    spec:
      containers:
      - args:
        - --health-probe-bind-address=:8081
        - --metrics-bind-address=:8080
        - --leader-elect
        - --zap-devel=false
        - --zap-log-level=info
        - --zap-stacktrace-level=error
        - --zap-encoder=json
        command:
        - /manager
        image: nvcr.io/nvidia/cloud-native/k8s-nim-operator:v3.1.0
        imagePullPolicy: Always
        ports:
          - containerPort: 9443
            name: webhook-server
            protocol: TCP
        volumeMounts:
          - mountPath: /tmp/k8s-webhook-server/serving-certs
            name: cert
            readOnly: true
        env:
          - name: WATCH_NAMESPACE
            value: ""
          - name: OPERATOR_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
          - name: ENABLE_WEBHOOKS
            value: "true"
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8081
          initialDelaySeconds: 15
          periodSeconds: 20
        name: manager
        readinessProbe:
          httpGet:
            path: /readyz
            port: 8081
          initialDelaySeconds: 5
          periodSeconds: 10
        resources:
          limits:
            cpu: "1"
            memory: 256Mi
          requests:
            cpu: 500m
            memory: 128Mi
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
            - ALL
      imagePullSecrets:
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: k8s-nim-operator
      terminationGracePeriodSeconds: 10
      volumes:
        - name: cert
          secret:
            secretName: k8s-nim-operator-webhook-server-cert
            defaultMode: 420
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - preference:
              matchExpressions:
              - key: node-role.kubernetes.io/control-plane
                operator: In
                values:
                - ""
            weight: 1
      tolerations:
        - operator: Exists
---
# Source: k8s-nim-operator/templates/admission-controller.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: k8s-nim-operator-validating-webhook-configuration
  annotations:
    cert-manager.io/inject-ca-from: nvidia-nim/k8s-nim-operator-serving-cert
  labels:
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/managed-by: helm
webhooks:
  - name: vnimcache-v1alpha1.kb.io
    admissionReviewVersions: ["v1"]
    clientConfig:
      service:
        name: k8s-nim-operator-webhook-service
        namespace: nvidia-nim
        path: /validate-apps-nvidia-com-v1alpha1-nimcache
    failurePolicy: Fail
    rules:
      - apiGroups: ["apps.nvidia.com"]
        apiVersions: ["v1alpha1"]
        operations: ["CREATE", "UPDATE"]
        resources: ["nimcaches"]
    sideEffects: None
  - name: vnimservice-v1alpha1.kb.io
    admissionReviewVersions: ["v1"]
    clientConfig:
      service:
        name: k8s-nim-operator-webhook-service
        namespace: nvidia-nim
        path: /validate-apps-nvidia-com-v1alpha1-nimservice
    failurePolicy: Fail
    rules:
      - apiGroups: ["apps.nvidia.com"]
        apiVersions: ["v1alpha1"]
        operations: ["CREATE", "UPDATE"]
        resources: ["nimservices"]
    sideEffects: None
---
# Source: k8s-nim-operator/templates/admission-controller.yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: k8s-nim-operator-serving-cert
  namespace: nvidia-nim
  labels:
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/managed-by: helm
spec:
  dnsNames:
    - k8s-nim-operator-webhook-service.nvidia-nim.svc
    - k8s-nim-operator-webhook-service.nvidia-nim.svc.cluster.local
  issuerRef:
    kind: Issuer
    name: k8s-nim-operator-selfsigned-issuer
  secretName: k8s-nim-operator-webhook-server-cert
---
# Source: k8s-nim-operator/templates/admission-controller.yaml
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: k8s-nim-operator-selfsigned-issuer
  namespace: nvidia-nim
  labels:
    app.kubernetes.io/name: k8s-nim-operator
    app.kubernetes.io/managed-by: helm
spec:
  selfSigned: {}
