Installation

The installation instructions assume that SuPA is installed together with PolyNSI. Both applications are available as source code on GitHub, or as prebuilt container through the GitHub Container Registry. The PolyNSI repository also contains prebuilt JARs. There are several methods to install and run the application:

  • GitHub clone

  • Docker compose

  • Helm chart

  • nsi-node Helm super chart

Note

SuPA was developed using Python 3.8. Compatibility with other Python versions is untested.

PolyNSI was developed using Java 11 and Maven 3.8.5. Compatibility with other Java and Maven versions is untested. It is assumed that a suitable versions of Java and Maven are already installed.

GitHub

SuPA

Clone the SuPA source code repository from GitHub, and checkout the desired branch or version, for example version 0.2.0:

git clone https://github.com/workfloworchestrator/supa.git
cd supa
git checkout 0.2.0

There are multiple ways to add an virtual Python environment, and you can choose whatever suits you best. This example uses the standard venv module and assumes that Python version 3.8 is already installed using your local package manager:

python3.8 -m venv venv
source venv/bin/activate

The virtual environment created by the venv module does not always contain the most recent version of pip. As we are using some newer Python packaging standards (PEP-518) it is probably a good idea to have pip updated to its most recent version:

pip install --upgrade pip wheel

We are including wheel as we will be building or using pre-built C++ extensions.

Now install all dependencies needed by SuPA:

pip install .

And start the application:

supa serve

PolyNSI

Clone the PolyNSI source code repository from GitHub, and checkout the desired branch or version, for example version 0.2.0:

git clone https://github.com/workfloworchestrator/polynsi.git
cd PolyNSI
git checkout 0.2.0

And start the application:

mvn spring-boot:run

Docker compose

Clone the SuPA source code repository from GitHub. The docker folder contains the following:

docker
├── application.properties
├── docker-compose.yml
├── polynsi-keystore.jks
├── polynsi-truststore.jks
└── supa.env

The supa.env is used to override parts of the SuPA default configuration. PolyNSI is configured to use the supplied polynsi-keystore.jks and polynsi-truststore.jks by setting the approriate options in application.properties. The docker-compose.yml has three services defined, one to create an empty folder db in the current folder that will be used to store the SQLite database file used by SuPA, a seconds service to start PolyNSI, and last be not least a third service to start SuPA itself. By default the latest prebuilt SuPA and PolyNSI containers from the GitHub container registry will be used.

To start SuPA and PolyNSI just execute the following commands:

cd docker
docker compose up

Helm chart

Both SuPA and PolyNSI have Helm charts to easily deploy to Kubernetes. Please refer to the supplied values.yaml files for Helm configuration details.

SuPA

Clone the SuPA source code repository from GitHub. The chart folder contains contains a Helm chart to deploy SuPA to a Kubernetes cluster:

kubectl create namespace nsi
helm upgrade --namespace nsi --install supa chart

PolyNSI

Clone the PolyNSI source code repository from GitHub. The chart folder contains contains a Helm chart to deploy PolyNSI to a Kubernetes cluster:

helm upgrade --namespace nsi --install polynsi chart

nsi-node Helm super chart

Both SuPA and PolyNSI can also be deployed by the nsi-node super chart, that can also be used to deploy other pieces of the NSI stack for a more complete deployment. Please refer to the documentation in the nsi-node GitHub repository.