Skip to main content

SWAN JupyterHub spawner

Project description

SWAN Spawner

Spawner for JupyterHub that enables configuring a session with CVMFS/LCG stacks, support for GPU, oAuth tokens, etc. If Binder is used to configure the Docker image used, it reverts to the default upstream configuration. Works with both Docker and Kubernetes.

Installation

pip3 install swanspawner

Usage

Add to your JupyterHub config file

c.JupyterHub.spawner_class = 'swanspawner.SwanDockerSpawner'

If you deploy with Docker, or

c.JupyterHub.spawner_class = 'swanspawner.SwanKubeSpawner'

If you deploy with Kubernetes.

Jupyter Notebook environment variables set during spawn

env
ROOT_LCG_VIEW_NAME
ROOT_LCG_VIEW_PLATFORM
USER_ENV_SCRIPT
ROOT_LCG_VIEW_PATH
USER
USER_ID
USER_GID
HOME
EOS_PATH_FORMAT
SERVER_HOSTNAME
MAX_MEMORY
JPY_USER
JPY_COOKIE_NAME
JPY_BASE_URL
JPY_HUB_PREFIX
JPY_HUB_API_URL
ACCESS_TOKEN
OAUTH_INSPECTION_ENDPOINT

Spawn Form configuration

To configure custom form, please set path to config file as below

c.SwanSpawner.options_form_config = '<path>'

High level objects

{
 "header": <options header text>,
 "options": <array of options objects>
...
}

Options type label

{
 "options": [
    {
      "type": "label",
      "label": {
        "value": <id of label>,
        "text": <displayed text of label>
      }
    },
    ...
]
...
}

Options type selection

{
 "options": [
    {
      "type": "selection",
      "lcg": {
        "value": <id of lcg>,
        "text": <displayed text of lcg>
      },
      "platforms": [
        {
            "value": <id of platform>,
            "text": <displayed text of platform>
        }
        ...
      ],
      "cores": [
        {
            "value": <id of cores selection>,
            "text": <displayed text of cores selection>
        }
        ...
      ],
      "memory": [
        {
            "value": <id of memory selection>,
            "text": <displayed text of memory selection>
        }
        ...
      ],
      "clusters": [
        {
            "value": <id of cluster>,
            "text": <displayed text of cluster>
        }
        ...
      ]
    },
    ...
]
...
}

An example json file can be seen in options_form_config.json

Mount options

To mount EOS or CVMFS with SwanDockerSpawner (which requires a mount with propagation "shared"), a new configuration was introduced by upstream:

c.SwanSpawner.mounts = [
    {
        'source': '/eos',
        'target': '/eos',
        'type': 'bind',
        'propagation': 'shared'
    },
    {
        'source': '/cvmfs',
        'target': '/cvmfs',
        'type': 'bind',
        'propagation': 'shared'
    }
]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swanspawner-1.2.38.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swanspawner-1.2.38-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

Details for the file swanspawner-1.2.38.tar.gz.

File metadata

  • Download URL: swanspawner-1.2.38.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for swanspawner-1.2.38.tar.gz
Algorithm Hash digest
SHA256 e2b7ccdc0cb4d0cb1aea15f9f216c916a13c2d958da0b06f99457111fffe32f7
MD5 82b043045348876df994e5a3bdf7e45d
BLAKE2b-256 79fd6ecd2642e16bb6d16dcdb209dbd397ff6f7ada5866accd263b52f113ad39

See more details on using hashes here.

Provenance

The following attestation bundles were made for swanspawner-1.2.38.tar.gz:

Publisher: swan-ci-ca.yml on swan-cern/jupyterhub-extensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swanspawner-1.2.38-py3-none-any.whl.

File metadata

  • Download URL: swanspawner-1.2.38-py3-none-any.whl
  • Upload date:
  • Size: 28.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for swanspawner-1.2.38-py3-none-any.whl
Algorithm Hash digest
SHA256 6f640e44444addc93ab36c2a6ebe496d617b42e723c74f74757f7c3a8d9a94d6
MD5 9bc728947a54a087df36f6e33b810116
BLAKE2b-256 86b9d71321d643fa2b6f55bd0a7d003a4697d612aea07b30f2388dad566455c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for swanspawner-1.2.38-py3-none-any.whl:

Publisher: swan-ci-ca.yml on swan-cern/jupyterhub-extensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page