# SPDX-FileCopyrightText: Copyright (c) 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.
# Default values for dynamo-operator.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

global:
  # NGC API Key to use as default for docker registry password
  NGC_API_KEY: ""

# Namespace restriction configuration for the operator
# If enabled: true and targetNamespace is empty, the operator will be restricted to the release namespace
# If enabled: true and targetNamespace is set, the operator will be restricted to the specified namespace
# If enabled: false, the operator will run with cluster-wide permissions
namespaceRestriction:
  # Whether to restrict the operator to a single namespace
  enabled: false
  # The target namespace to restrict to. If empty, defaults to the release namespace
  targetNamespace: ""
controllerManager:
  kubeRbacProxy:
    args:
    - --secure-listen-address=0.0.0.0:8443
    - --upstream=http://127.0.0.1:8080/
    - --logtostderr=true
    - --v=0
    containerSecurityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
    image:
      repository: gcr.io/kubebuilder/kube-rbac-proxy
      tag: v0.15.0
    resources:
      limits:
        cpu: 500m
        memory: 128Mi
      requests:
        cpu: 5m
        memory: 64Mi
  manager:
    args:
    - --health-probe-bind-address=:8081
    - --metrics-bind-address=127.0.0.1:8080
    - --leader-elect
    - --leader-election-id=dynamo.nko.nvidia.com
    containerSecurityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
    image:
      repository: controller
      tag: latest
    resources:
      limits:
        cpu: 1024m
        memory: 2Gi
      requests:
        cpu: 512m
        memory: 1Gi
  replicas: 1
  serviceAccount:
    annotations: {}

dynamo:
  yatai:
    endpoint: http://dynamo-server.dynamo-system.svc.cluster.local
    clusterName: default

  yataiSystem:
    # If left blank, will default to the installation namespace
    namespace: ""

  internalImages:
    bentoDownloader: quay.io/bentoml/bento-downloader:0.0.5
    kaniko: quay.io/bentoml/kaniko:debug
    buildkit: quay.io/bentoml/buildkit:master
    buildkitRootless: quay.io/bentoml/buildkit:master-rootless
    metricsTransformer: quay.io/bentoml/yatai-bento-metrics-transformer:0.0.4
    debugger: quay.io/bentoml/bento-debugger:0.0.8
    monitorExporter: quay.io/bentoml/bentoml-monitor-exporter:0.0.3
    proxy: quay.io/bentoml/bentoml-proxy:0.0.1

  disableAutomateBentoImageBuilder: false
  enableRestrictedSecurityContext: false
  disableYataiComponentRegistration: false

  dockerRegistry:
    server: 'nvcr.io/nvidian/nim-llm-dev'
    inClusterServer: ''
    username: '$oauthtoken'
    # If not set, will use global.NGC_API_KEY
    password: ""
    passwordExistingSecretName: ''
    passwordExistingSecretKey: ''
    secure: true
    bentoRepositoryName: yatai-bentos

  bentoImageBuildEngine: kaniko # options: kaniko, buildkit, buildkit-rootless
  addNamespacePrefixToImageName: false

  estargz:
    enabled: false

  kaniko:
    cacheRepo: ''
    snapshotMode: '' # options: full, redo, time




imagePullSecrets: []
kubernetesClusterDomain: cluster.local
metricsService:
  ports:
  - name: https
    port: 8443
    protocol: TCP
    targetPort: https
  type: ClusterIP