Hi,
You have to put the path, where your custom template takes place, into template_paths config of jupyterhub (see custom templates documentation):
jupyterhub:
hub:
extraConfig:
templates: |
c.JupyterHub.template_paths = ['/path/to/custom/templates']
And this path and templates must exist in jupyterhub container. There are 2 ways (that I am aware of) to do this. First you can extend the jupyterhub image by copying the templates and use this image in your config. But this means that you have to create a new image everytime you upgrade your jupyterhub. Second way, which I prefer, you can use initContainers
, by which you can clone/download your custom templates into a volume and then you can mount this volume into the hub container. Here is an example config for that:
jupyterhub:
hub:
# clone custom JupyterHub templates into a volume
initContainers:
- name: git-clone-templates
image: alpine/git
args:
- clone
- --single-branch
- --branch=master
- --depth=1
- --
- https://github.com/your/repo.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/jupyterhub/templates']
This config clones the repo (https://github.com/your/repo.git, you have to change this with the url of repo where your custom templates are) into /etc/jupyterhub/custom
folder, to where the custom-templates
volume is mounted. The same volume will be mounted into hub container too (see extraVolumeMounts
config). Finally we have to tell jupyterhub where to find custom templates, for that we have to set c.JupyterHub.template_paths
as mentioned before. For example if your templates exist in jupyterhub/templates
folder in your repo, then set it to ['/etc/jupyterhub/custom/jupyterhub/templates']
as I did in the example config.
I hope this helps