Files
Controls-docs/engineering-guide/puppet/profiles/jupyterhub.rst
T

139 lines
4.3 KiB
ReStructuredText

``profile::jupyterhub``
=======================
This module configures the node for running a jupyterhub service
able to spawn singleuser servers on cluster nodes via SLURM
The jupyterhub software itself will not be installed by this
module. It is expected to be found in an existing environment
usually installed separately by ``conda`` and centrally served on a
distributed file system (There is a reference installation in the
environment module ``anaconda/2019.03`` within the
``jupyterhub_dev_py36`` conda environment)
Supported jupyterhub versions: jupyterhub-0.96 or the current
(as of 2019-05) development version 1.0.0b1. The development version is preferred
due to recent fixes that enable a clean shutdown on a batch cluster.
Optional customization of User selectable options
-------------------------------------------------
This installation uses the `optionsSpawner <https://github.com/ResearchComputing/jupyterhub-options-spawner>`_ plugin to offer user selectable
customizations on the spawning web page. By default, a simple dialog
with selectable partitions and runtime is offered. If a more extended
customization page is required, the administrator can create the file
``/etc/jupyterhub/optionsspawner_config.py`` and put additional options inside.
The jupyterhub main configuration file ``/etc/jupyterhub/jupyterhub_config.py``
will check whether the file exists and load it. In this way we can
keep the puppet module more generic.
Some adaptions may require deeper changes to the configuration file
and adaption of the puppet code
Parameters
----------
=============================== ======== ================================================
**Name** **Type** **Default**
------------------------------- -------- ------------------------------------------------
admin_users Array hiera('jupyterhub\:\:admin_users')
api_port Integer hiera('jupyterhub\:\:api_port', 8080)
env_setup String hiera('jupyterhub\:\:env_setup')
group_whitelist Array hiera('jupyterhub\:\:group_whitelist')
hub_port Integer hiera('jupyterhub\:\:hub_port', 8000)
hub_version String hiera('jupyterhub\:\:hub_version')
partitions Hash hiera('jupyterhub\:\:partitions')
tls_cert String hiera('jupyterhub\:\:tls_cert')
tls_key String hiera('jupyterhub\:\:tls_key')
=============================== ======== ================================================
``admin_users``
~~~~~~~~~~~~~~~
A list of user names. These users will get access to the jupyterhub administration
web pages.
Example:
::
jupyterhub::admin_users:
- 'feichtinger'
- 'caubet_m'
- 'bliven_s'
- 'loktionova_n'
``api_port``
~~~~~~~~~~~~
Port number of the port on which the jupyterhub API will be listening (internally
used by jupyterhub for control communications)
``env_setup``
~~~~~~~~~~~~~
Lines to be inserted into the bash scripts for defining the
jupyterhub environment for both the server and the spawned client
sessions (it is important that the server and the singleserver
client host both run the same jupyterhub and spawner codes)
Example:
.. code:: bash
export PMODULES_VERSION=1.0.0rc4
source /opt/psi/config/profile.bash
module use unstable &> /dev/null
module load anaconda/2019.03 &> /dev/null
conda activate jupyterhub_dev
``group_whitelist``
~~~~~~~~~~~~~~~~~~~
A list of unix groups that will be granted access to this jupyterhub.
Example:
::
jupyterhub::group_whitelist:
- 'svc-cluster_merlin5'
``hub_port``
~~~~~~~~~~~~
The main port to which clients will connect.
``hub_version``
~~~~~~~~~~~~~~~
Version String of jupyterhub. Currently either '0.96' or '1.0.0b2' is
supported. Recommended: '1.0.0b2'.
partitions
~~~~~~~~~~
SLURM partitions to be offered in the default option selection. Should be
a mapping of partition names to descriptive strings.
Example:
::
jupyterhub::partitions:
'test' : 'Test nodes'
'merlin' : 'merlin standard'
'gpu' : 'GPU nodes'
tls_cert
~~~~~~~~
String (PEM Format) of the web server certificate
tls_key
~~~~~~~
Eyaml encoded string of the web server certificate key (PEM format)