# JupyterHub Configuration Guide ## Documentation - [Authentication Guide](./authentication-guide.md) - Setup GitHub OAuth and native authentication - [User Management Guide](./user-management.md) - Batch user operations with scripts - [User Quota System](./quota-system.md) - Resource usage tracking and quota management - [GitHub OAuth Setup](./How_to_Setup_GitHub_OAuth.md) - Step-by-step OAuth configuration --- # How to setup [runtime/values.yaml](../../runtime/values.yaml) ## PrePuller settings Example: ```yml prePuller: extraImages: aup-cpu-notebook: name: ghcr.io/amdresearch/aup-cpu-notebook tag: v1.0 ... #for frontpage aup-jupyterhub-hub: name: ghcr.io/amdresearch/aup-jupyterhub-hub tag: v1.3.5-multilogin ``` It is recommended to include as many images as you plan to deploy. This section ensures that all images are pre-downloaded on each node, preventing delays during container startup due to image downloads. ## Network settings Two access methods are supported: 1. NodePort access via `:` (port > 30000) 2. Domain access (Default) `` Example NodePort setup. With this configuration, ingress should be disabled. ```yml proxy: service: type: NodePort nodePorts: http: 30890 chp: networkPolicy: enabled: false ingress: enabled: false # Explicitly set the ingress class to traefik ingressClassName: traefik hosts: tls: - hosts: # Let K3s/Traefik auto-generate certificates with Let's Encrypt secretName: ``` Example Domain setup. Note that you should obtain the domain from your IT department. ```yml proxy: service: type: ClusterIP # Add Ingress configuration specifically for K3s ingress: enabled: true # Explicitly set the ingress class to traefik ingressClassName: traefik hosts: - tls: - hosts: - # Let K3s/Traefik auto-generate certificates with Let's Encrypt secretName: jupyter-tls-cert ``` ## Hub image setup Update this section with your built Docker image. ```yml image: name: ghcr.io/amdresearch/aup-jupyterhub-hub tag: v1.3.5-multilogin pullPolicy: IfNotPresent pullSecrets: - github-registry-secret ``` ## Update Announcement on login page Edit the stringData section with HTML content to display announcements on the login page. ```yml extraFiles: announcement.txt: mountPath: /usr/local/share/jupyterhub/static/announcement.txt stringData: |

Welcome to AUP Remote Lab!

This is a dynamic announcement.

My location is on runtime/values.yaml

You can edit this via ConfigMap without rebuilding the image.

``` ## Provide Github OAuth Credentials Refer to this [article](https://discourse.jupyter.org/t/github-authentication-for-organization-teams/1209/4) for information on setting up GitHub OAuth with GitHub Organizations. Fill in this section with credentials from your organization's OAuth app. Please note that the `oauth_callback_url` should match your actual deployment. For a simple GitHub OAuth-only solution, use `https:///hub/oauth_callback`. Since we are using `MultiAuth`, we need `github` to identify that we are using `GitHubOAuth`. ```yml GitHubOAuthenticator: oauth_callback_url: "https:///hub/github/oauth_callback" client_id: "AAAA" client_secret: "BBB" allowed_organizations: - scope: - read:user - read:org ``` ## NFS Storage setting Refer to [Cluster-NFS-Setting](../../deploy/k8s/nfs-provisioner). ```yml storage: dynamic: storageClass: nfs-client ``` ## After You should run [`helm upgrade`](../../scripts/helm_upgrade.bash) to apply the changes.