Jupyterhub slurm spawner not working. Feb 27, 2019 · The mistake is in the c.
Jupyterhub slurm spawner not working So, batchspawner installed from PyPI would not work with JupyterHub 3. start returns, the single-user server process should actually be running, not just requested. You can specify a SSH proxy jump, if you have to jump over two hosts (e. c = get_config() … Mar 22, 2024 · Hello, I am reaching out to you because we are setting up a new infrastructure and the migration of JupyterHub from version 1 to version 4. 2. From what I understand from your config, you have 3 different profiles in wrapSpawner: two of them target SLURM cluster and one is to spawn single user servers locally using SystemdSpawner. Jun 28, 2023 · So far, everything seems to be working, I have jupyterhub installed in a conda environment (eventually this will migrate to a systemd control unit), and I can start local notebooks via the LocalProcessSpawner. Configure the Hub to use the Slurm spawner so that notebooks run as jobs. However, since JupyterHub 2 that exception is not properly displayed in the form and only an e Aug 26, 2024 · Let me back up a bit. cmd (c. Expected behaviour The hub knows about the server running in the node and the server starts. spawner_class = 'dockerspawner. We have a Slurm cluster that runs Singularity contain… Configuration for the OptionsFormSpawner form fields that allow for user-configuration of spawn options and Slurm scheduling parameters. We will explore hardening approaches soon. First I c Oct 23, 2020 · If I create a new user in JupyterHub I want that the working directory of the corresponding JupyterLab instance is initialized with some getting started examples: I Nov 2, 2017 · The 'spawner_class' trait of <jupyterhub. Sep 19, 2024 · but when I log out and log back in, the Jupyterhub systemd service deactivates on its own. But now it is not working. ip = 'r9jupyter. Slurm job flags not needed. LocalProcessSpawner', {'ip':'0. dockerspawner. If you use sudo, this should not be necessary, but because this is security related you should check that user management is as you expect. 0 and above, it should be. While ldapauthenticator can work on Windows, I could not find a suitable non-container spawner. Apr 21, 2021 · Bug description Without specifying the full path to the slurm executables like sbatch in batchspawner. _internal import main as pipmain # pip install and configure the Authenticator pipmain(['install', 'jupyterhub-nativeauthenticator']) from nativeauthenticator import NativeAuthenticator class GBRMAuthenticator(NativeAuthenticator): from tornado Run JupyterHub on a login node (I already had a reverse proxy handling TLS termination, but this isn't required), using whatever auth mechanism your cluster preferes. However, we have observed that on the node the jupyterhub instance does not obey systemd limits set. start being very slow (such as PBS-style batch queues, or instantiating whole AWS instances) via relaxing the Spawner. 0 and in v1. Spawner puts it on both (I think), but the one on ProfileSpawner doesn't update child spawner (I guess?) and the one on CondorSpawner doesn't get called at all. If you make any changes to JupyterHub's authentication setup that changes which group of users is allowed to login (such as changing allowed_groups or even just turning on LDAPAuthenticator), you must change the jupyterhub cookie secret, or users who were previously logged in and did not log out would continue to be able to log in! Apr 20, 2018 · Then use cmd=batch_cmd on my spawner instance (and can check the jupyterhub logs to make sure it substituted properly). It is an extension of batchspawner. Mar 31, 2022 · Bug description When I strart a server the jobs gets scheduled and successfully starts but the hub cannot talk to it. 0 everything was working by using wrapspawner with profiles. spawner_class = 'remote-slurm-spawner. Apr 15, 2017 · Hello I am having trouble starting a notebook using dockerspawner. 0 through 0. Today, even without the Singularity part, hub not working. BatchSpawner and ProfileSpawner are the installed via pip from /opt/conda/bin. Bug description I have setup a JupyterHub instance on my cluster's login node that uses SlurmSpawner to spawn notebook servers on our cluster. 0', 'mem_limit':'16G', 'cpu_limit':4. Instant dev environments Apr 9, 2018 · Is there a reason to not have it? If not, I will add it. 710 JupyterHub application:91] The 'spawner_class' trait of <jupyterhub. I got a test hub setup and working fine. Contents: Installation and setup. Provide details and share your research! But avoid …. Spawner. init_containers not working. Zero to JupyterHub on Kubernetes. Jupyterhub MOdular Slurm Spawner. If you are using JupyterHub 4, you will need this patch as well. Slurm seems to work properly. Prior to 2. It's possible that this would actually require modifying the behavior of the spawner (so that you could maybe pass in a format string that will get formatted with the appropriate user id?) but perhaps there is a better Jan 10, 2017 · Hi, I'm running Linux Mint V18 , systemd version 229 and the check_kernel script listed available limiting options for both memory and CPU. to the config file, jupyterhub_config. We used LDAP because PAM was fiddly to get working with SELinux, but maybe this is no longer a problem. Without nginx reverse proxy it works without problems. 1 and jupyterhub 1. 3. We have a Slurm cluster that runs Singularity containers in which we have added Jupyterhub & batchspawner. The server job is queued and started, but Apr 22, 2021 · jupyterhub_moss: JupyterHub MOdular Slurm Spawner. Currently, JupyterHub must be run as root to use Systemd Spawner. current_user if not user: # not logged in, send to login, no ?next # that way, default_url will be called again after successful login return handler. any clue where the problem might be? I have tried also the node_affinity_required it is the same. Note that JupyterHub, Slurm, and Slurm compute nodes are all on the same server. Do you have any opinions on the matter? A JupyterHub Spawner that enables multiple different Spawners to be used in combination with the ability to request and orchestrate a cloud resource on which their notebook should be hosted. I want to use the SlurmSpawner with a JupyterHub. Subclasses may modify the class or properties of the child Spawner at any point before start() is called (e. At least the jobs get queued and run. jupyterhub_config. I'll copy/paste the final answer in case that link dies. I want to implement Jul 6, 2019 · Thanks, but it still doesn't work. Oct 13, 2020 · Don't use this in production! c. create_system_users. py looks like this: ('Host process', 'local', 'jupyterhub. If a job is now suspend because a higher prioritized job has been executed, I have problems resuming this job. Jul 12, 2023 · Description I am trying to start Notebook via Slurm on JupyterHub. dev0. I have verified that SlurmSpawner works (wonderfully btw) and that SSL works everywhere except Jun 16, 2023 · Well, that was the issue. Oct 19, 2023 · The Spawner is what is responsible fr assigning user servers computational resources. def default_url(handler): user = handler. So far I have set the full paths for slurm executables, and a fixed port 35000 for the spawned server. get_args() method is how Spawner. I first tried via my docker-compose. SlurmSpawner: Remove --uid for (at least) Slurm 17. It’s possible that docker swarm and SwarmSpawner will give you what you need with the least effort, but the main task is to have a system for assigning resources (whether an existing one like docker, swarm, kubernetes, or slurm; or your own), and pick or write a Spawner that uses that. Here is an example of a spawner that allows specifying extra arguments to pass to a user’s notebook server, via . The server job is queued and started, but it seems that no communication is possible between hub and server. node_selector = {"beta. Currently, I use LXC containers to separate different aspects of the cluster. Feb 2, 2023 · Bug description It seems that epilogue is not working after stopping the notebook. Jun 1, 2021 · Hi team, In our HDP cluster the jupyterhub was working fine. 710 JupyterHub application:90] Bad config encountered during initialization: [C 2018-11-03 20:50:05. py, these are not found. get_login_url() if "admin-ui" in handler. 4. Oct 14, 2024 · Jupyterhub 5. 9 jupyter labhub (with some additional environment variables). 2: environment from this configuration has highest priority, allowing override of ‘default’ env variables, such as JUPYTERHUB_API_URL. fr' Jun 15, 2023 · So, batchspawner installed from PyPI would not work with JupyterHub 3. Try installing it from the repo’s main branch and it should normally work. First, I agree that launching from the admin panel ought to show the options form. e. cmd = ['jupyter', 'labhub']). It results in a form like this: Find and fix vulnerabilities Codespaces. c. args is not working with sudospawner, I have read that it uses jupyterhub-singleuser for that. 1. machinery c Apr 11, 2024 · Hello, I am reaching out to you because we are setting up a new infrastructure and the migration of JupyterHub from version 1 to version 4. Running singleuser from JupyterHUb via Slurm does not connect Hub jupyterhub/batchspawner#279. Slurm (Batch/Profile Spawner) - Jupyter Server is running Aug 14, 2019 · There is an answer here from one of the maintainers of JupyterHub. 1 it doesn’t work any… Bug description Content-Security-Policy settings are not respected in new version of Jupyter Hub. 05. I set up the epilogue parameter in the configuration file like this: c. This starts the Docker container with the arguments jupyter labhub, similar to running it from the command line as docker run jupyter/singleuser:0. 02. There are two available Batch Spawners: "LSF Spawner" for `BlueOS` machines, and "Slurm Spawner" for `TOSS4` machines. ipynb exists in the root of that directory. It then times out and exits. req_runtime = '12:00:00' I set print in the comet_spawner. I would like to use a reverse proxy in order to host some other information from the head node of this cluster. yml file, which does not work, as the container are created by Jupyterhub. options_form. If you think JupyterHub isn’t working then let’s go back and fix it before dealing with the proxy! Mar 21, 2016 · Plan and track work Code Review. 6. The Slurm job is running and the Notebook is up and running, but the Hub screen still says “Cluster job Running … Waiting to connect” is still displayed on the Hub screen. port}. This is a custom spawner for Jupyterhub that is designed for installations on clusters using batch scheduling software. For notebook workloads that are computationally intensive, please utilize Batch Spawner. 0 jupyterlab 4. Note: You need to specifiy Slurm Note that the spawner class’ interface is not guaranteed to be exactly same across upgrades, so if you are using the callable take care to verify it continues to work after upgrades! Changed in version 1. However it is not working. My goal is to pass every container spawned by the Spawner an additional host name, so make an additional entry in /etc/hosts. start_timeout config value. For this case I've set up an jupyterhub with RemoteCSVAuthenticator and DockerSpawner. 8 notebook 7. Dec 2, 2017 · If you have a notebook in use before your hub installation and there exists a folder ~/. The allowed username set lets you limit this to a Custom Spawner for Jupyterhub to start servers in batch scheduled systems - dciangot/remote-slurm-spawner The Spawner. That's going to be a little tricky, as we need to make sure that we serve a page that's launching for one user while authenticating as another, which the current spawn page doesn't handle. 0. jupyter/. 6 (but I don’t think slurm is the issue). My jupyter_config. LocalAuthenticator. The session will only terminate if you run out of time in your Slurm allocation or if you click “Stop My Server” on the Hub Control May 26, 2017 · Disclaimer It's a question, not an issue. 0 is not working at all. . 14. [C 2018-11-03 20:50:05. Local spawner (on JupyterHub) Spawning the Jupyter notebook environment on the JupyterHub host. When you start the hub program and start the single-user notebook, it reads the configurations there and causes some problems so that the hub can never reach the single spawner till timesout. py c. 5. I am quite sure that you installed batchspawner from PyPI. domain. But after logging in I only get an 502 Error-Message: Bug description BatchSpawner is able to submit the job, the job starts in the compute node but the Hub never connects to the session in the compute node. When the JupyterHub GUI of the stopped job is updated, you will be redirected to the start page to A JupyterHub Spawner that enables multiple different Spawners to be used in combination with the ability to request and orchestrate a cloud resource on which their notebook should be hosted. Mar 20, 2024 · We have a Slurm cluster that runs Singularity containers in which we have added Jupyterhub & batchspawner. TmpAuthenticator" # launch with docker c. I can also start notebooks via the SlurmSpawner, and my batch scheduler reacts, starts a job, and as far as I can see, the logs from the Apr 21, 2021 · I try to start a server on a SLURM queue cluster. Apr 9, 2024 · Spawner. JupyterHub object at 0x7f53d9de4518> instance must be a type, but 'jupyterhub. On your local machine; Feb 10, 2017 · I'm trying to set up a multiuser jupyter setup. ip} and --port={Spawner. Compatible/tested with JupyterHub 0. 191 JupyterHub auth:1079] Failed to open PAM session for fo Nov 13, 2024 · For some reason if I do import systemdspawner and then do my profiles: ('Local server - Use it !*ONLY FOR DEVELOPMENT*! 16GB RAM, 8 CPUs', 'local_limited', 'systemdspawner. May 22, 2024 · Hi, Jupyterhub is running on the login node of our Slurm cluster. I don't have time to make something right now, but you could try if you wanted. For testing purposes I installed a clean Ubuntu 18. Collaborate outside of code Code Search [I 2016-03-21 15:54:56. Just like to add that DISPLAY can be injected into jupyter by inserting into jupyterhub_config. This began as a generalization of mkgilbert's batchspawner which in turn was inspired by Andrea Zonca's blog post where he explains his implementation for a spawner that uses SSH and Torque. spawner_class='sudospawner. 0 and slurm 22. When I configure nginx reverse proxy with the following configuration: server { listen 80; server_name j Sep 30, 2022 · Running singleuser from JupyterHUb via Slurm does not connect Hub. Jupyterhub is installed in a virtual machine and launch the singularity image containing jupyterlab in a job. create_system_users should create the OS user in case the user Sep 29, 2022 · Hi there, I’m am really struggling to get this functional. req_queue = 'dev-part' c. I would like to communicate to SLURM to cancel the scheduler jobs when the browser tab is closed. JupyterHub. py and the options values are {'other': '\n#SBATCH --ntasks-per-node=2', 'runtime': '1:00:00', 'queue': 'standard Oct 28, 2021 · I use the batchspawner (GitHub - jupyterhub/batchspawner: Custom Spawner for Jupyterhub to start servers in batch scheduled systems)with slurm and want to use the preemption function. SystemdSpawner', {'ip':'0. *, but in v3. machinery c = get_config() c. However, I have read that jupyter notebook for loading that file you just need to create under /etc/jupyter . I would very much like to setup SSL for the connection between the jupyterhub proxy and the jupyter notebooks since the notebooks are running on multi-user compute nodes. all the Unix users on the server with a password) will be allowed to start a server. 3 wrapspawner 1. 0' # the hostname/ip that should be used to connect to the hub # this To configure JupyterHub to use SudoSpawner, add the following to your jupyterhub_config. However, I cannot get the memory limit to work. Expected behaviour The Hub connects to the session running in the compute node Actu You can run notebooks that you obtain with other users, but be advised, as with running any code not written by you, exercise caution. Feb 27, 2023 · Hi everyone, I’ve gotten batchspawner working nicely with my slurm based cluster without the use of a reverse proxy. Sep 13, 2020 · JupyterHub won't poll a Spawner it doesn't think could be running, so poll() returning None always means no action to take, whereas returning an exit code triggers a cleanup sequence and the process will not be polled again until its next launch. 11 compatibility. 3 through 3. Putting it on c. ipynb' assuming that you are launching the JupyterLab in a directory where the notebook Information. Reading through the PRs it looks like running a self-signed CA using the internal SSL flag is not Nov 13, 2024 · Hi, We have a cluster where we have Jupyterhub running, we offer the users the option to either submit jupyter as a slurm job for which we use profilespawner or a local development, which runs natively on the node. The upgrade is using jupyterhub 1. JupyterHub object at 0x7ff7124f6080> instance must be a type, but 'sudospawner. batchspawner Jun 21, 2023 · I am not sure how it was in JupyterHub 1. I’ve gotten to the stage where jupyterhub is running, it can spawn jobs, which start on our slurm cluster, however jupyterlab never seems to show up in the web interface. Noctua 2 (via Slurm) Spawning the Jupyter environment inside a Slurm job (on a compute/gpu/fpga node) on Noctua 2. spawner. 720 JupyterHub dockerspawner:449] Starting co Apr 28, 2022 · When selecting resources that do not correspond to any configuration in Slurm, an exception is raised. Indeed it was the mem_limit not being functional as a key for limits and missing a proper restart. So it's always safe to return None if you don't know your server has stopped. Install Location: anaconda : /opt/anaconda Run JupyterHub $ cd /opt/anaconda/ <-- Jul 22, 2024 · I have a Slurm cluster that’s successfully setup and configured, and I’m trying to add JupyterHub to the cluster so that users have different ways to interact with the cluster. py : import os import importlib. We have a Slurm cluster that runs Singularity contain… Servers run in the Slurm queue - we have two nodes dedicated for interactive use, so we put the servers there. 426 JupyterHub spawner:363] Jan 23, 2020 · I have spent a lot of time trying out the few solutions I found online to solve this. systemd-run needs to be run as root to be able to set memory & cpu limits. Package versions: batchspawner 1. a loadbalancer) Slurm job 3251854 is in Jun 15, 2022 · I see this from time to time, especially when the internet connection is unstable. Jupyter server starts (the slurm job runs jupyterhub-singleuser in a compute node), but in the browser only “A Jupyter Server is running” appears. 4 with DockerSpawner. Sep 29, 2015 · The jupyterhub_config. SudoSpawner' could not be imported using jupyterhub 0. py: c. I have added the slurm bin directory to the jupyterhub service environment. What is the default behavior when none of the lists (admin, allowed, allowed groups) are set?# When nothing is given for these lists, there will be no admins, and all users who can authenticate on the system (i. authenticator_class = "tmpauthenticator. jupyter jupyterhub spawner spawn-notebook-servers jupyterhub-spawner Feb 1, 2023 · Previously with Slurm 20. 9. jupyterhub_moss is a Python package that provides: A JupyterHub Slurm Spawner that can be configured by setting the available partitions. Starting a server in the Control Panel. The Slurm job is running and the Notebook is up and running, but the Hub screen still says "Cluster job Running Waiting to connect" is still displayed on the Hub screen. Dec 4, 2023 · Hello, I’m deploying an HPC-enabled Jupyterhub which will use a SLURM spawner. 1) successfully running however trying to modernize it is proving very difficult (for me). . dev0 Thanks advanced Oct 30, 2019 · Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Manage code changes Discussions. db #3885. 0 Kubernetes 1. JupyterHub. Dec 19, 2017 · It used the defined values even though I changed the value through the Spawner options page. When I configure nginx reverse proxy with the following configuration: server { listen 80; server_name Nov 29, 2021 · Hi Everyone, I’m able to create a user in the singleuser pod and launch as that user with the following code: extraConfig: preSpawnHook: | from pip. fr' c. This PR fixed that problem but if I am right, there was no new release with this patch. JupyterHub can handle Spawner. This is a bit unclear. Bug description Even if c. It is also important to understand how your session will (and will not) terminate. Jan 30, 2023 · Hi all, I am looking to add a jupyterhub frontend to our HPC cluster running slurm. But due to some package uninstallation, we installed Jhub and other packages again. Is there a way to make JupyterHub work on Windows at all? Feb 17, 2020 · Here's what you need to do, and it will work: First, you need to disable frame-ancestors in the main configs (don't worry, you are changing it in a virtual Dec 19, 2018 · I am trying to add nodeselector to jupyterhub spawner but it seems that it is not working. 0'}), JupyterHub can handle Spawner. Specifically, the login node of the cluster is in a separate container from the compute node of the cluster. Slurm tools, Modules, Remote desktop environment are available. v0. py file is loaded by the user that you run JupyterHub with, so the way you're trying to do it won't work. jupyter jupyterhub spawner spawn-notebook-servers jupyterhub-spawner Welcome to slurm-jupyter’s documentation! Utilities for working with Jupyter notebooks on a slurm cluster. I checked with the systemd checker script available on systemdspawner and it Apr 21, 2021 · Bug description I try to start a server on a SLURM queue cluster. hub_ip = 'r9jupyter. Authentication seems to work fine and also if I log in, a docker-container is started. Manage (create, list, modify and delete) and starting jupyter slurm kernels using sbatch. I am using Apache as a reverse proxy to frontend JupyterHub to my HPC cluster with wrapspawner and batchspawner. Jul 10, 2023 · I am trying to start Notebook via Slurm on JupyterHub. KubeSpawner. py: Aug 17, 2020 · However, the variable c. DockerSpawner' could not be imported Feb 13, 2019 · I am using Jupyterhub 0. 27. from Authenticator pre_spawn hooks or options form processing) and that state will be preserved on Jun 21, 2019 · I think something like that should work with the pre_spawn_hook. 1: 177: January 19, 2024 Aug 19, 2020 · Bug description Hello, I have started jupyterhub as a service in dockerswarm. When Spawner. Hello, I am reading the issues here now for quite some time but do not find any solution to my problem. Here are the log messages and the docker logs output: [I 2017-04-15 11:09:41. We have an ancient version of jupyterhub (1. Nothing worked. wrapspawner is 1. 0 Kubespawner- 6. Jul 1, 2023 · Following screen capture is demonstrating how same settings worked in JupyterHub v1. It does seem like jupyter is a bit quick to assume that the server isn't running when in fact the page could just use a refresh. env_keep is set as expected, jupyterhub does not pass these variables to sudospawner and thus sudospawner fails with [W 2021-09-06 05:20:18. The log and config file are shown below Jan 11, 2017 · Hi all, I have an issue with the LocalAuthenticator. 8. The values specified in these fields will be applied to the corresponding traits of the wrapped child spawner, SlurmSpawner. SudoSpawner' The JupyterHub documentation has additional information about creating a configuration file , if needed, and recommended file locations for configuration files. Spawner. jupyterhub. I followed the directions in here: And seem to have found success if not running using the batchspawner. I am getting a Spawner failed to start message. expanded_scopes: # has permission to Dec 2, 2021 · JupyterHub maintainers, working toward HA Spawner. Regardless of whether you close your browser or not, or even log out, your session will persist, and your work will still run. Using Spawner: jupyterhub. req_epilogue = """!/bin/bash echo 'hostname'""" (just an example). (this is hacking cmd to a multiline thing so I don't have to replace the whole batch script, but could also be put directly in the batch script if you are editing that). 0,'disable_user_sudo': True}), This seems to work. Nov 5, 2020 · Thanks for contributing an answer to Stack Overflow! Please be sure to answer the question. Everything has worked fine, until I attempted to update the version of Jupyter*. g. Is it possible to send signals to the system on a browser-tab-close action? (sorry if that phrasing is confusing) Any hints would be appreciated! Thanks! Paul Jul 11, 2024 · Hello, Unless you post the JupyterHub logs and config, it would be very hard for others to help you out. Since jupyterhub depends on jinja2, the batch scripts could be made to use this as well. Though, right now default is '', which could be interperted differently from 1 on some platforms (slurm defaults to 1): there's no way to leave it missing. LocalProcessSpawner- 1. py. Aug 19, 2020 · Bug description Hello, I have started jupyterhub as a service in dockerswarm. slurmkernel is able to connect to a kernel started on a compute node using SSH port forwarding. Unfortunately, I don’t seem to be able to see the old versions of wrapspawner and batchspawner. hub_ip = '0. dev0 jupyter_server 2. Jupyter has a very different usage pattern than normal HPC work - CPUs are idle most of the time, and memory usage is unknown. However, because my c. Asking for help, clarification, or responding to other answers. According the documentation (at least as far as I've understood), the parameter c. If I turn on all the Sep 22, 2020 · Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! 🤗 If you haven't done so already, check out Jupyter's Code of Conduct. 9dev and Python 3. I Apr 12, 2022 · Bug description We are trying to launch a singularity image container with SLURM. SlurmSpawner doesnt work 4. SlurmSpawner. Simple sudo rules do not help, since unrestricted access to systemd-run is equivalent to root. app. 04 in VirtualBox. 0 [I 2019-10-30 13: WrapSpawner provides a mechanism to wrap the interface of a JupyterHub Spawner such that the Spawner class to use for single-user servers can be chosen dynamically. Nov 15, 2021 · I am running a slurm cluster and running batchspawner, but the spawned server does not communicate with the frontend server and keeps getting killed off. kubernetes. I've also tried with the gateway from docker network inspect myproject_default. 0 Great project, Thanks for your help! Jan 23, 2018 · There are two things here. args is accessed, and can be used by Spawners to customize/extend user-provided arguments. Contribute to silx-kit/jupyterhub_moss development by creating an account on GitHub. Am I trying to install Jupyterhub in a non-standard way? According to your earlier post JupyterHub was working fine, and it’s the Apache proxy that’s the problem. default_url = '/lab/tree/Information. Without nginx reverse proxy, it works without problems. DockerSpawner' # we need the hub to listen on all ips when it is in a container c. 0, JupyterHub unconditionally added certain options if specified to the command-line, such as --ip={Spawner. bind_url is now set to 127 Feb 27, 2019 · The mistake is in the c. 1/0. RemoteSlurmSpawner' import remote_slurm_spawner # Even though not used, needed to register batchspawner interface Overview This file contains an abstraction layer for batch job queueing systems ( BatchSpawnerBase ), and implements Jupyterhub spawners for Torque, Moab, SLURM, SGE, HTCondor, LSF Mar 20, 2024 · Hello, I am reaching out to you because we are setting up a new infrastructure and the migration of JupyterHub from version 1 to version 4. kmtgg vyfkbzl weevx ywn mxpva wwho neowa ajwxu ksy cvmcv