# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.4
  name: dynamographdeployments.nvidia.com
spec:
  group: nvidia.com
  names:
    kind: DynamoGraphDeployment
    listKind: DynamoGraphDeploymentList
    plural: dynamographdeployments
    shortNames:
    - dgd
    singular: dynamographdeployment
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            properties:
              dynamoGraph:
                type: string
              envs:
                items:
                  properties:
                    name:
                      type: string
                    value:
                      type: string
                    valueFrom:
                      properties:
                        configMapKeyRef:
                          properties:
                            key:
                              type: string
                            name:
                              default: ""
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        fieldRef:
                          properties:
                            apiVersion:
                              type: string
                            fieldPath:
                              type: string
                          required:
                          - fieldPath
                          type: object
                          x-kubernetes-map-type: atomic
                        resourceFieldRef:
                          properties:
                            containerName:
                              type: string
                            divisor:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            resource:
                              type: string
                          required:
                          - resource
                          type: object
                          x-kubernetes-map-type: atomic
                        secretKeyRef:
                          properties:
                            key:
                              type: string
                            name:
                              default: ""
                              type: string
                            optional:
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                      type: object
                  required:
                  - name
                  type: object
                type: array
              services:
                additionalProperties:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    autoscaling:
                      properties:
                        behavior:
                          properties:
                            scaleDown:
                              properties:
                                policies:
                                  items:
                                    properties:
                                      periodSeconds:
                                        format: int32
                                        type: integer
                                      type:
                                        type: string
                                      value:
                                        format: int32
                                        type: integer
                                    required:
                                    - periodSeconds
                                    - type
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                selectPolicy:
                                  type: string
                                stabilizationWindowSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            scaleUp:
                              properties:
                                policies:
                                  items:
                                    properties:
                                      periodSeconds:
                                        format: int32
                                        type: integer
                                      type:
                                        type: string
                                      value:
                                        format: int32
                                        type: integer
                                    required:
                                    - periodSeconds
                                    - type
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                selectPolicy:
                                  type: string
                                stabilizationWindowSeconds:
                                  format: int32
                                  type: integer
                              type: object
                          type: object
                        enabled:
                          type: boolean
                        maxReplicas:
                          type: integer
                        metrics:
                          items:
                            properties:
                              containerResource:
                                properties:
                                  container:
                                    type: string
                                  name:
                                    type: string
                                  target:
                                    properties:
                                      averageUtilization:
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        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:
                                properties:
                                  metric:
                                    properties:
                                      name:
                                        type: string
                                      selector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - name
                                    type: object
                                  target:
                                    properties:
                                      averageUtilization:
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        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:
                                properties:
                                  describedObject:
                                    properties:
                                      apiVersion:
                                        type: string
                                      kind:
                                        type: string
                                      name:
                                        type: string
                                    required:
                                    - kind
                                    - name
                                    type: object
                                  metric:
                                    properties:
                                      name:
                                        type: string
                                      selector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - name
                                    type: object
                                  target:
                                    properties:
                                      averageUtilization:
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        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:
                                properties:
                                  metric:
                                    properties:
                                      name:
                                        type: string
                                      selector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - name
                                    type: object
                                  target:
                                    properties:
                                      averageUtilization:
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        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:
                                properties:
                                  name:
                                    type: string
                                  target:
                                    properties:
                                      averageUtilization:
                                        format: int32
                                        type: integer
                                      averageValue:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type:
                                        type: string
                                      value:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        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:
                                type: string
                            required:
                            - type
                            type: object
                          type: array
                        minReplicas:
                          type: integer
                      type: object
                    dynamoNamespace:
                      type: string
                    envFromSecret:
                      type: string
                    envs:
                      items:
                        properties:
                          name:
                            type: string
                          value:
                            type: string
                          valueFrom:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ""
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                                x-kubernetes-map-type: atomic
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                                x-kubernetes-map-type: atomic
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ""
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                    externalServices:
                      additionalProperties:
                        properties:
                          deploymentSelectorKey:
                            type: string
                          deploymentSelectorValue:
                            type: string
                        type: object
                      type: object
                    extraPodMetadata:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    extraPodSpec:
                      properties:
                        affinity:
                          properties:
                            nodeAffinity:
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  items:
                                    properties:
                                      preference:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchFields:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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:
                                        format: int32
                                        type: integer
                                    required:
                                    - preference
                                    - weight
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  properties:
                                    nodeSelectorTerms:
                                      items:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchFields:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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:
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  items:
                                    properties:
                                      podAffinityTerm:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      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
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          matchLabelKeys:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          mismatchLabelKeys:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          namespaceSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      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
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          namespaces:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          topologyKey:
                                            type: string
                                        required:
                                        - topologyKey
                                        type: object
                                      weight:
                                        format: int32
                                        type: integer
                                    required:
                                    - podAffinityTerm
                                    - weight
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  items:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            podAntiAffinity:
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  items:
                                    properties:
                                      podAffinityTerm:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          matchLabelKeys:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          mismatchLabelKeys:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          namespaceSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      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
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          namespaces:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          topologyKey:
                                            type: string
                                        required:
                                        - topologyKey
                                        type: object
                                      weight:
                                        format: int32
                                        type: integer
                                    required:
                                    - podAffinityTerm
                                    - weight
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  items:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  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
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                          type: object
                        containers:
                          items:
                            properties:
                              args:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              env:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                    valueFrom:
                                      properties:
                                        configMapKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ""
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          properties:
                                            apiVersion:
                                              type: string
                                            fieldPath:
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          properties:
                                            containerName:
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ""
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                items:
                                  properties:
                                    configMapRef:
                                      properties:
                                        name:
                                          default: ""
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      type: string
                                    secretRef:
                                      properties:
                                        name:
                                          default: ""
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                type: string
                              imagePullPolicy:
                                type: string
                              lifecycle:
                                properties:
                                  postStart:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        properties:
                                          seconds:
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        properties:
                                          seconds:
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                type: object
                              livenessProbe:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    format: int32
                                    type: integer
                                  grpc:
                                    properties:
                                      port:
                                        format: int32
                                        type: integer
                                      service:
                                        default: ""
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                              name:
                                type: string
                              ports:
                                items:
                                  properties:
                                    containerPort:
                                      format: int32
                                      type: integer
                                    hostIP:
                                      type: string
                                    hostPort:
                                      format: int32
                                      type: integer
                                    name:
                                      type: string
                                    protocol:
                                      default: TCP
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    format: int32
                                    type: integer
                                  grpc:
                                    properties:
                                      port:
                                        format: int32
                                        type: integer
                                      service:
                                        default: ""
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                items:
                                  properties:
                                    resourceName:
                                      type: string
                                    restartPolicy:
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                properties:
                                  claims:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        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
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    type: object
                                type: object
                              restartPolicy:
                                type: string
                              securityContext:
                                properties:
                                  allowPrivilegeEscalation:
                                    type: boolean
                                  appArmorProfile:
                                    properties:
                                      localhostProfile:
                                        type: string
                                      type:
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    properties:
                                      add:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    type: boolean
                                  procMount:
                                    type: string
                                  readOnlyRootFilesystem:
                                    type: boolean
                                  runAsGroup:
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    type: boolean
                                  runAsUser:
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    properties:
                                      level:
                                        type: string
                                      role:
                                        type: string
                                      type:
                                        type: string
                                      user:
                                        type: string
                                    type: object
                                  seccompProfile:
                                    properties:
                                      localhostProfile:
                                        type: string
                                      type:
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    properties:
                                      gmsaCredentialSpec:
                                        type: string
                                      gmsaCredentialSpecName:
                                        type: string
                                      hostProcess:
                                        type: boolean
                                      runAsUserName:
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    format: int32
                                    type: integer
                                  grpc:
                                    properties:
                                      port:
                                        format: int32
                                        type: integer
                                      service:
                                        default: ""
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                type: boolean
                              stdinOnce:
                                type: boolean
                              terminationMessagePath:
                                type: string
                              terminationMessagePolicy:
                                type: string
                              tty:
                                type: boolean
                              volumeDevices:
                                items:
                                  properties:
                                    devicePath:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                items:
                                  properties:
                                    mountPath:
                                      type: string
                                    mountPropagation:
                                      type: string
                                    name:
                                      type: string
                                    readOnly:
                                      type: boolean
                                    recursiveReadOnly:
                                      type: string
                                    subPath:
                                      type: string
                                    subPathExpr:
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        nodeSelector:
                          additionalProperties:
                            type: string
                          type: object
                        priorityClassName:
                          type: string
                        schedulerName:
                          type: string
                        serviceAccountName:
                          type: string
                        tolerations:
                          items:
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                format: int64
                                type: integer
                              value:
                                type: string
                            type: object
                          type: array
                        topologySpreadConstraints:
                          items:
                            properties:
                              labelSelector:
                                properties:
                                  matchExpressions:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                                x-kubernetes-map-type: atomic
                              matchLabelKeys:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              maxSkew:
                                format: int32
                                type: integer
                              minDomains:
                                format: int32
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                            required:
                            - maxSkew
                            - topologyKey
                            - whenUnsatisfiable
                            type: object
                          type: array
                      type: object
                    ingress:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        enabled:
                          type: boolean
                        host:
                          type: string
                        hostPrefix:
                          type: string
                        hostSuffix:
                          type: string
                        ingressControllerClassName:
                          type: string
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                        tls:
                          properties:
                            secretName:
                              type: string
                          type: object
                        useVirtualService:
                          type: boolean
                        virtualServiceGateway:
                          type: string
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      type: object
                    livenessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              default: ""
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    pvc:
                      properties:
                        create:
                          type: boolean
                        mountPoint:
                          type: string
                        name:
                          type: string
                        size:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        storageClass:
                          type: string
                        volumeAccessMode:
                          type: string
                      type: object
                    readinessProbe:
                      properties:
                        exec:
                          properties:
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        failureThreshold:
                          format: int32
                          type: integer
                        grpc:
                          properties:
                            port:
                              format: int32
                              type: integer
                            service:
                              default: ""
                              type: string
                          required:
                          - port
                          type: object
                        httpGet:
                          properties:
                            host:
                              type: string
                            httpHeaders:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            path:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            scheme:
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          format: int32
                          type: integer
                        periodSeconds:
                          format: int32
                          type: integer
                        successThreshold:
                          format: int32
                          type: integer
                        tcpSocket:
                          properties:
                            host:
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        terminationGracePeriodSeconds:
                          format: int64
                          type: integer
                        timeoutSeconds:
                          format: int32
                          type: integer
                      type: object
                    replicas:
                      format: int32
                      type: integer
                    resources:
                      properties:
                        limits:
                          properties:
                            cpu:
                              type: string
                            custom:
                              additionalProperties:
                                type: string
                              type: object
                            gpu:
                              type: string
                            memory:
                              type: string
                          type: object
                        requests:
                          properties:
                            cpu:
                              type: string
                            custom:
                              additionalProperties:
                                type: string
                              type: object
                            gpu:
                              type: string
                            memory:
                              type: string
                          type: object
                      type: object
                    runMode:
                      properties:
                        standalone:
                          type: boolean
                      type: object
                    serviceName:
                      type: string
                  type: object
                type: object
            required:
            - dynamoGraph
            type: object
          status:
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      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: {}
