mirror of
https://github.com/jupyterhub/the-littlest-jupyterhub.git
synced 2025-12-18 21:54:05 +08:00
require ubuntu 20.04, test on debian 10
This commit is contained in:
50
.github/workflows/integration-test.yaml
vendored
50
.github/workflows/integration-test.yaml
vendored
@@ -58,36 +58,28 @@ jobs:
|
||||
echo $matrix_post_filter | jq -C '.'
|
||||
env:
|
||||
matrix_include_pre_filter: |
|
||||
- name: "Int. tests: Ubuntu 18.04, Py 3.6"
|
||||
ubuntu_version: "18.04"
|
||||
python_version: "3.6"
|
||||
- name: "Int. tests: Debian 10, Py 3.7"
|
||||
distro_image: "debian:10"
|
||||
runs_on: "ubuntu-22.04"
|
||||
extra_flags: ""
|
||||
- name: "Int. tests: Ubuntu 20.04, Py 3.9"
|
||||
ubuntu_version: "20.04"
|
||||
python_version: "3.9"
|
||||
- name: "Int. tests: Ubuntu 20.04, Py 3.8"
|
||||
distro_image: "ubuntu:20.04"
|
||||
extra_flags: ""
|
||||
- name: "Int. tests: Ubuntu 22.04, Py 3.10"
|
||||
ubuntu_version: "22.04"
|
||||
python_version: "3.10"
|
||||
- name: "Int. tests: Ubuntu 22.04 (Py 3.10)"
|
||||
distro_image: "ubuntu:22.04"
|
||||
extra_flags: ""
|
||||
- name: "Int. tests: Ubuntu 22.04, Py 3.10, --upgrade"
|
||||
ubuntu_version: "22.04"
|
||||
python_version: "3.10"
|
||||
distro_image: "ubuntu:22.04"
|
||||
extra_flags: --upgrade
|
||||
dont_run_on_ref: refs/heads/master
|
||||
|
||||
integration-tests:
|
||||
needs: decide-on-test-jobs-to-run
|
||||
|
||||
# runs-on can only be configured to the LTS releases of ubuntu (20.04,
|
||||
# 22.04, ...), so if we want to test against the latest non-LTS release, we
|
||||
# must compromise when configuring runs-on and configure runs-on to be the
|
||||
# latest LTS release instead.
|
||||
#
|
||||
# This can have consequences because actions like actions/setup-python will
|
||||
# mount cached installations associated with the chosen runs-on environment.
|
||||
#
|
||||
runs-on: ${{ format('ubuntu-{0}', matrix.runs_on || matrix.ubuntu_version) }}
|
||||
# integration tests run in a container,
|
||||
# not in the worker, so this version is not relevant to the tests
|
||||
# and can be the same for all tested versions
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
name: ${{ matrix.name }}
|
||||
strategy:
|
||||
@@ -98,7 +90,7 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "${{ matrix.python_version }}"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install pytest
|
||||
run: python3 -m pip install pytest
|
||||
@@ -106,7 +98,7 @@ jobs:
|
||||
# We abort pytest after two failures as a compromise between wanting to
|
||||
# avoid a flood of logs while still understanding if multiple tests would
|
||||
# fail.
|
||||
- name: Run bootstrap tests (Runs in/Builds ubuntu:${{ matrix.ubuntu_version }} derived image)
|
||||
- name: Run bootstrap tests (Runs in/Builds ${{ matrix.distro_image }} derived image)
|
||||
run: |
|
||||
pytest --verbose --maxfail=2 --color=yes --durations=10 --capture=no \
|
||||
integration-tests/test_bootstrap.py
|
||||
@@ -115,14 +107,14 @@ jobs:
|
||||
# integration-tests/test_bootstrap.py will build and start containers
|
||||
# based on this environment variable. This is similar to how
|
||||
# .github/integration-test.py build-image can take a --build-arg
|
||||
# setting the ubuntu_version.
|
||||
UBUNTU_VERSION: ${{ matrix.ubuntu_version }}
|
||||
# setting the base image.
|
||||
BASE_IMAGE: ${{ matrix.distro_image }}
|
||||
|
||||
# We build a docker image from wherein we will work
|
||||
- name: Build systemd image (Builds ubuntu:${{ matrix.ubuntu_version }} derived image)
|
||||
- name: Build systemd image (Builds ${{ matrix.distro_image }} derived image)
|
||||
run: |
|
||||
.github/integration-test.py build-image \
|
||||
--build-arg "ubuntu_version=${{ matrix.ubuntu_version }}"
|
||||
--build-arg "BASE_IMAGE=${{ matrix.distro_image }}"
|
||||
|
||||
# FIXME: Make the logic below easier to follow.
|
||||
# - In short, setting BOOTSTRAP_PIP_SPEC here, specifies from what
|
||||
@@ -151,7 +143,7 @@ jobs:
|
||||
echo "BOOTSTRAP_PIP_SPEC=$BOOTSTRAP_PIP_SPEC" >> $GITHUB_ENV
|
||||
echo $BOOTSTRAP_PIP_SPEC
|
||||
|
||||
- name: Run basic tests (Runs in ubuntu:${{ matrix.ubuntu_version }} derived image)
|
||||
- name: Run basic tests (Runs in ${{ matrix.distro_image }} derived image)
|
||||
run: |
|
||||
.github/integration-test.py run-test basic-tests \
|
||||
--bootstrap-pip-spec "$BOOTSTRAP_PIP_SPEC" \
|
||||
@@ -162,7 +154,7 @@ jobs:
|
||||
test_extensions.py
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Run admin tests (Runs in ubuntu:${{ matrix.ubuntu_version }} derived image)
|
||||
- name: Run admin tests (Runs in ${{ matrix.distro_image }} derived image)
|
||||
run: |
|
||||
.github/integration-test.py run-test admin-tests \
|
||||
--installer-args "--admin admin:admin" \
|
||||
@@ -171,7 +163,7 @@ jobs:
|
||||
test_admin_installer.py
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Run plugin tests (Runs in ubuntu:${{ matrix.ubuntu_version }} derived image)
|
||||
- name: Run plugin tests (Runs in ${{ matrix.distro_image }} derived image)
|
||||
run: |
|
||||
.github/integration-test.py run-test plugin-tests \
|
||||
--bootstrap-pip-spec "$BOOTSTRAP_PIP_SPEC" \
|
||||
|
||||
3
.github/workflows/unit-test.yaml
vendored
3
.github/workflows/unit-test.yaml
vendored
@@ -42,9 +42,6 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: "Unit tests: Ubuntu 18.04, Py 3.6"
|
||||
ubuntu_version: "18.04"
|
||||
python_version: "3.6"
|
||||
- name: "Unit tests: Ubuntu 20.04, Py 3.9"
|
||||
ubuntu_version: "20.04"
|
||||
python_version: "3.9"
|
||||
|
||||
@@ -36,7 +36,7 @@ might still make breaking changes that have no clear upgrade pathway.
|
||||
## Installation
|
||||
|
||||
The Littlest JupyterHub (TLJH) can run on any server that is running at least
|
||||
**Ubuntu 18.04**. Earlier versions of Ubuntu are not supported.
|
||||
**Ubuntu 20.04**. Earlier versions of Ubuntu are not supported.
|
||||
We have several tutorials to get you started.
|
||||
|
||||
- Tutorials to create a new server from scratch on a cloud provider & run TLJH
|
||||
|
||||
@@ -9,11 +9,10 @@ This script is run as:
|
||||
|
||||
Constraints:
|
||||
|
||||
- The entire script should be compatible with Python 3.6, which is the on
|
||||
Ubuntu 18.04+.
|
||||
- The script should parse in Python 3.5 as we print error messages for using
|
||||
Ubuntu 16.04+ which comes with Python 3.5 by default. This means no
|
||||
f-strings can be used.
|
||||
- The entire script should be compatible with Python 3.7, which is the on
|
||||
Debian 10.
|
||||
- The script should parse in Python 3.6 as we print error messages for using
|
||||
Ubuntu 18.04+ which comes with Python 3.6 by default.
|
||||
- The script must depend only on stdlib modules, as no previous installation
|
||||
of dependencies can be assumed.
|
||||
|
||||
@@ -132,6 +131,12 @@ progress_page_html = """
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _parse_version(vs):
|
||||
"""Parse a simple version into a tuple of ints"""
|
||||
return (int(part) for part in vs.split("."))
|
||||
|
||||
|
||||
# This function is needed both by the process starting this script, and by the
|
||||
# TLJH installer that this script execs in the end. Make sure its replica at
|
||||
# tljh/utils.py stays in sync with this version!
|
||||
@@ -199,22 +204,22 @@ def ensure_host_system_can_install_tljh():
|
||||
.strip()
|
||||
)
|
||||
|
||||
# Require Ubuntu 18.04+ or Debian 10+
|
||||
# Require Ubuntu 20.04+ or Debian 10+
|
||||
distro = get_os_release_variable("ID")
|
||||
version = float(get_os_release_variable("VERSION_ID"))
|
||||
if distro not in ["ubuntu", "debian"]:
|
||||
print("The Littlest JupyterHub currently supports Ubuntu or Debian Linux only")
|
||||
sys.exit(1)
|
||||
elif distro == "ubuntu" and float(version) < 18.04:
|
||||
print("The Littlest JupyterHub requires Ubuntu 18.04 or higher")
|
||||
elif distro == "ubuntu" and _parse_version(version) < (20, 4):
|
||||
print("The Littlest JupyterHub requires Ubuntu 20.04 or higher")
|
||||
sys.exit(1)
|
||||
elif distro == "debian" and float(version) < 10:
|
||||
elif distro == "debian" and _parse_version(version) < (10,):
|
||||
print("The Littlest JupyterHub requires Debian 10 or higher")
|
||||
sys.exit(1)
|
||||
|
||||
# Require Python 3.6+
|
||||
if sys.version_info < (3, 6):
|
||||
print("bootstrap.py must be run with at least Python 3.6")
|
||||
if sys.version_info < (3, 7):
|
||||
print(f"bootstrap.py must be run with at least Python 3.7, found {sys.version}")
|
||||
sys.exit(1)
|
||||
|
||||
# Require systemd (systemctl is a part of systemd)
|
||||
@@ -230,7 +235,7 @@ def ensure_host_system_can_install_tljh():
|
||||
"For local development, see http://tljh.jupyter.org/en/latest/contributing/dev-setup.html"
|
||||
)
|
||||
sys.exit(1)
|
||||
return distro, version
|
||||
return distro, version
|
||||
|
||||
|
||||
class ProgressPageRequestHandler(SimpleHTTPRequestHandler):
|
||||
@@ -441,7 +446,7 @@ def main():
|
||||
"python3-venv",
|
||||
"python3-pip",
|
||||
"git",
|
||||
"sudo", # sudo is missing in default debian install
|
||||
"sudo", # sudo is missing in default debian install
|
||||
],
|
||||
env=apt_get_adjusted_env,
|
||||
)
|
||||
|
||||
@@ -17,7 +17,7 @@ might still make breaking changes that have no clear upgrade pathway.
|
||||
Installation
|
||||
============
|
||||
|
||||
The Littlest JupyterHub (TLJH) can run on any server that is running **Ubuntu 18.04** or **Ubuntu 20.04** on a amd64 or arm64 CPU architecture. Earlier versions of Ubuntu are not supported.
|
||||
The Littlest JupyterHub (TLJH) can run on any server that is running **Debian 10** or **Ubuntu 20.04** on a amd64 or arm64 CPU architecture. Earlier versions of Ubuntu and Debian are not supported, as are other Linux distributions.
|
||||
We have a bunch of tutorials to get you started.
|
||||
|
||||
- Tutorials to create a new server from scratch on a cloud provider & run TLJH
|
||||
|
||||
@@ -58,15 +58,15 @@ Let's create the server on which we can run JupyterHub.
|
||||
#. On the page **Step 1: Choose an Amazon Machine Image (AMI)** you are going
|
||||
to pick the base image your remote server will have. The view will
|
||||
default to the 'Quick-start' tab selected and just a few down the page, select
|
||||
**Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-XXXXXXXXXXXXXXXXX**,
|
||||
**Ubuntu Server 22.04 LTS (HVM), SSD Volume Type - ami-XXXXXXXXXXXXXXXXX**,
|
||||
leaving `64-bit (x86)` toggled.
|
||||
|
||||
.. image:: ../images/providers/amazon/select_ubuntu_18.png
|
||||
:alt: Click Ubuntu server 18.04
|
||||
:alt: Click Ubuntu server 22.04
|
||||
|
||||
The `ami` alpha-numeric at the end references the specific Amazon machine
|
||||
image, ignore this as Amazon updates them routinely. The
|
||||
**Ubuntu Server 18.04 LTS (HVM)** is the important part.
|
||||
**Ubuntu Server 22.04 LTS (HVM)** is the important part.
|
||||
|
||||
|
||||
#. After selecting the AMI, you'll be at **Step 2: Choose an Instance Type**.
|
||||
|
||||
@@ -13,16 +13,16 @@ users and a user environment with packages you want to be installed running on
|
||||
|
||||
This tutorial leads you step-by-step for you to manually deploy your own JupyterHub on Azure cloud.
|
||||
|
||||
.. note:: ✨ The ``Deploy to Azure button`` project allows you to deploy your own JupyterHub with minimal manual configuration steps. The deploy to Azure button allows you to have a vanilla configuration in just one-click and by assigning some variables.
|
||||
|
||||
.. note:: ✨ The ``Deploy to Azure button`` project allows you to deploy your own JupyterHub with minimal manual configuration steps. The deploy to Azure button allows you to have a vanilla configuration in just one-click and by assigning some variables.
|
||||
|
||||
Check it out at `https://github.com/trallard/TLJH-azure-button <https://github.com/trallard/TLJH-azure-button>`_.
|
||||
|
||||
Prerequisites
|
||||
==============
|
||||
|
||||
* A Microsoft Azure account.
|
||||
* A Microsoft Azure account.
|
||||
|
||||
* To get started you can get a free account which includes 150 dollars worth of Azure credits (`get a free account here <https://azure.microsoft.com/en-us/free//?wt.mc_id=TLJH-github-taallard>`_)
|
||||
* To get started you can get a free account which includes 150 dollars worth of Azure credits (`get a free account here <https://azure.microsoft.com/en-us/free//?wt.mc_id=TLJH-github-taallard>`_)
|
||||
|
||||
These instructions cover how to set up a Virtual Machine
|
||||
on Microsoft Azure. For subsequent information about creating
|
||||
@@ -51,8 +51,8 @@ A new screen with all the options for Virtual Machines in Azure will displayed.
|
||||
.. image:: ../images/providers/azure/create-vm.png
|
||||
:alt: Create VM from the marketplace
|
||||
|
||||
#. **Choose an Ubuntu server for your VM**:
|
||||
* Click `Ubuntu Server 18.04 LTS.`
|
||||
#. **Choose an Ubuntu server for your VM**:
|
||||
* Click `Ubuntu Server 22.04 LTS.`
|
||||
* Make sure `Resource Manager` is selected in the next screen and click **Create**
|
||||
|
||||
.. image:: ../images/providers/azure/ubuntu-vm.png
|
||||
@@ -70,7 +70,7 @@ A new screen with all the options for Virtual Machines in Azure will displayed.
|
||||
* **Name**. Use a descriptive name for your virtual machine (note that you cannot use spaces or special characters).
|
||||
* **Region**. Choose a location near where you expect your users to be located.
|
||||
* **Availability options**. Choose "No infrastructure redundancy required".
|
||||
* **Image**. Make sure "Ubuntu Server 18.04 LTS" is selected (from the previous step).
|
||||
* **Image**. Make sure "Ubuntu Server 22.04 LTS" is selected (from the previous step).
|
||||
* **Authentication type**. Change authentication type to "password".
|
||||
* **Username**. Choose a memorable username, this will be your "root" user, and you'll need it later on.
|
||||
* **Password**. Type in a password, this will be used later for admin access so make sure it is something memorable.
|
||||
@@ -83,17 +83,17 @@ A new screen with all the options for Virtual Machines in Azure will displayed.
|
||||
|
||||
#. Before clicking on "Next" we need to select the RAM size for the image.
|
||||
* For this we need to make sure we have enough RAM to accommodate your users. For example, if each user needs 2GB of RAM, and you have 10 total users, you need at least 20GB of RAM on the machine. It's also good to have a few GB of "buffer" RAM beyond what you think you'll need.
|
||||
* Click on **Change size** (see image below)
|
||||
* Click on **Change size** (see image below)
|
||||
|
||||
.. image:: ../images/providers/azure/size-vm.png
|
||||
:alt: Choose vm size
|
||||
:alt: Choose vm size
|
||||
|
||||
.. note:: For more information about estimating memory, CPU and disk needs check `The memory section in the TLJH documentation <https://tljh.jupyter.org/en/latest/howto/admin/resource-estimation.html>`_
|
||||
.. note:: For more information about estimating memory, CPU and disk needs check `The memory section in the TLJH documentation <https://tljh.jupyter.org/en/latest/howto/admin/resource-estimation.html>`_
|
||||
|
||||
* Select a suitable image (to check available images and prices in your region `click on this link <https://azuremarketplace.microsoft.com/en-gb/marketplace/apps/Canonical.UbuntuServer?tab=PlansAndPrice/?wt.mc_id=TLJH-github-taallard>`_).
|
||||
|
||||
* Select a suitable image (to check available images and prices in your region `click on this link <https://azuremarketplace.microsoft.com/en-gb/marketplace/apps/Canonical.UbuntuServer?tab=PlansAndPrice/?wt.mc_id=TLJH-github-taallard>`_).
|
||||
|
||||
#. Disks (Storage):
|
||||
* **Disk options**: select the OS disk type there are options for SDD and HDD. **SSD persistent disk** gives you a faster but more expensive disk than HDD.
|
||||
* **Disk options**: select the OS disk type there are options for SDD and HDD. **SSD persistent disk** gives you a faster but more expensive disk than HDD.
|
||||
* **Data disk**. Click on create and attach a new disk. Select an appropriate type and size and click ok.
|
||||
* Click "Next".
|
||||
|
||||
@@ -111,7 +111,7 @@ A new screen with all the options for Virtual Machines in Azure will displayed.
|
||||
* **Public inbound ports**. Check **HTTP**, **HTTPS**, and **SSH**.
|
||||
|
||||
.. image:: ../images/providers/azure/networking-vm.png
|
||||
:alt: Choose networking ports
|
||||
:alt: Choose networking ports
|
||||
|
||||
#. Management
|
||||
* Monitoring
|
||||
@@ -129,7 +129,7 @@ A new screen with all the options for Virtual Machines in Azure will displayed.
|
||||
|
||||
#. Advanced settings
|
||||
* **Extensions**. Make sure there are no extensions listed
|
||||
* **Cloud init**. We are going to use this section to install TLJH directly into our Virtual Machine.
|
||||
* **Cloud init**. We are going to use this section to install TLJH directly into our Virtual Machine.
|
||||
Copy the code snippet below:
|
||||
|
||||
.. code:: bash
|
||||
@@ -165,7 +165,7 @@ A new screen with all the options for Virtual Machines in Azure will displayed.
|
||||
.. image:: ../images/providers/azure/goto-vm.png
|
||||
:alt: Go to VM
|
||||
|
||||
#. Check if the installation is completed by **copying** the **Public IP address** of your virtual machine, and trying to access it with a browser.
|
||||
#. Check if the installation is completed by **copying** the **Public IP address** of your virtual machine, and trying to access it with a browser.
|
||||
|
||||
.. image:: ../images/providers/azure/ip-vm.png
|
||||
:alt: Public IP address
|
||||
|
||||
@@ -31,7 +31,7 @@ Pre-requisites
|
||||
==============
|
||||
|
||||
#. Some familiarity with the command line.
|
||||
#. A server running Ubuntu 18.04 where you have root access.
|
||||
#. A server running Ubuntu 20.04 where you have root access.
|
||||
#. At least **1GB** of RAM on your server.
|
||||
#. Ability to ``ssh`` into the server & run commands from the prompt.
|
||||
#. An **IP address** where the server can be reached from the browsers of your target audience.
|
||||
|
||||
@@ -34,10 +34,10 @@ Let's create the server on which we can run JupyterHub.
|
||||
This takes you to a page titled **Create Droplets** that lets you configure
|
||||
your server.
|
||||
|
||||
#. Under **Choose an image**, select **18.04 x64** under **Ubuntu**.
|
||||
#. Under **Choose an image**, select **22.04 x64** under **Ubuntu**.
|
||||
|
||||
.. image:: ../images/providers/digitalocean/select-image.png
|
||||
:alt: Select 18.04 x64 image under Ubuntu
|
||||
:alt: Select 22.04 x64 image under Ubuntu
|
||||
|
||||
#. Under **Choose a size**, select the size of the server you want. The default
|
||||
(4GB RAM, 2CPUs, 20 USD / month) is not a bad start. You can resize your server
|
||||
|
||||
@@ -94,10 +94,10 @@ Let's create the server on which we can run JupyterHub.
|
||||
|
||||
This should open a **Boot disk** popup.
|
||||
|
||||
#. Select **Ubuntu 18.04 LTS** from the list of operating system images.
|
||||
#. Select **Ubuntu 22.04 LTS** from the list of operating system images.
|
||||
|
||||
.. image:: ../images/providers/google/boot-disk-ubuntu.png
|
||||
:alt: Selecting Ubuntu 18.04 for OS
|
||||
:alt: Selecting Ubuntu 22.04 for OS
|
||||
|
||||
#. You can also change the **type** and **size** of your disk at the bottom
|
||||
of this popup.
|
||||
|
||||
@@ -5,7 +5,8 @@ Installing
|
||||
==========
|
||||
|
||||
The Littlest JupyterHub (TLJH) can run on any server that is running at least
|
||||
**Ubuntu 18.04**. Earlier versions of Ubuntu are not supported.
|
||||
**Ubuntu 20.04** or **Debian 10**. Earlier versions of Ubuntu and Debian are not supported,
|
||||
nor are other Linux distributions.
|
||||
We have a bunch of tutorials to get you started.
|
||||
|
||||
Tutorials to create a new server from scratch on a cloud provider & run TLJH
|
||||
|
||||
@@ -33,11 +33,11 @@ Let's create the server on which we can run JupyterHub.
|
||||
This takes you to a page with a list of base images you can choose for your
|
||||
server.
|
||||
|
||||
#. Under **Image Search**, search for **Ubuntu 18.04**, and select the
|
||||
**Ubuntu 18.04 Devel and Docker** image.
|
||||
#. Under **Image Search**, search for **Ubuntu 22.04**, and select the
|
||||
**Ubuntu 22.04 Devel and Docker** image.
|
||||
|
||||
.. image:: ../images/providers/jetstream/select-image.png
|
||||
:alt: Select Ubuntu 18.04 x64 image from image list
|
||||
:alt: Select Ubuntu 22.04 x64 image from image list
|
||||
|
||||
#. Once selected, you will see more information about this image. Click the
|
||||
**Launch** button on the top right.
|
||||
|
||||
@@ -32,7 +32,7 @@ Let's create the server on which we can run JupyterHub.
|
||||
|
||||
.. image:: ../images/providers/ovh/create-ovh-stack.png
|
||||
:alt: Button to create an OVH stack
|
||||
|
||||
|
||||
#. Select a name for the project:
|
||||
|
||||
.. image:: ../images/providers/ovh/project-name.png
|
||||
@@ -47,15 +47,15 @@ Let's create the server on which we can run JupyterHub.
|
||||
|
||||
.. image:: ../images/providers/ovh/create-instance.png
|
||||
:alt: Create a new instance
|
||||
|
||||
|
||||
#. **Select a model** for the instance. A good start is the **S1-4** model under **Shared resources** which comes with 4GB RAM, 1 vCores and 20GB SSD.
|
||||
|
||||
|
||||
#. **Select a region**.
|
||||
|
||||
#. Select **Ubuntu 18.04** as the image:
|
||||
#. Select **Ubuntu 22.04** as the image:
|
||||
|
||||
.. image:: ../images/providers/ovh/distribution.png
|
||||
:alt: Select Ubuntu 18.04 as the image
|
||||
:alt: Select Ubuntu 22.04 as the image
|
||||
|
||||
#. OVH requires setting an SSH key to be able to connect to the instance.
|
||||
You can create a new SSH by following
|
||||
|
||||
@@ -7,7 +7,7 @@ Server Requirements
|
||||
Operating System
|
||||
================
|
||||
|
||||
We require using Ubuntu 18.04 as the base operating system for your server.
|
||||
We require using Ubuntu >=20.04 as the base operating system for your server.
|
||||
|
||||
Root access
|
||||
===========
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Systemd inside a Docker container, for CI only
|
||||
ARG ubuntu_version=20.04
|
||||
FROM ubuntu:${ubuntu_version}
|
||||
ARG BASE_IMAGE=ubuntu:20.04
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
# DEBIAN_FRONTEND is set to avoid being asked for input and hang during build:
|
||||
# https://anonoz.github.io/tech/2020/04/24/docker-build-stuck-tzdata.html
|
||||
|
||||
@@ -6,6 +6,8 @@ import os
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
BASE_IMAGE = os.getenv("BASE_IMAGE", "ubuntu:20.04")
|
||||
|
||||
|
||||
def install_pkgs(container_name, show_progress_page):
|
||||
# Install python3 inside the ubuntu container
|
||||
@@ -13,7 +15,7 @@ def install_pkgs(container_name, show_progress_page):
|
||||
pkgs = ["python3"]
|
||||
if show_progress_page:
|
||||
pkgs += ["systemd", "git", "curl"]
|
||||
# Create the sudoers dir, so that the installer succesfully gets to the
|
||||
# Create the sudoers dir, so that the installer successfully gets to the
|
||||
# point of starting jupyterhub and stopping the progress page server.
|
||||
subprocess.check_output(
|
||||
["docker", "exec", container_name, "mkdir", "-p", "etc/sudoers.d"]
|
||||
@@ -128,15 +130,15 @@ def test_ubuntu_too_old():
|
||||
"""
|
||||
Error with a useful message when running in older Ubuntu
|
||||
"""
|
||||
output = run_bootstrap_after_preparing_container("old-distro-test", "ubuntu:16.04")
|
||||
assert output.stdout == "The Littlest JupyterHub requires Ubuntu 18.04 or higher\n"
|
||||
output = run_bootstrap_after_preparing_container("old-distro-test", "ubuntu:18.04")
|
||||
assert output.stdout == "The Littlest JupyterHub requires Ubuntu 20.04 or higher\n"
|
||||
assert output.returncode == 1
|
||||
|
||||
|
||||
def test_inside_no_systemd_docker():
|
||||
output = run_bootstrap_after_preparing_container(
|
||||
"plain-docker-test",
|
||||
f"ubuntu:{os.getenv('UBUNTU_VERSION', '20.04')}",
|
||||
BASE_IMAGE,
|
||||
)
|
||||
assert "Systemd is required to run TLJH" in output.stdout
|
||||
assert output.returncode == 1
|
||||
@@ -172,7 +174,7 @@ def test_progress_page():
|
||||
installer = executor.submit(
|
||||
run_bootstrap_after_preparing_container,
|
||||
"progress-page",
|
||||
f"ubuntu:{os.getenv('UBUNTU_VERSION', '20.04')}",
|
||||
BASE_IMAGE,
|
||||
True,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user