.. vim:noswapfile:nobackup:nowritebackup: .. highlight:: console 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.