Newer
Older
# This file can update the JupyterHub Helm chart's default configuration values.
#
# For reference see the configuration reference and default values, but make
# sure to refer to the Helm chart version of interest to you!
#
# Introduction to YAML: https://www.youtube.com/watch?v=cdLNKUoMc6c
# Chart config reference: https://zero-to-jupyterhub.readthedocs.io/en/stable/resources/reference.html
# Chart default values: https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/HEAD/jupyterhub/values.yaml
# Available chart versions: https://jupyterhub.github.io/helm-chart/
#
client_id: $CILOGON_ID
client_secret: $CILOGON_SECRET
oauth_callback_url: https://csusb-hub-dev.nrp-nautilus.io/hub/oauth_callback
admin_users: ["dvu@csusb.edu", "000065181@csusb.edu", "youngsu.kim@csusb.edu", "006501270@csusb.edu"]
allowed_users:
- 000065181@csusb.edu
- 004793408@csusb.edu
- 006501322@csusb.edu
- 003574622@csusb.edu
- 005795019@csusb.edu
- 005061741@csusb.edu
- 003087200@csusb.edu
- 000030081@csusb.edu
- dmishin@ucsd.edu
- yunfei.hou@csusb.edu
- 005788948@csusb.edu
- jennifer.jin@csusb.edu
- 006501218@csusb.edu
- bilal.khan@csusb.edu
- 006501257@csusb.edu
# IDS faculty
- nasrin.mohabbati@csusb.edu
- 006497097@csusb.edu
- sepideh.alavi@csusb.edu
- 006501413@csusb.edu
JupyterHub:
admin_access: true
authenticator_class: cilogon
extraConfig:
templates: |
c.JupyterHub.template_paths = ['/etc/jupyterhub/custom']
# https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues/1990
# To use these .gitlab-ci.yml needs to be updated accordingly
extraFiles:
image_select_idp:
mountPath: /usr/local/share/jupyterhub/static/select_idp_cilogon.png
# Files in /usr/local/etc/jupyterhub/jupyterhub_config.d are
# automatically loaded in alphabetical order of the final file
# name when JupyterHub starts.
# for dynamic resource allocation
custom_spawner:
mountPath: /usr/local/etc/jupyterhub/jupyterhub_config.d/my_spawner.py
# Custom profiles list for the spawner above
custom_spawner_profile:
mountPath: /etc/jupyterhub/custom/my_spawner.html
# Additional custom html files
custom_login_html:
mountPath: /etc/jupyterhub/custom/login.html
custom_page_html:
mountPath: /etc/jupyterhub/custom/page.html
custom_spawn_pending_html:
mountPath: /etc/jupyterhub/custom/spawn_pending.html
# JupyterHub Start with event log redirection; & cannot be passed in yaml files
jupyterhub_event_log:
mountPath: /etc/jupyterhub/custom/event_command.sh
stringData: |
#! /bin/bash
/usr/local/bin/jupyterhub --config /usr/local/etc/jupyterhub/jupyterhub_config.py --upgrade-db &>> /srv/jupyterhub/event.log
mode: 0777
args: [ "/etc/jupyterhub/custom/event_command.sh" ]
# nodeSelector:
# topology.kubernetes.io/region: "us-west"
# kubernetes.io/hostname: "perfsonar.csusb.edu"
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# env: system
image:
name: jupyterhub/k8s-hub
tag: '1.2.0'
pullPolicy: ''
pullSecrets: []
livenessProbe:
# The livenessProbe's aim to give JupyterHub sufficient time to startup but
# be able to restart if it becomes unresponsive for ~5 min.
enabled: true
initialDelaySeconds: 300
periodSeconds: 10
failureThreshold: 30
timeoutSeconds: 3
readinessProbe:
# The readinessProbe's aim is to provide a successful startup indication,
# but following that never become unready before its livenessProbe fail and
# restarts it if needed. To become unready following startup serves no
# purpose as there are no other pod to fallback to in our non-HA deployment.
enabled: true
initialDelaySeconds: 0
periodSeconds: 2
failureThreshold: 1000
timeoutSeconds: 1
loadBalancerIP:
deploymentStrategy:
type: Recreate
db:
type: sqlite-pvc
pvc:
accessModes:
- ReadWriteOnce
storageClassName: rook-ceph-block
resources:
limits:
cpu: "2"
service:
type: ClusterIP
chp:
resources:
limits:
cpu: "2"
singleuser:
extraNodeAffinity:
required:
- matchExpressions:
- 'key': 'topology.kubernetes.io/region'
'operator': 'In'
'values': ["us-west"]
cloudMetadata:
blockWithIptables: false
networkPolicy:
enabled: false
storage:
type: dynamic
extraLabels: {}
extraVolumes: []
extraVolumeMounts: []
capacity: 100Gi
homeMountPath: /home/jovyan
dynamic:
storageClass: rook-ceph-block
pvcNameTemplate: claim-{username}{servername}
volumeNameTemplate: volume-{username}{servername}
storageAccessModes: [ReadWriteOnce]
# extraVolumes(Mounts) are overriden by the custom spawner -> extraFiles/my_spawner.py
# extraVolumes:
# - name: mkshare-script
# configMap:
# name: mkshare-script
# defaultMode: 0777
# extraVolumeMounts:
# mountPath: /home/shared
# - name: mkshare-script
# mountPath: /usr/local/bin/before-notebook.d/mkshare.sh
# subPath: mkshare.sh
name: localhost:30081/prp/jupyter-stack/minimal
# cmd: start-notebook.sh
cmd: jupyterhub-singleuser
# profileList:
# - display_name: Stack Minimal
# default: true
# kubespawner_override:
# image_spec: localhost:30081/prp/jupyter-stack/minimal
scheduling:
userScheduler:
enabled: false
# prePuller relates to the hook|continuous-image-puller DaemonsSets
prePuller:
hook:
enabled: false
continuous:
enabled: false
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: haproxy
users: false
removeNamedServers: false
timeout: 3600
every: 600