For this small, local, test deployment any modern hardware would suffice, we recommend a dedicated virtual machine with
For this small, local, test deployment any modern hardware would suffice, we recommend a dedicated virtual machine with
the following settings. Note that most of the vCPU and RAM resources will be needed for starting the infrastructure,
the following settings. Note that most of the vCPU and RAM resources will be needed for starting the infrastructure,
...
@@ -20,7 +20,7 @@ this is because of Docker. During idle times, the deployment will use significan
...
@@ -20,7 +20,7 @@ this is because of Docker. During idle times, the deployment will use significan
- 16GB RAM memory
- 16GB RAM memory
- 100GB SSD storage
- 100GB SSD storage
### Software
### Minikube
First, install the minikube virtualization tool that provides a single-node Kubernetes environment, e.g. on a virtual
First, install the minikube virtualization tool that provides a single-node Kubernetes environment, e.g. on a virtual
machine. We do not regularly check these instructions, they are provided on best-effort. Check
machine. We do not regularly check these instructions, they are provided on best-effort. Check
...
@@ -41,6 +41,8 @@ minikube kubectl -- get po -A
...
@@ -41,6 +41,8 @@ minikube kubectl -- get po -A
minikube addons enable ingress
minikube addons enable ingress
```
```
### NGINX
Deploy a NGINX reverse proxy on the virtual machine to reach your minikube cluster from the public Internet:
Deploy a NGINX reverse proxy on the virtual machine to reach your minikube cluster from the public Internet:
```nginx title="/etc/nginx/conf.d/dbrepo.conf"
```nginx title="/etc/nginx/conf.d/dbrepo.conf"
...
@@ -79,6 +81,36 @@ Replace `CLUSTER_IP` with the result of:
...
@@ -79,6 +81,36 @@ Replace `CLUSTER_IP` with the result of:
Replace `DOMAIN_NAME` with the domain name. You will need also a valid TLS certificate with private key for TLS enabled
Replace `DOMAIN_NAME` with the domain name. You will need also a valid TLS certificate with private key for TLS enabled
in the cluster. In our test deployment we obtained a certificate from Let's Encrypt.
in the cluster. In our test deployment we obtained a certificate from Let's Encrypt.
### Fileshare
Since the Upload Service uses a shared filesystem with the [Analyst Service](/infrastructures/dbrepo/latest/system-services-analyse/),
[Metadata Service](/infrastructures/dbrepo/latest/system-services-metadata/) and
[Data Database](/infrastructures/dbrepo/latest/system-databases-data/), the dynamic provision of the *PersistentVolume*
by the *PersistentVolumeClaim*
of [`pvc.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-deployment/-/blob/master/charts/dbrepo-core/templates/upload-service/pvc.yaml)
needs to happen statically. You can make use of the host's filesystem and mount it in each of those deployments.
For example, mount the *hostPath* directly in
the [`deployment.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-deployment/-/blob/master/charts/dbrepo-core/templates/analyse-service/deployment.yaml).
```yaml title="deployment.yaml"
apiVersion: apps/v1
kind: Deployment
metadata:
name: analyse-service
...
spec:
template:
spec:
containers:
- name: analyse-service
volumeMounts:
- name: shared
hostPath: /path/of/host
mountPath: /mnt/shared
...
```
## Deployment
## Deployment
To install the DBRepo Helm Chart, download and edit
To install the DBRepo Helm Chart, download and edit