Skip to content
Snippets Groups Projects
values.template.yaml 6.91 KiB
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/
#

Dung Vu's avatar
Dung Vu committed
hub:
  config:
    CILogonOAuthenticator:
      client_id: $CILOGON_ID
      client_secret: $CILOGON_SECRET
      oauth_callback_url: https://csusb-hpc.nrp-nautilus.io/hub/oauth_callback
Dung Vu's avatar
Dung Vu committed
      username_claim: "email"
    JupyterHub:
      admin_access: true
      authenticator_class: cilogon
      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
  initContainers:
    - name: git-clone-templates
      image: alpine/git
      args:
        - clone
        - --single-branch
        - --branch=main
        - --depth=1
        - --
        - https://gitlab.nrp-nautilus.io/csusb-prp/csusb-jupyterhub-templates.git
        - /etc/jupyterhub/custom
      securityContext:
        runAsUser: 0
      volumeMounts:
        - name: custom-templates
          mountPath: /etc/jupyterhub/custom
  extraVolumes:
    - name: custom-templates
      emptyDir: {}
  extraVolumeMounts:
    - name: custom-templates
      mountPath: /etc/jupyterhub/custom
  extraConfig:
    templates: |
      c.JupyterHub.template_paths = ['/etc/jupyterhub/custom']
youngsuKim-CSUSB's avatar
youngsuKim-CSUSB committed
  # 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 
youngsuKim-CSUSB's avatar
youngsuKim-CSUSB committed
    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

Dung Vu's avatar
Dung Vu committed
  service:
    type: ClusterIP
    annotations: {}
    ports:
      nodePort: 
Dung Vu's avatar
Dung Vu committed
    loadBalancerIP:
  deploymentStrategy:
    type: Recreate
  db:
    type: sqlite-pvc
    pvc:
      accessModes:
        - ReadWriteOnce
      storage: 5Gi
Dung Vu's avatar
Dung Vu committed
      storageClassName: rook-ceph-block
  resources:
    limits:
      cpu: "2"
      memory: 4Gi
Dung Vu's avatar
Dung Vu committed
    requests:
      cpu: "2"
      memory: 4Gi
Dung Vu's avatar
Dung Vu committed
  networkPolicy:
    enabled: false
proxy:
  secretToken: '$SECRET_TOKEN'
Dung Vu's avatar
Dung Vu committed
  service:
    type: ClusterIP
  chp:
    resources:
      limits:
        cpu: "2"
        memory: 4Gi
Dung Vu's avatar
Dung Vu committed
      requests:
        cpu: "2"
        memory: 4Gi
Dung Vu's avatar
Dung Vu committed
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
Dung Vu's avatar
Dung Vu committed
    homeMountPath: /home/jovyan
    dynamic:
      storageClass: rook-ceph-block
      pvcNameTemplate: claim-{username}{servername}
      volumeNameTemplate: volume-{username}{servername}
      storageAccessModes: [ReadWriteOnce]
    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  
Dung Vu's avatar
Dung Vu committed
  image:
    name: localhost:30081/prp/jupyter-stack/prp
    tag: latest
  startTimeout: 600
  cpu:
    limit: 16
    guarantee: 16
Dung Vu's avatar
Dung Vu committed
  memory:
    limit: 128G
    guarantee: 128G
Dung Vu's avatar
Dung Vu committed
  extraResource:
    limits: {}
    guarantees: {}
youngsuKim-CSUSB's avatar
youngsuKim-CSUSB committed
  # cmd: start-notebook.sh    
  cmd: jupyterhub-singleuser    
Dung Vu's avatar
Dung Vu committed
  defaultUrl: "/lab"
youngsuKim-CSUSB's avatar
youngsuKim-CSUSB committed
#   profileList:
#   - display_name: Stack Minimal
#     default: true    
#     kubespawner_override:
#       image_spec: localhost:30081/prp/jupyter-stack/minimal
#   - 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
Dung Vu's avatar
Dung Vu committed
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
  hosts: ["csusb-hpc.nrp-nautilus.io"]
Dung Vu's avatar
Dung Vu committed
  pathSuffix: ''
  tls:
    - hosts:
      - csusb-hpc.nrp-nautilus.io
Dung Vu's avatar
Dung Vu committed

cull:
  enabled: false
Dung Vu's avatar
Dung Vu committed
  users: false
  removeNamedServers: false
  timeout: 3600
  every: 600
Dung Vu's avatar
Dung Vu committed
  concurrency: 10
youngsuKim-CSUSB's avatar
youngsuKim-CSUSB committed
  maxAge: 0