1
0
Fork 0

app/matrix: migrate postgres and data to waw3

The way this was migrated is not to be spoken of.

(hint: it involved downtime, and mounting two volumes at once)

appservice-irc has some storage, we should migrate that to waw3, too. But
it's not as critical.

The new storage (waw3) is _much_ faster.

Change-Id: I4b4bd32e4fedc514753d25bac35d001e8a9c5f00
master
q3k 2020-08-23 01:24:03 +00:00
parent 35d437883b
commit c0c037aad9
3 changed files with 12 additions and 6 deletions

View File

@ -31,7 +31,7 @@ database:
user: "synapse" user: "synapse"
password: "{{ POSTGRES_PASSWORD }}" password: "{{ POSTGRES_PASSWORD }}"
database: "synapse" database: "synapse"
host: "postgres" host: "waw3-postgres"
port: "5432" port: "5432"
cp_min: 5 cp_min: 5
cp_max: 10 cp_max: 10

View File

@ -15,6 +15,7 @@ local postgres = import "../../kube/postgres.libsonnet";
domain: "matrix.hackerspace.pl", domain: "matrix.hackerspace.pl",
serverName: "hackerspace.pl", serverName: "hackerspace.pl",
storageClassName: "waw-hdd-paranoid-2", storageClassName: "waw-hdd-paranoid-2",
storageClassName3: "waw-hdd-redundant-3",
synapseImage: "matrixdotorg/synapse:v1.17.0", synapseImage: "matrixdotorg/synapse:v1.17.0",
riotImage: "vectorim/riot-web:v1.7.1", riotImage: "vectorim/riot-web:v1.7.1",
@ -33,21 +34,23 @@ local postgres = import "../../kube/postgres.libsonnet";
namespace: kube.Namespace(cfg.namespace), namespace: kube.Namespace(cfg.namespace),
postgres: postgres { postgres3: postgres {
cfg+: { cfg+: {
namespace: cfg.namespace, namespace: cfg.namespace,
appName: "synapse", appName: "synapse",
database: "synapse", database: "synapse",
username: "synapse", username: "synapse",
prefix: "waw3-",
password: { secretKeyRef: { name: "synapse", key: "postgres_password" } }, password: { secretKeyRef: { name: "synapse", key: "postgres_password" } },
storageClassName: cfg.storageClassName, storageClassName: cfg.storageClassName3,
storageSize: "100Gi",
}, },
}, },
dataVolume: kube.PersistentVolumeClaim("synapse-data") { dataVolume: kube.PersistentVolumeClaim("synapse-data-waw3") {
metadata+: app.metadata("synapse-data"), metadata+: app.metadata("synapse-data"),
spec+: { spec+: {
storageClassName: cfg.storageClassName, storageClassName: cfg.storageClassName3,
accessModes: [ "ReadWriteOnce" ], accessModes: [ "ReadWriteOnce" ],
resources: { resources: {
requests: { requests: {

View File

@ -16,6 +16,8 @@ local kube = import "kube.libsonnet";
username: error "username must be set", username: error "username must be set",
# not literal, instead ref for env (like { secretKeyRef: ... }) # not literal, instead ref for env (like { secretKeyRef: ... })
password: error "password must be set", password: error "password must be set",
storageSize: "30Gi",
}, },
makeName(suffix):: cfg.prefix + suffix, makeName(suffix):: cfg.prefix + suffix,
@ -36,7 +38,7 @@ local kube = import "kube.libsonnet";
accessModes: [ "ReadWriteOnce" ], accessModes: [ "ReadWriteOnce" ],
resources: { resources: {
requests: { requests: {
storage: "30Gi", storage: cfg.storageSize,
}, },
}, },
}, },
@ -74,6 +76,7 @@ local kube = import "kube.libsonnet";
}, },
}, },
}, },
svc: kube.Service(postgres.makeName("postgres")) { svc: kube.Service(postgres.makeName("postgres")) {
metadata+: postgres.metadata, metadata+: postgres.metadata,
target_pod:: postgres.deployment.spec.template, target_pod:: postgres.deployment.spec.template,