jupyterhub-kubespawner


Namejupyterhub-kubespawner JSON
Version 6.2.0 PyPI version JSON
download
home_page
SummaryJupyterHub Spawner for Kubernetes
upload_time2023-11-23 11:08:33
maintainer
docs_urlNone
author
requires_python>=3.7
licenseBSD 3-Clause License Copyright (c) 2017, Project Jupyter Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords jupyterhub spawner
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # [kubespawner](https://github.com/jupyterhub/kubespawner) (jupyterhub-kubespawner @ PyPI)

[![Latest PyPI version](https://img.shields.io/pypi/v/jupyterhub-kubespawner?logo=pypi)](https://pypi.python.org/pypi/jupyterhub-kubespawner)
[![Latest conda-forge version](https://img.shields.io/conda/vn/conda-forge/jupyterhub-kubespawner?logo=conda-forge)](https://anaconda.org/conda-forge/jupyterhub-kubespawner)
[![Documentation status](https://img.shields.io/readthedocs/jupyterhub-kubespawner?logo=read-the-docs)](https://jupyterhub-kubespawner.readthedocs.io/en/latest/?badge=latest)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/jupyterhub/kubespawner/test.yaml?logo=github&label=tests)](https://github.com/jupyterhub/kubespawner/actions)
[![Code coverage](https://codecov.io/gh/jupyterhub/kubespawner/branch/main/graph/badge.svg)](https://codecov.io/gh/jupyterhub/kubespawner)

The _kubespawner_ (also known as the JupyterHub Kubernetes Spawner) enables JupyterHub to spawn
single-user notebook servers on a [Kubernetes](https://kubernetes.io/)
cluster.

See the [KubeSpawner documentation](https://jupyterhub-kubespawner.readthedocs.io) for more
information about features and usage. In particular, here is [a list of all the spawner options](https://jupyterhub-kubespawner.readthedocs.io/en/latest/spawner.html#module-kubespawner.spawner).

## Features

Kubernetes is an open-source system for automating deployment, scaling, and
management of containerized applications. If you want to run a JupyterHub
setup that needs to scale across multiple nodes (anything with over ~50
simultaneous users), Kubernetes is a wonderful way to do it. Features include:

- Easily and elasticly run anywhere between 2 and thousands of nodes with the
  same set of powerful abstractions. Scale up and down as required by simply
  adding or removing nodes.

- Run JupyterHub itself inside Kubernetes easily. This allows you to manage
  many JupyterHub deployments with only Kubernetes, without requiring an extra
  layer of Ansible / Puppet / Bash scripts. This also provides easy integrated
  monitoring and failover for the hub process itself.

- Spawn multiple hubs in the same kubernetes cluster, with support for
  [namespaces](https://kubernetes.io/docs/admin/namespaces/). You can limit the
  amount of resources each namespace can use, effectively limiting the amount
  of resources a single JupyterHub (and its users) can use. This allows
  organizations to easily maintain multiple JupyterHubs with just one
  kubernetes cluster, allowing for easy maintenance & high resource
  utilization.

- Provide guarantees and limits on the amount of resources (CPU / RAM) that
  single-user notebooks can use. Kubernetes has comprehensive [resource control](https://kubernetes.io/docs/user-guide/compute-resources/) that can
  be used from the spawner.

- Mount various types of [persistent volumes](https://kubernetes.io/docs/user-guide/persistent-volumes/)
  onto the single-user notebook's container.

- Control various security parameters (such as userid/groupid, SELinux, etc)
  via flexible [Pod Security Policies](https://kubernetes.io/docs/user-guide/pod-security-policy/).

- Run easily in multiple clouds (or on your own machines). Helps avoid vendor
  lock-in. You can even spread out your cluster across
  [multiple clouds at the same time](https://kubernetes.io/docs/user-guide/federation/).

In general, Kubernetes provides a ton of well thought out, useful features -
and you can use all of them along with this spawner.

## Requirements

### JupyterHub

Requires JupyterHub 4.0+

### Kubernetes

Everything should work from Kubernetes v1.24+.

The [Kube DNS addon](https://kubernetes.io/docs/user-guide/connecting-applications/#dns)
is not strictly required - the spawner uses
[environment variable](https://kubernetes.io/docs/user-guide/connecting-applications/#environment-variables)
based discovery instead. Your kubernetes cluster will need to be configured to
support the types of volumes you want to use.

If you are just getting started and want a kubernetes cluster to play with,
[Google Container Engine](https://cloud.google.com/container-engine/) is
probably the nicest option. For AWS/Azure,
[kops](https://github.com/kubernetes/kops) is probably the way to go.

## Getting help

We encourage you to ask questions on the
[Jupyter mailing list](https://groups.google.com/forum/#!forum/jupyter).
You can also participate in development discussions or get live help on
[Gitter](https://gitter.im/jupyterhub/jupyterhub).

## License

We use a shared copyright model that enables all contributors to maintain the
copyright on their contributions.

All code is licensed under the terms of the revised BSD license.

## Resources

#### JupyterHub and kubespawner

- [Reporting Issues](https://github.com/jupyterhub/kubespawner/issues)
- [Documentation for JupyterHub](https://jupyterhub.readthedocs.io)
- [Documentation for JupyterHub's REST API](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/jupyterhub/master/docs/rest-api.yml#/default)

#### Jupyter

- [Documentation for Project Jupyter](https://jupyter.readthedocs.io/en/latest/index.html) | [PDF](https://media.readthedocs.org/pdf/jupyter/latest/jupyter.pdf)
- [Project Jupyter website](https://jupyter.org)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "jupyterhub-kubespawner",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "jupyterhub,spawner",
    "author": "",
    "author_email": "Jupyter Contributors <jupyter@googlegroups.com>",
    "download_url": "https://files.pythonhosted.org/packages/ac/ef/897f71d5cdd0859acb8b875b7849663849ce658f8ff9375ee3710a07ec7d/jupyterhub_kubespawner-6.2.0.tar.gz",
    "platform": null,
    "description": "# [kubespawner](https://github.com/jupyterhub/kubespawner) (jupyterhub-kubespawner @ PyPI)\n\n[![Latest PyPI version](https://img.shields.io/pypi/v/jupyterhub-kubespawner?logo=pypi)](https://pypi.python.org/pypi/jupyterhub-kubespawner)\n[![Latest conda-forge version](https://img.shields.io/conda/vn/conda-forge/jupyterhub-kubespawner?logo=conda-forge)](https://anaconda.org/conda-forge/jupyterhub-kubespawner)\n[![Documentation status](https://img.shields.io/readthedocs/jupyterhub-kubespawner?logo=read-the-docs)](https://jupyterhub-kubespawner.readthedocs.io/en/latest/?badge=latest)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/jupyterhub/kubespawner/test.yaml?logo=github&label=tests)](https://github.com/jupyterhub/kubespawner/actions)\n[![Code coverage](https://codecov.io/gh/jupyterhub/kubespawner/branch/main/graph/badge.svg)](https://codecov.io/gh/jupyterhub/kubespawner)\n\nThe _kubespawner_ (also known as the JupyterHub Kubernetes Spawner) enables JupyterHub to spawn\nsingle-user notebook servers on a [Kubernetes](https://kubernetes.io/)\ncluster.\n\nSee the [KubeSpawner documentation](https://jupyterhub-kubespawner.readthedocs.io) for more\ninformation about features and usage. In particular, here is [a list of all the spawner options](https://jupyterhub-kubespawner.readthedocs.io/en/latest/spawner.html#module-kubespawner.spawner).\n\n## Features\n\nKubernetes is an open-source system for automating deployment, scaling, and\nmanagement of containerized applications. If you want to run a JupyterHub\nsetup that needs to scale across multiple nodes (anything with over ~50\nsimultaneous users), Kubernetes is a wonderful way to do it. Features include:\n\n- Easily and elasticly run anywhere between 2 and thousands of nodes with the\n  same set of powerful abstractions. Scale up and down as required by simply\n  adding or removing nodes.\n\n- Run JupyterHub itself inside Kubernetes easily. This allows you to manage\n  many JupyterHub deployments with only Kubernetes, without requiring an extra\n  layer of Ansible / Puppet / Bash scripts. This also provides easy integrated\n  monitoring and failover for the hub process itself.\n\n- Spawn multiple hubs in the same kubernetes cluster, with support for\n  [namespaces](https://kubernetes.io/docs/admin/namespaces/). You can limit the\n  amount of resources each namespace can use, effectively limiting the amount\n  of resources a single JupyterHub (and its users) can use. This allows\n  organizations to easily maintain multiple JupyterHubs with just one\n  kubernetes cluster, allowing for easy maintenance & high resource\n  utilization.\n\n- Provide guarantees and limits on the amount of resources (CPU / RAM) that\n  single-user notebooks can use. Kubernetes has comprehensive [resource control](https://kubernetes.io/docs/user-guide/compute-resources/) that can\n  be used from the spawner.\n\n- Mount various types of [persistent volumes](https://kubernetes.io/docs/user-guide/persistent-volumes/)\n  onto the single-user notebook's container.\n\n- Control various security parameters (such as userid/groupid, SELinux, etc)\n  via flexible [Pod Security Policies](https://kubernetes.io/docs/user-guide/pod-security-policy/).\n\n- Run easily in multiple clouds (or on your own machines). Helps avoid vendor\n  lock-in. You can even spread out your cluster across\n  [multiple clouds at the same time](https://kubernetes.io/docs/user-guide/federation/).\n\nIn general, Kubernetes provides a ton of well thought out, useful features -\nand you can use all of them along with this spawner.\n\n## Requirements\n\n### JupyterHub\n\nRequires JupyterHub 4.0+\n\n### Kubernetes\n\nEverything should work from Kubernetes v1.24+.\n\nThe [Kube DNS addon](https://kubernetes.io/docs/user-guide/connecting-applications/#dns)\nis not strictly required - the spawner uses\n[environment variable](https://kubernetes.io/docs/user-guide/connecting-applications/#environment-variables)\nbased discovery instead. Your kubernetes cluster will need to be configured to\nsupport the types of volumes you want to use.\n\nIf you are just getting started and want a kubernetes cluster to play with,\n[Google Container Engine](https://cloud.google.com/container-engine/) is\nprobably the nicest option. For AWS/Azure,\n[kops](https://github.com/kubernetes/kops) is probably the way to go.\n\n## Getting help\n\nWe encourage you to ask questions on the\n[Jupyter mailing list](https://groups.google.com/forum/#!forum/jupyter).\nYou can also participate in development discussions or get live help on\n[Gitter](https://gitter.im/jupyterhub/jupyterhub).\n\n## License\n\nWe use a shared copyright model that enables all contributors to maintain the\ncopyright on their contributions.\n\nAll code is licensed under the terms of the revised BSD license.\n\n## Resources\n\n#### JupyterHub and kubespawner\n\n- [Reporting Issues](https://github.com/jupyterhub/kubespawner/issues)\n- [Documentation for JupyterHub](https://jupyterhub.readthedocs.io)\n- [Documentation for JupyterHub's REST API](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/jupyterhub/master/docs/rest-api.yml#/default)\n\n#### Jupyter\n\n- [Documentation for Project Jupyter](https://jupyter.readthedocs.io/en/latest/index.html) | [PDF](https://media.readthedocs.org/pdf/jupyter/latest/jupyter.pdf)\n- [Project Jupyter website](https://jupyter.org)\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License  Copyright (c) 2017, Project Jupyter Contributors All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "JupyterHub Spawner for Kubernetes",
    "version": "6.2.0",
    "project_urls": {
        "Documentation": "https://jupyterhub-kubespawner.readthedocs.io",
        "Issues": "https://github.com/jupyterhub/kubespawner/issues",
        "Source": "https://github.com/jupyterhub/kubespawner"
    },
    "split_keywords": [
        "jupyterhub",
        "spawner"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ae064f86849348ada3ba94652e17ddd0852342e920a53cde6486110ef310b95",
                "md5": "668a8d86e8800ef36f1b69872986ad42",
                "sha256": "f7a7e9fa4ef9a5f35cadfb0c369ed345b816c04bb2c3228c61762e13c09670cd"
            },
            "downloads": -1,
            "filename": "jupyterhub_kubespawner-6.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "668a8d86e8800ef36f1b69872986ad42",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 66112,
            "upload_time": "2023-11-23T11:08:31",
            "upload_time_iso_8601": "2023-11-23T11:08:31.845485Z",
            "url": "https://files.pythonhosted.org/packages/4a/e0/64f86849348ada3ba94652e17ddd0852342e920a53cde6486110ef310b95/jupyterhub_kubespawner-6.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "acef897f71d5cdd0859acb8b875b7849663849ce658f8ff9375ee3710a07ec7d",
                "md5": "617a75d954adf9e72db8808d02e69cb0",
                "sha256": "38815cb83ff5cba78e916efc4164e8899bfacab4423628029cd4867968b89b18"
            },
            "downloads": -1,
            "filename": "jupyterhub_kubespawner-6.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "617a75d954adf9e72db8808d02e69cb0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 109337,
            "upload_time": "2023-11-23T11:08:33",
            "upload_time_iso_8601": "2023-11-23T11:08:33.238312Z",
            "url": "https://files.pythonhosted.org/packages/ac/ef/897f71d5cdd0859acb8b875b7849663849ce658f8ff9375ee3710a07ec7d/jupyterhub_kubespawner-6.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-23 11:08:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jupyterhub",
    "github_project": "kubespawner",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jupyterhub-kubespawner"
}
        
Elapsed time: 0.13985s