# Copyright (c) 2025 SUSE LLC All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0

global:
  # -- Global override for container image registry
  imageRegistry: ""
  # -- Global override for container image registry pull secrets
  imagePullSecrets: []

# Default values for pytorch.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/
image:
  # -- Image registry to use for the pytorch container      
  registry: dp.apps.rancher.io
  # -- Image repository to use for the pytorch container
  repository: containers/pytorch
  # -- Image tag to use for the pytorch container
  tag: "2.8.0-nvidia"
  # This sets the pull policy for images.
  pullPolicy: IfNotPresent

# -- Configure imagePullSecrets to use private registry
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry>
imagePullSecrets: []
# This is to override the chart name.
nameOverride: ""
fullnameOverride: ""

gpu:
  # -- Enable GPU integration
  enabled: false
  # -- GPU type: 'nvidia' or 'amd'
  # If 'gpu.enabled', default value is nvidia
  # If set to 'amd', this will add 'rocm' suffix to image tag if 'image.tag' is not override
  # This is due cause AMD and CPU/CUDA are different images
  type: 'nvidia'
  # -- Specify the number of GPU
  # If you use MIG section below then this parameter is ignored
  number: 1
  # -- only for nvidia cards; change to (example) 'nvidia.com/mig-1g.10gb' to use MIG slice
  nvidiaResource: "nvidia.com/gpu"
  # nvidiaResource: "nvidia.com/mig-1g.10gb" # example
  # If you want to use more than one NVIDIA MIG you can use the following syntax (then nvidiaResource is ignored and only the configuration in the following MIG section is used)

  mig:
    # -- Enable multiple mig devices
    # If enabled you will have to specify the mig devices
    # If enabled is set to false this section is ignored
    enabled: false 

    # -- Specify the mig devices and the corresponding number
    devices: {}
        #        1g.10gb: 1
        #        3g.40gb: 1

# Specify runtime class
runtimeClassName: ""

# This is for setting Kubernetes Annotations to a Pod.
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ 
podAnnotations: {}
# This is for setting Kubernetes Labels to a Pod.
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
podLabels: {}

podSecurityContext: {}
  # fsGroup: 2000

securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

service:
  enabled: false
  # -- Service type
  type: ClusterIP
  # -- Service port
  port: 
  containerPort: 
  # -- Service node port when service type is 'NodePort'
  nodePort: ""
  # -- Load Balancer IP address
  loadBalancerIP:
  loadBalancerClass:
  # -- Annotations to add to the service
  annotations: {}

#This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/
serviceAccount:
  # Specifies whether a service account should be created
  create: false
  # Automatically mount a ServiceAccount's API credentials?
  automount: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress:
  enabled: false
  className: ""
  annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

resources: 
  # -- Pod requests
  requests: {}
  # Memory request
  # memory: 4096Mi

  # CPU request
  # cpu: 2000m

  # -- Pod limit
  limits: {}
  # Memory limit
  # memory: 8192Mi
# CPU limit
# cpu: 4000m

#  Configure extra options for liveness probe
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes 
livenessProbe:
  # -- Enable livenessProbe
  enabled: false
  # -- Initial delay seconds for livenessProbe
  initialDelaySeconds: 5 
  # -- Period seconds for livenessProbe
  periodSeconds: 5
  # -- Timeout seconds for livenessProbe
  timeoutSeconds: 20
  # -- Failure threshold for livenessProbe
  failureThreshold: 6
  # -- Success threshold for livenessProbe
  successThreshold: 1
# Configure extra options for readiness probe
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
readinessProbe:
  # -- Enable readinessProbe
  enabled: false
  # -- Initial delay seconds for readinessProbe
  initialDelaySeconds: 5 
  # -- Period seconds for readinessProbe
  periodSeconds: 5
  # -- Timeout seconds for readinessProbe
  timeoutSeconds: 20
  # -- Failure threshold for readinessProbe
  failureThreshold: 6
  # -- Success threshold for readinessProbe
  successThreshold: 1
  
# Additional volumes on the output Deployment definition.
volumes: []
# - name: foo
#   secret:
#     secretName: mysecret
#     optional: false

# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# - name: foo
#   mountPath: "/etc/foo"
#   readOnly: true

nodeSelector: {}

tolerations: []

affinity: {}

entrypointscript:
  filename: ""
  arguments: []

persistence:
  # -- Enable persistence using PVC
  enabled: false
  # -- Persistent Volume access modes
  # Must match those of existing PV or dynamic provisioner
  # Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  accessModes:
    - ReadWriteOnce
  # -- server data Persistent Volume annotations
  annotations: {}
  # -- If you'd like to bring your own PVC for persisting state, pass the name of the
  # created + ready PVC here. If set, this Chart will not create the default PVC.
  # Requires server.persistentVolume.enabled: true
  existingClaim: ""
  # -- server data Persistent Volume size
  size: 30Gi
  # -- server data Persistent Volume Storage Class
  # If defined, storageClassName: <storageClass>
  storageClass: ""
  volumeMode: ""
  subPath: ""
  # -- Pre-existing PV to attach this claim to
  # Useful if a CSI auto-provisions a PV for you and you want to always
  # reference the PV moving forward
  volumeName: ""

gitClone:
  # Enable in order to download files from git repository
  enabled: false 
  # Repository that holds the files
  # # for example - repository: "github.com/<repository name>"
  # Don't put https:// in front
  repository: ""
  # Branch from repository to clone
  revision: ""
  # Existing Kubernetes secret which holds the authentication username and password  
  secretName: ""

# Existing Kubernetes Config map that contains the folder or files you want to load in PyTorch
configMapExtFiles: ""  
