This repo is used for deploying Prez instances.
config.yaml
contains all necessary options for configuring, theming & deploying an instance of Prez.
The theme/
folder contains the HTML, CSS, JavaScript & image files to be mounted as a volume in a container deployment.
Jinja2 HTML templates go under templates/
, (which can include fonts.html
, which can contain <link>
elements for fonts).
Prez is designed to be deployed in a containerised environment. pipeline_script.py
will perform token replacement from values in config.yaml
to the deployment file chosen in the deploymentMethod
field in config.yaml
. Currently, three deployment types are supported: Docker (docker-compose), Kubernetes & ECS.
Note: Only the Kubernetes option is fully implemented.
Use docker-compose.yml
, otherwise a simple shell script docker-run.sh
is provided to run a docker container locally.
- Volume
- Persistent volume claim
- ConfigMap contains env vars for container
- Ingress
For AWS, a StorageClass with an EBS provisioner is recommended, provided in deploy/kube/kube-ebs-storage-class.yaml
.
Not yet implemented.
This repo contains pipeline definitions for GitHub actions, BitBucket Pipelines & Azure Pipelines.
The SPARQL credentials ([VOC|SPACE]PREZ_SPARQL_ENDPOINT
(required), [VOC|SPACE]PREZ_SPARQL_USERNAME
& [VOC|SPACE]PREZ_SPARQL_PASSWORD
) should be set as repository secrets.
All pipeline methods follow the same steps:
- Run
pipeline_script.py
for token replacement - Depending on
deploymentMethod
value, deploy as necessary
Currently, only the Kubernetes deployment option is supported, where EKS is used.
The required repository secrets are:
KUBE_CONFIG
- Obtained by locally running:
cat $HOME/.kube/config | base64
- Note that any AWS_PROFILEs in this config should be removed beforehand
- Obtained by locally running:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
Along with the required secrets for Prez itself ([VOC|SPACE]PREZ_SPARQL_ENDPOINT
(required), [VOC|SPACE]PREZ_SPARQL_USERNAME
& [VOC|SPACE]PREZ_SPARQL_PASSWORD
).
Not yet implemented.
Not yet implemented.