manifests/apps/jupyter/jupyter-web-app/upstream/base/configs/spawner_ui_config.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: {}