The files under this directory can be used to deploy proWES on Kubernetes. The directory structure is as follows:
First you must create a namespace in Kubernetes in which to deploy proWES. The commands below assume that everything is created in the context of this namespace. How the namespace is created depends on the cluster, so we won’t document it here.
There are some prerequisites to deploying proWES on Kubernetes. Namely:
prowes-db createdprowes-db available in a Secret
called ‘mongodb’.netrc created (see below)You’ll need to configure an SFTP server connection using a .netrc file with
the following format:
machine my-sftp-server.com
login <username>
password <password>
Create a Kubernetes Secret from the .netrc file:
kubectl create secret generic netrc --from-file .netrc
You need to edit the values.yaml file to specify your applicationDomain and the clusterType
After this you can deploy proWES using helm:
helm install prowes . -f values.yaml
If you want to edit any of the Deployments, you can update them with
helm and the values.yaml file. Once edited, you can run this command:
helm upgrade prowes . -f values.yaml
If you want to point to a different FTP server or change the login credentials
for the current FTP server, you can update the .netrc secret like so:
kubectl create secret generic netrc --from-file .netrc --dry-run -o yaml | kubectl apply -f -
The MongoDB database is deployed using:
templates/mongodb/mongodb-deployment.yamlThe message broker RabbitMQ that allows the app to communicate with the worker is deployed using:
templates/rabbitmq/rabbitmq-deployment.yamlproWES consists of five deployments: a Flask server and a Celery worker. These are deployed using:
templates/prowes/prowes-deployment.yamltemplates/prowes/celery-deployment.yamlThese deployments depend on setting up a shared ReadWriteMany volume between
(wes-configmap.yaml).
Simply run:
helm uninstall prowes