Add documentation how to enable maintenance mode

This commit is contained in:
Robert Schäfer 2019-07-10 10:47:42 +02:00
parent a87330ef9b
commit 2e9c4ad40a
3 changed files with 45 additions and 5 deletions

View File

@ -28,6 +28,7 @@
* [HTTPS](deployment/digital-ocean/https/README.md) * [HTTPS](deployment/digital-ocean/https/README.md)
* [Human Connection](deployment/human-connection/README.md) * [Human Connection](deployment/human-connection/README.md)
* [Mailserver](deployment/human-connection/mailserver/README.md) * [Mailserver](deployment/human-connection/mailserver/README.md)
* [Maintenance](deployment/human-connection/maintenance/README.md)
* [Volumes](deployment/volumes/README.md) * [Volumes](deployment/volumes/README.md)
* [Neo4J Offline-Backups](deployment/volumes/neo4j-offline-backup/README.md) * [Neo4J Offline-Backups](deployment/volumes/neo4j-offline-backup/README.md)
* [Volume Snapshots](deployment/volumes/volume-snapshots/README.md) * [Volume Snapshots](deployment/volumes/volume-snapshots/README.md)

View File

@ -0,0 +1,43 @@
# Maintenance mode
> Despite our best efforts, systems sometimes require downtime for a variety of reasons.
Quote from [here](https://www.nrmitchi.com/2017/11/easy-maintenance-mode-in-kubernetes/)
We use our maintenance mode for manual database backup and restore. Also we
bring the database into maintenance mode for manual database migrations.
## Deploy the service
We prepared sample configuration, so you can simply run:
```sh
# in folder deployment/
kubectl apply -f human-connection/maintenance
```
This will fire up a maintenance service.
## Bring application into maintenance mode
Now if you want to have a controlled downtime and you want to bring your
application into maintenance mode, you can edit your global ingress server.
E.g. in file `deployment/digital-ocean/https/ingress.yaml` change the following:
```yaml
...
- host: nitro-staging.human-connection.org
http:
paths:
- path: /
backend:
# serviceName: nitro-web
serviceName: maintenance
# servicePort: 3000
servicePort: 80
```
Then run ` kubectl apply -f deployment/digital-ocean/https/ingress.yaml`. If you
want to deactivate the maintenance server, just undo the edit and apply the
configuration again.

View File

@ -23,11 +23,7 @@ So, all we have to do is edit the kubernetes deployment of our Neo4J database
and set a custom `command` every time we have to carry out tasks like backup, and set a custom `command` every time we have to carry out tasks like backup,
restore, seed etc. restore, seed etc.
{% hint style="info" %} First bring the application into [maintenance mode](https://github.com/Human-Connection/Human-Connection/blob/master/deployment/human-connection/maintenance/README.md) to ensure there are no
TODO: implement maintenance mode
{% endhint %}
First bring the application into maintenance mode to ensure there are no
database connections left and nobody can access the application. database connections left and nobody can access the application.
Run the following: Run the following: