310 lines
11 KiB
YAML
310 lines
11 KiB
YAML
# --------------------------------------------------------------
|
|
# Configuration file for the Kubeflow Notebooks UI.
|
|
#
|
|
# About the `readOnly` configs:
|
|
# - when `readOnly` is set to "true", the respective option
|
|
# will be disabled for users and only set by the admin
|
|
# - when 'readOnly' is missing, it defaults to 'false'
|
|
# --------------------------------------------------------------
|
|
|
|
spawnerFormDefaults:
|
|
################################################################
|
|
# Container Images
|
|
################################################################
|
|
# if users can input custom images, or only select from dropdowns
|
|
allowCustomImage: true
|
|
|
|
# if the registry of the container image is hidden from display
|
|
hideRegistry: true
|
|
|
|
# if the tag of the container image is hidden from display
|
|
hideTag: false
|
|
|
|
# configs for the ImagePullPolicy
|
|
imagePullPolicy:
|
|
readOnly: false
|
|
|
|
# the default ImagePullPolicy
|
|
# (possible values: "Always", "IfNotPresent", "Never")
|
|
value: IfNotPresent
|
|
|
|
################################################################
|
|
# Jupyter-like Container Images
|
|
#
|
|
# NOTES:
|
|
# - the `image` section is used for "Jupyter-like" apps whose
|
|
# HTTP path is configured by the "NB_PREFIX" environment variable
|
|
################################################################
|
|
image:
|
|
# the default container image
|
|
value: ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-scipy:v1.10.0
|
|
|
|
# the list of available container images in the dropdown
|
|
options:
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-scipy:v1.10.0
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-pytorch-full:v1.10.0
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-pytorch-cuda-full:v1.10.0
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-pytorch-gaudi-full:v1.10.0
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-tensorflow-full:v1.10.0
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/jupyter-tensorflow-cuda-full:v1.10.0
|
|
|
|
################################################################
|
|
# VSCode-like Container Images (Group 1)
|
|
#
|
|
# NOTES:
|
|
# - the `imageGroupOne` section is used for "VSCode-like" apps that
|
|
# expose themselves under the HTTP root path "/" and support path
|
|
# rewriting without breaking
|
|
# - the annotation `notebooks.kubeflow.org/http-rewrite-uri: "/"` is
|
|
# set on Notebooks spawned by this group, to make Istio rewrite
|
|
# the path of HTTP requests to the HTTP root
|
|
################################################################
|
|
imageGroupOne:
|
|
# the default container image
|
|
value: ghcr.io/kubeflow/kubeflow/notebook-servers/codeserver-python:v1.10.0
|
|
|
|
# the list of available container images in the dropdown
|
|
options:
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/codeserver-python:v1.10.0
|
|
|
|
################################################################
|
|
# RStudio-like Container Images (Group 2)
|
|
#
|
|
# NOTES:
|
|
# - the `imageGroupTwo` section is used for "RStudio-like" apps whose
|
|
# HTTP path is configured by the "X-RStudio-Root-Path" header
|
|
# - the annotation `notebooks.kubeflow.org/http-rewrite-uri: "/"` is
|
|
# set on Notebooks spawned by this group, to make Istio rewrite
|
|
# the path of HTTP requests to the HTTP root
|
|
# - the annotation `notebooks.kubeflow.org/http-headers-request-set` is
|
|
# set on Notebooks spawned by this group, such that Istio injects the
|
|
# "X-RStudio-Root-Path" header to all request
|
|
################################################################
|
|
imageGroupTwo:
|
|
# the default container image
|
|
value: ghcr.io/kubeflow/kubeflow/notebook-servers/rstudio-tidyverse:v1.10.0
|
|
|
|
# the list of available container images in the dropdown
|
|
options:
|
|
- ghcr.io/kubeflow/kubeflow/notebook-servers/rstudio-tidyverse:v1.10.0
|
|
|
|
################################################################
|
|
# CPU Resources
|
|
################################################################
|
|
cpu:
|
|
readOnly: false
|
|
|
|
# the default cpu request for the container
|
|
value: "0.5"
|
|
|
|
# a factor by which to multiply the CPU request calculate the cpu limit
|
|
# (to disable cpu limits, set as "none")
|
|
limitFactor: "1.2"
|
|
|
|
################################################################
|
|
# Memory Resources
|
|
################################################################
|
|
memory:
|
|
readOnly: false
|
|
|
|
# the default memory request for the container
|
|
value: "1.0Gi"
|
|
|
|
# a factor by which to multiply the memory request calculate the memory limit
|
|
# (to disable memory limits, set as "none")
|
|
limitFactor: "1.2"
|
|
|
|
################################################################
|
|
# GPU/Device-Plugin Resources
|
|
################################################################
|
|
gpus:
|
|
readOnly: false
|
|
|
|
# configs for gpu/device-plugin limits of the container
|
|
# https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/#using-device-plugins
|
|
value:
|
|
# the `limitKey` of the default vendor
|
|
# (to have no default, set as "")
|
|
vendor: ""
|
|
|
|
# the list of available vendors in the dropdown
|
|
# `limitsKey` - what will be set as the actual limit
|
|
# `uiName` - what will be displayed in the dropdown UI
|
|
vendors:
|
|
- limitsKey: "nvidia.com/gpu"
|
|
uiName: "NVIDIA"
|
|
- limitsKey: "amd.com/gpu"
|
|
uiName: "AMD"
|
|
- limitsKey: "habana.ai/gaudi"
|
|
uiName: "Intel Gaudi"
|
|
|
|
# the default value of the limit
|
|
# (possible values: "none", "1", "2", "4", "8")
|
|
num: "none"
|
|
|
|
################################################################
|
|
# Workspace Volumes
|
|
################################################################
|
|
workspaceVolume:
|
|
readOnly: false
|
|
|
|
# the default workspace volume to be created and mounted
|
|
# (to have no default, set `value: null`)
|
|
value:
|
|
mount: /home/jovyan
|
|
|
|
# pvc configs for creating new workspace volumes
|
|
# https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#persistentvolumeclaim-v1-core
|
|
newPvc:
|
|
metadata:
|
|
# "{notebook-name}" is replaced with the Notebook name
|
|
name: "{notebook-name}-workspace"
|
|
spec:
|
|
#storageClassName: my-storage-class
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
|
|
################################################################
|
|
# Data Volumes
|
|
################################################################
|
|
dataVolumes:
|
|
readOnly: false
|
|
|
|
# a list of additional data volumes to be created and/or mounted
|
|
value: []
|
|
#value:
|
|
# - mount: /home/jovyan/datavol-1
|
|
# newPvc:
|
|
# metadata:
|
|
# name: "{notebook-name}-datavol-1"
|
|
# spec:
|
|
# resources:
|
|
# requests:
|
|
# storage: 5Gi
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
#
|
|
# - mount: /home/jovyan/datavol-1
|
|
# existingSource:
|
|
# persistentVolumeClaim:
|
|
# claimName: "test-pvc"
|
|
|
|
################################################################
|
|
# Affinity
|
|
################################################################
|
|
affinityConfig:
|
|
readOnly: false
|
|
|
|
# the `configKey` of the default affinity config
|
|
# (to have no default, set as "")
|
|
# (if `readOnly`, the default `value` will be the only accessible option)
|
|
value: ""
|
|
|
|
# the list of available affinity configs in the dropdown
|
|
options: []
|
|
#options:
|
|
# - configKey: "dedicated_node_per_notebook"
|
|
# displayName: "Dedicated Node Per Notebook"
|
|
# affinity:
|
|
# # Require a Node with label `lifecycle=kubeflow-notebook`
|
|
# nodeAffinity:
|
|
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
# nodeSelectorTerms:
|
|
# - matchExpressions:
|
|
# - key: "lifecycle"
|
|
# operator: "In"
|
|
# values:
|
|
# - "kubeflow-notebook"
|
|
#
|
|
# # Require a Node WITHOUT an existing Pod having `notebook-name` label
|
|
# podAntiAffinity:
|
|
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
# - labelSelector:
|
|
# matchExpressions:
|
|
# - key: "notebook-name"
|
|
# operator: "Exists"
|
|
# topologyKey: "kubernetes.io/hostname"
|
|
# # WARNING: `namespaceSelector` is Beta in 1.22 and Stable in 1.24,
|
|
# # setting to {} is required for affinity to work across Namespaces
|
|
# namespaceSelector: {}
|
|
|
|
################################################################
|
|
# Tolerations
|
|
################################################################
|
|
tolerationGroup:
|
|
readOnly: false
|
|
|
|
# the `groupKey` of the default toleration group
|
|
# (to have no default, set as "")
|
|
# (if `readOnly`, the default `value` will be the only accessible option)
|
|
value: ""
|
|
|
|
# the list of available toleration groups in the dropdown
|
|
options: []
|
|
#options:
|
|
# - groupKey: "group_1"
|
|
# displayName: "4 CPU 8Gb Mem at ~$X.XXX USD per day"
|
|
# tolerations:
|
|
# - key: "dedicated"
|
|
# operator: "Equal"
|
|
# value: "kubeflow-c5.xlarge"
|
|
# effect: "NoSchedule"
|
|
#
|
|
# - groupKey: "group_2"
|
|
# displayName: "8 CPU 16Gb Mem at ~$X.XXX USD per day"
|
|
# tolerations:
|
|
# - key: "dedicated"
|
|
# operator: "Equal"
|
|
# value: "kubeflow-c5.2xlarge"
|
|
# effect: "NoSchedule"
|
|
#
|
|
# - groupKey: "group_3"
|
|
# displayName: "16 CPU 32Gb Mem at ~$X.XXX USD per day"
|
|
# tolerations:
|
|
# - key: "dedicated"
|
|
# operator: "Equal"
|
|
# value: "kubeflow-c5.4xlarge"
|
|
# effect: "NoSchedule"
|
|
#
|
|
# - groupKey: "group_4"
|
|
# displayName: "32 CPU 256Gb Mem at ~$X.XXX USD per day"
|
|
# tolerations:
|
|
# - key: "dedicated"
|
|
# operator: "Equal"
|
|
# value: "kubeflow-r5.8xlarge"
|
|
# effect: "NoSchedule"
|
|
|
|
################################################################
|
|
# Shared Memory
|
|
################################################################
|
|
shm:
|
|
readOnly: false
|
|
|
|
# the default state of the "Enable Shared Memory" toggle
|
|
value: true
|
|
|
|
################################################################
|
|
# PodDefaults
|
|
################################################################
|
|
configurations:
|
|
readOnly: false
|
|
|
|
# the list of PodDefault names that are selected by default
|
|
# (take care to ensure these PodDefaults exist in Profile Namespaces)
|
|
value: []
|
|
#value:
|
|
# - my-pod-default
|
|
|
|
################################################################
|
|
# Environment
|
|
#
|
|
# NOTE:
|
|
# - these configs are only used by the ROK "flavor" of the UI
|
|
################################################################
|
|
environment:
|
|
readOnly: false
|
|
value: {}
|