aboutsummaryrefslogtreecommitdiff
path: root/op_guide
diff options
context:
space:
mode:
authorQuentin <quentin@dufour.io>2021-01-29 15:53:37 +0100
committerQuentin <quentin@dufour.io>2021-01-29 15:53:37 +0100
commitcee95ad0616f9c55cea6917c88b49366304a7287 (patch)
tree69890df2d0e5be7804c8962eebddc381f69a2d04 /op_guide
parent982efd1b49f7435f7c49c2099aabfc994d3901fb (diff)
parent24dcc096958799745a51abe06e2fe1712aaba940 (diff)
downloadinfrastructure-cee95ad0616f9c55cea6917c88b49366304a7287.tar.gz
infrastructure-cee95ad0616f9c55cea6917c88b49366304a7287.zip
Merge pull request 'Upgrade Synapse & Element-web, réécriture de l'OP guide, et ajout du secret turn.zinz.dev' (#33) from adrien/infrastructure:master into master
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/infrastructure/pulls/33
Diffstat (limited to 'op_guide')
-rw-r--r--op_guide/update_matrix/README.md46
1 files changed, 25 insertions, 21 deletions
diff --git a/op_guide/update_matrix/README.md b/op_guide/update_matrix/README.md
index 7df588f..e330277 100644
--- a/op_guide/update_matrix/README.md
+++ b/op_guide/update_matrix/README.md
@@ -3,22 +3,26 @@ How to update Matrix?
## 1. Build the new containers
-It starts with this file: `app/build/docker-compose.yml`.
Often, I update Riot Web and Synapse at the same time.
-In the file, find the `riot` and `synapse` entries.
-The only thing you need to do is to update the `VERSION` argument.
-This argument is then used to template the Dockerfile.
-The `VERSION` value should match a github release, the link to the corresponding release page is put as a comment next to the variable in the compose file.
-Next, we put tags on our images.
-You need to increment it, for example: `superboum/amd64_riotweb:v17` will become `superboum/amd64_riotweb:v18`.
-We use the docker hub to store our images, if you are not `superboum` you must change the name with your handle, eg. `john/amd64_riotweb:v18`.
-So, from now we expact you have:
- - changed the `VERSION` value and `image` name/tag of `riot`
- - changed the `VERSION` value and `image` name/tag of `synapse`
+* Open `app/docker-compose.yml` and locate `riot` (the Element Web service) and `synapse` (the Matrix Synapse server). There are two things you need to do for each service:
-You can now simply build and push the new images:
+ * Set the `VERSION` argument to the target service version (e.g. `1.26.0` for Synapse). This argument is then used to template the Dockerfile.
+
+ The `VERSION` value should match a github release, the link to the corresponding release page is put as a comment next to the variable in the compose file;
+
+ * Tag the image with a new incremented version tag. For example: `superboum/amd64_riotweb:v17` will become `superboum/amd64_riotweb:v18`.
+
+ We use the docker hub to store our images. So, if you are not `superboum` you must change the name with your own handle, eg. `john/amd64_riotweb:v18`. This requires that you registered an account (named `john`) on https://hub.docker.com.
+
+
+So, from now we expect you have:
+
+* changed the `VERSION` value and `image` name/tag of `riot`
+* changed the `VERSION` value and `image` name/tag of `synapse`
+
+From the `/app` folder, you can now simply build and push the new images:
```bash
docker-compose build riot synapse
@@ -34,9 +38,9 @@ Don't forget to commit and push your changes before doing anything else!
## 2. Deploy the new containers
-Now, we will edit the deployment file `app/deployment/im.hcl`.
+Now, we will edit the deployment file `app/im/deploy/im.hcl`.
-Find where the image is defined in the file, for example in Riot, it will look like that:
+Find where the image is defined in the file, for example Element-web will look like that:
```hcl
@@ -52,25 +56,25 @@ Find where the image is defined in the file, for example in Riot, it will look l
}
```
-And replace the `image =` entry with your image name.
-Do the same thing for `synapse`.
+And replace the `image =` entry with its new version created above.
+Do the same thing for the `synapse` service.
Now, you need a way to access the cluster to deploy this file.
To do this, you must bind nomad on your machine through a SSH tunnel.
-Check the end of `README.md` to do it.
+Check the end of [the parent `README.md`](../README.md) to do it.
If you have access to the Nomad web UI when entering http://127.0.0.1:4646
you are ready to go.
-You must have installed the Nomad command line tool on your machine (also explained in `README.md`).
+You must have installed the Nomad command line tool on your machine (also explained in [the parent `README.md`](../README.md)).
-Now, on your machine, you must be able to run (from the `app/deployment` folder) :
+Now, on your machine and from the `app/im/deploy` folder, you must be able to run:
```
nomad plan im.hcl
```
Check that the proposed diff corresponds to what you have in mind.
-If it seems OK, just copy paste the proposed `nomad job run ... im.hcl` command proposed as part of the output of the `nomad plan` command.
+If it seems OK, just copy paste the `nomad job run ... im.hcl` command proposed as part of the output of the `nomad plan` command.
From now, it will take around ~2 minutes to deploy the new images.
You can follow the deployment from the Nomad UI.
@@ -84,6 +88,6 @@ If something went wrong, you must rollback your deployment.
2. Revert to this deployment with [nomad job revert](https://www.nomadproject.io/docs/commands/job/revert)
Now, if the deployment failed, you should probably investigate what went wrong offline.
-In this case, I build a test stack with docker-compose in `app/integration` (for now, I had to do that only for plume and jitsi).
+I built a test stack with docker-compose in `app/<service>/integration` that should help you out (for now, test suites are only written for plume and jitsi).