3.4.2. Requirements¶
Note
The requirements for the hub are very similar to the node requirements.
Below are the minimal requirements for vantage6 infrastructure components. Note that these are recommendations: it may also work on other hardware, operating systems, versions of Python etc. (but they are not tested as much).
Hardware
x86 CPU architecture + virtualization enabled
4 GB memory (minimum)
50GB+ storage
Stable and fast (1 Mbps+ internet connection)
Note that the IP addresses of hub components should also be reachable by all users and nodes. This usually means there should be one or more public IP addresses.
Software
Operating system: Ubuntu 20.04+
Python v3.13
Helm
A Kubernetes environment (e.g. Microk8s, Docker Desktop, Kubernetes Cluster)
Below, we provide more details on the software requirements.
Note
Ubuntu is highly recommended as operating system. It is possible to run a vantage6 hub for development on Windows or MacOS, but for production purposes we recommend using Ubuntu.
Python¶
Installation of any of the vantage6 packages requires Python 3.13. For installation instructions, see python.org or use the package manager native to your OS and/or distribution.
Note
We recommend you install vantage6 in a new, clean Python environment.
Higher versions of Python (3.14+) will most likely also work, as might lower versions. However, we develop and test vantage6 on version 3.13, so that is the best choice.
Warning
Note that Python 3.13 is only used in vantage6 v5.0.0 and higher. In lower versions, Python 3.10 is required. Before vantage6 v3.8.0, Python 3.7 was used.
Kubernetes environment¶
A Kubernetes environment is required to run the vantage6 infrastructure. For development environments, we recommend using Microk8s or Docker Desktop. For production environments, we recommend using a Kubernetes cluster, or microk8s on a VM. Here are some details on the different options:
Microk8s: For Ubuntu, we recommend installing Microk8s, which is a lightweight Kubernetes distribution that is easy to install and use. We recommend using this for development environments as well as for deploying nodes. Deploying the central hub components (HQ, auth, algorithm store) is also possible with Microk8s, but usually it would be preferable to use a Kubernetes cluster, e.g for easier scaling.
Docker Desktop: If you are using Docker Desktop, you can simply switch on Kubernetes. This is useful for development environments. This is only recommended for development environments.
Kubernetes Cluster: For production environments, we recommend using a Kubernetes cluster. There are numerous cloud providers that offer Kubernetes as a service. An example is the Azure Kubernetes Service but there are many others, including those from European providers.
Note
To use vantage6, you also need to install kubectl. Usually, though, this comes
with your Kubernetes distribution. kubectl is a command line tool for
managing Kubernetes clusters. Vantage6 uses it to manage the vantage6 Kubernetes
resources.
Helm¶
Helm is a package manager for Kubernetes. It
is used to deploy and manage the Kubernetes resources for the vantage6 infrastructure.
The vantage6 infrastructure is available in several Helm charts. Therefore, you need
helm to deploy and manage the Kubernetes resources for the vantage6 infrastructure.