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.