diff --git a/molgenis-nexus/README.md b/molgenis-nexus/README.md index 0af9bb5..b6bda27 100644 --- a/molgenis-nexus/README.md +++ b/molgenis-nexus/README.md @@ -6,8 +6,44 @@ NEXUS repository for kubernetes to deploy on a kubernetes cluster with NFS-share This chart will deploy: +- 1 NEXUS-nfs initialization container + + We need this container to avoid permission issues on the NEXUS docker - 1 NEXUS container -- 1 MOLGENIS-httpd container ()to proxy the registry and docker to one domain) +- 1 MOLGENIS-httpd container (to proxy the registry and docker to one domain) + +## Backup restore +There are two steps in restoring the NEXUS. + +- Database +- Blobstore + +### Restore the database +Go to the commandline: + +```bash +kubectl get pv +``` + +```bash +| NAME | CAPACITY | ACCESS | MODES | RECLAIM | POLICY | STATUS | CLAIM | STORAGECLASS | REASON | AGE | +| ---- | -------- | ------ | ----- | ------- | ------ | ------ | ----- | ------------ | ------ | --- | +| pvc-45988f55-900f-11e8-a0b4-005056a51744 | 30G | RWX | | Retain | Bound | molgenis-nexus/molgenis-nfs-claim | nfs-provisioner-retain | | | 33d | +| pvc-3984723d-220f-14e8-a98a-skjhf88823kk | 30G | RWO | | Delete | Bound | molgenis-test/molgenis-nfs-claim | nfs-provisioner | | | 33d | +``` + +The persistent volume is the one in the molgenis-nexus namespace. + +Go to the NFS-provisioner to the path of the persistent volume: + +```bash +ls -t --full-time | head -7 | xargs cp ../restore-from-backup/ +``` + +### Restore the blobstore +You can copy the directory ```blobs``` to the target persistent volume ```/ blobs```. + +You can now bring the NEXUS back up. ## Installing the Chart diff --git a/molgenis-nexus/templates/deployments/nexus-deployment.yaml b/molgenis-nexus/templates/deployments/nexus-deployment.yaml index 72056eb..175998e 100644 --- a/molgenis-nexus/templates/deployments/nexus-deployment.yaml +++ b/molgenis-nexus/templates/deployments/nexus-deployment.yaml @@ -20,32 +20,39 @@ spec: creationTimestamp: null spec: restartPolicy: {{ .Values.nexus.restartPolicy }} + initContainers: + - name: nexus-nfs + image: busybox + command: ["sh", "-c", "chown -R 200:200 /nexus-data"] + volumeMounts: + - name: molgenis-nexus-nfs + mountPath: "/nexus-data" containers: - - name: {{ .Values.nexus.name }} - image: "{{ .Values.nexus.image.repository }}:{{ .Values.nexus.image.tag }}" - imagePullPolicy: {{ .Values.nexus.image.pullPolicy }} - ports: - - containerPort: {{ .Values.nexus.port.ui }} - - containerPort: {{ .Values.nexus.port.docker }} - volumeMounts: - - name: molgenis-nexus-nfs - mountPath: "/nexus-data" - livenessProbe: - httpGet: - path: / - port: {{ .Values.nexus.port.ui }} - initialDelaySeconds: 90 - periodSeconds: 20 - failureThreshold: 5 - successThreshold: 1 - readinessProbe: - httpGet: - path: / - port: {{ .Values.nexus.port.ui }} - initialDelaySeconds: 90 - periodSeconds: 5 - failureThreshold: 5 - successThreshold: 1 + - name: {{ .Values.nexus.name }} + image: "{{ .Values.nexus.image.repository }}:{{ .Values.nexus.image.tag }}" + imagePullPolicy: {{ .Values.nexus.image.pullPolicy }} + ports: + - containerPort: {{ .Values.nexus.port.ui }} + - containerPort: {{ .Values.nexus.port.docker }} + volumeMounts: + - name: molgenis-nexus-nfs + mountPath: /nexus-data + livenessProbe: + httpGet: + path: / + port: {{ .Values.nexus.port.ui }} + initialDelaySeconds: 90 + periodSeconds: 20 + failureThreshold: 5 + successThreshold: 1 + readinessProbe: + httpGet: + path: / + port: {{ .Values.nexus.port.ui }} + initialDelaySeconds: 90 + periodSeconds: 5 + failureThreshold: 5 + successThreshold: 1 volumes: - name: molgenis-nexus-nfs diff --git a/molgenis-nexus/values.yaml b/molgenis-nexus/values.yaml index df5cdab..3203fa7 100644 --- a/molgenis-nexus/values.yaml +++ b/molgenis-nexus/values.yaml @@ -13,7 +13,7 @@ nexus: selector: nexus restartPolicy: Always image: - repository: sonatype/nexus3 + repository: molgenis/nexus3 tag: latest pullPolicy: Always port: @@ -32,8 +32,8 @@ nexusProxy: selector: nexus-proxy restartPolicy: Always image: - repository: registry.webhosting.rug.nl/molgenis/httpd - tag: lts + repository: molgenis/httpd + tag: latest pullPolicy: Always port: 80 service: