SIMPLE YAML compiler Web UI Deployment Guide
Backend deployment
Backend repository can be found here.
Frontend repository can be found here.
How to deploy to OpenShift
Select Python from the list of options
- Select your project, set application name and select the repository. Supported Python version is 2.7.
Create a route to the backend service with secondary hostname
Expose route to the Internet using
oc annotate route <ROUTE NAME> router.cern.ch/network-visibility=Internet
(Optional) Add health-check to the backend deployment.
Available endpoints
/versions
-GET
list of installed compiler versions/compile
-POST
site-level config file to be compiled/augmented// Request { "version": "v1.0.6", "site_conf": (binary) } // Response (success) { "augmented_conf": "...", "schema": "..." } // Response (failure) { "Input File": "<site-level conf>", "error": "<error traceback>", "file_name1": "...", "file_name2": "...", "file_name3": "...", ... }
/health
-GET
health check endpoint
Installing new compiler versions
In order to install a new compiler simply download it from the SIMPLE Grid YAML compiler package page in PyPi here and extract it inside the compilers
directory.
The backend will take care of picking up the installed compilers and providing a list of available versions to the frontend.
Frontend deployment
How to deploy to OpenShift
- Download the OKD client oc.
- Execute the
oc login
command from the OpenShift dashboard. - Select project using
oc project
. - Deploy app by executing
npx simple-nodeshift --strictSSL=false --dockerImage=nodeshift/ubi8-s2i-web-app --imageTag=latest --expose
inside of the project root directory. Used a fork of nodeshift. - Expose route to the Internet using
oc annotate route simple-web-compiler-frontend router.cern.ch/network-visibility=Internet
WARNING: If the frontend works but when uploading a file it hangs check that the backend route is also exposed and the hosts are not conflicting.