diff --git a/values.template.yaml b/values.template.yaml index 8f6147811254f45e67eb3be0540848759b6ddeff..a9aae1f8dba592ae064a06fd6a0c988ce68079c2 100644 --- a/values.template.yaml +++ b/values.template.yaml @@ -1,22 +1,37 @@ -# https://ucsd-prp.gitlab.io/userdocs/development/jupyterhub/ +# 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/ +# + hub: config: CILogonOAuthenticator: - client_id: cilogon:/client_id/76c3f7eb194ad6ef6c22a92ce1b54d89 - client_secret: t_zrDuJRlJX4LZhUCrk3iPMwG9MKKuveHZMzqINyET3RfidDEvAnkNRHhYC1NiRtShsThwF0cy4vzLNorNw4-Q - oauth_callback_url: https://csusb-hub-project.nrp-nautilus.io/hub/oauth_callback + client_id: $CILOGON_ID + client_secret: $CILOGON_SECRET + oauth_callback_url: https://csusb-hpc.nrp-nautilus.io/hub/oauth_callback username_claim: "email" - allowed_idps: ["csusb.edu"] JupyterHub: admin_access: true - admin_users: ["dvu@csusb.edu", "000065181@csusb.edu", "youngsu.kim@csusb.edu", "006501270@csusb.edu"] authenticator_class: cilogon - #Restricts access to csusb domains - #allowed_idps command may change its funtionality after update - #https://github.com/jupyterhub/oauthenticator/issues/494 + 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 allowed_idps: ["csusb.edu"] -# initContainers for custom htmls initContainers: - name: git-clone-templates image: alpine/git @@ -42,28 +57,11 @@ hub: extraConfig: templates: | c.JupyterHub.template_paths = ['/etc/jupyterhub/custom'] - -# https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues/1990 - 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 - service: type: ClusterIP annotations: {} ports: - nodePort: + nodePort: loadBalancerIP: deploymentStrategy: type: Recreate @@ -72,29 +70,29 @@ hub: pvc: accessModes: - ReadWriteOnce - storage: 2Gi + storage: 5Gi storageClassName: rook-ceph-block resources: limits: cpu: "2" - memory: 1Gi + memory: 4Gi requests: - cpu: 100m - memory: 512Mi + cpu: "2" + memory: 4Gi networkPolicy: enabled: false proxy: - secretToken: "795cb91892686a06560e9532d2b073b4cdbe102e92ea2b25496e3ae76f240c09" + secretToken: '$SECRET_TOKEN' service: type: ClusterIP chp: resources: limits: cpu: "2" - memory: 1Gi + memory: 4Gi requests: - cpu: 200m - memory: 512Mi + cpu: "2" + memory: 4Gi singleuser: extraNodeAffinity: required: @@ -102,15 +100,6 @@ singleuser: - 'key': 'topology.kubernetes.io/region' 'operator': 'In' 'values': ["us-west"] - # - 'key': 'nvidia.com/cuda.runtime.major' - # 'operator': 'In' - # 'values': ["11"] - # - 'key': 'nvidia.com/cuda.runtime.minor' - # 'operator': 'In' - # 'values': ["4"] - # - 'key': 'kubernetes.io/hostname' - # 'operator': 'In' - # 'values': ['fiona8-0.calit2.uci.edu','fiona8-1.calit2.uci.edu','fiona8-2.calit2.uci.edu','fiona8-3.calit2.uci.edu'] cloudMetadata: blockWithIptables: false networkPolicy: @@ -118,53 +107,94 @@ singleuser: storage: type: dynamic extraLabels: {} - # extraVolumes: [] - # extraVolumeMounts: [] - capacity: 5Gi + extraVolumes: [] + extraVolumeMounts: [] + capacity: 100Gi homeMountPath: /home/jovyan dynamic: storageClass: rook-ceph-block pvcNameTemplate: claim-{username}{servername} volumeNameTemplate: volume-{username}{servername} storageAccessModes: [ReadWriteOnce] - # extraVolumes: - # - name: csusb-hub-project-share - # persistentVolumeClaim: - # claimName: csusb-hub-project-share - # extraVolumeMounts: - # - name: csusb-hub-project-share - # mountPath: /home/jovyan/shared + extraVolumes: + - name: csusb-hpc-share + persistentVolumeClaim: + claimName: csusb-hpc-share + - name: mkshare-script + configMap: + name: mkshare-script + defaultMode: 0777 + extraVolumeMounts: + - name: csusb-hpc-share + mountPath: /home/shared + - name: mkshare-script + mountPath: /usr/local/bin/before-notebook.d/mkshare.sh + subPath: mkshare.sh image: name: localhost:30081/prp/jupyter-stack/prp tag: latest startTimeout: 600 cpu: - limit: 1 - guarantee: 1 + limit: 16 + guarantee: 16 memory: - limit: 2G - guarantee: 2G + limit: 128G + guarantee: 128G extraResource: limits: {} guarantees: {} - cmd: jupyterhub-singleuser + cmd: start-notebook.sh +# cmd: jupyterhub-singleuser defaultUrl: "/lab" - - # This list is overriden by extraFile profileList: - display_name: Stack Minimal + default: true kubespawner_override: image_spec: localhost:30081/prp/jupyter-stack/minimal - # extra_resource_limits: - # nvidia.com/gpu: {} - # default: True - - display_name: Stack Minimal no GPU - kubespawner_override: - image_spec: localhost:30081/prp/jupyter-stack/minimal - # extra_resource_limits: - # nvidia.com/gpu: "1" - # default: True - +# - display_name: Stack Minimal + Desktop GUI + Relion +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/relion-desktop +# - display_name: Stack All Spark +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/all-spark +# extra_resource_limits: +# nvidia.com/gpu: "2" +# - display_name: Stack Datascience +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/datascience +# extra_resource_limits: +# nvidia.com/gpu: "2" +# - display_name: Stack Tensorflow [2GPUs] +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/prp +# extra_resource_limits: +# nvidia.com/gpu: "2" +# - display_name: Stack Tensorflow [4GPUs] +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/prp +# extra_resource_limits: +# nvidia.com/gpu: "4" +# - display_name: Stack R-Studio [4.1.2] +# kubespawner_override: +# image_spec: gitlab-registry.nrp-nautilus.io/youngsu_kim/csusb-jupyter-stack/stack-rstudio:sr-r1 +# - display_name: Stack R-Studio +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/r-studio +# # extra_resource_limits: +# # nvidia.com/gpu: "1" +# - display_name: Stack Pyspark [2GPUs] +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/pyspark +# extra_resource_limits: +# nvidia.com/gpu: "2" +# - display_name: Stack Pyspark [4GPUs] +# kubespawner_override: +# image_spec: localhost:30081/prp/jupyter-stack/pyspark +# extra_resource_limits: +# nvidia.com/gpu: "4" +# - display_name: Stack SageMath +# kubespawner_override: +# image_spec: gitlab-registry.nrp-nautilus.io/youngsu_kim/csusb-jupyter-stack/stack-sagemath:b353d66b scheduling: userScheduler: enabled: false @@ -179,14 +209,14 @@ ingress: enabled: true annotations: kubernetes.io/ingress.class: haproxy - hosts: ["csusb-hub-project.nrp-nautilus.io"] + hosts: ["csusb-hpc.nrp-nautilus.io"] pathSuffix: '' tls: - hosts: - - csusb-hub-project.nrp-nautilus.io + - csusb-hpc.nrp-nautilus.io cull: - enabled: true + enabled: false users: false removeNamedServers: false timeout: 3600