cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

commit 4fbf133c97086629e1cfff4074b7d4f05483bd34
parent 7662dad4931f4f7e63892249374909fabfc3c295
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sat, 17 Aug 2024 12:07:39 +0200

Deploy draupnir test instance

Diffstat:
Mapps/2024_cluster/kustomization.yaml | 1+
Aapps/2024_cluster/namespaces/draupnir-testing-1700824.yaml | 4++++
Mapps/2024_cluster/namespaces/kustomization.yaml | 1+
Aapps/base/matrix/draupnir-testing-1700824-synapse/keydb.yaml | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Aapps/base/matrix/draupnir-testing-1700824-synapse/kustomization.yaml | 7+++++++
Aapps/base/matrix/draupnir-testing-1700824-synapse/podmonitor.yaml | 24++++++++++++++++++++++++
Aapps/base/matrix/draupnir-testing-1700824-synapse/release.yaml | 132+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 218 insertions(+), 0 deletions(-)

diff --git a/apps/2024_cluster/kustomization.yaml b/apps/2024_cluster/kustomization.yaml @@ -13,6 +13,7 @@ resources: - ../base/matrix/synapse - ../base/matrix/draupnir-fluffy - ../base/matrix/draupnir-freifunk + - ../base/matrix/draupnir-testing-1700824-synapse - ../base/mastodon - ../base/ejabberd - ../base/openproject diff --git a/apps/2024_cluster/namespaces/draupnir-testing-1700824.yaml b/apps/2024_cluster/namespaces/draupnir-testing-1700824.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: draupnir-testing-1700824 diff --git a/apps/2024_cluster/namespaces/kustomization.yaml b/apps/2024_cluster/namespaces/kustomization.yaml @@ -13,3 +13,4 @@ resources: #- plausible.yaml - minecraft.yaml - codeberg-runners.yaml + - draupnir-testing-1700824.yaml diff --git a/apps/base/matrix/draupnir-testing-1700824-synapse/keydb.yaml b/apps/base/matrix/draupnir-testing-1700824-synapse/keydb.yaml @@ -0,0 +1,49 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: draupnir-testing-1700824-keydb +spec: + replicas: 1 + selector: + matchLabels: + app: draupnir-testing-1700824-keydb + template: + metadata: + labels: + app: draupnir-testing-1700824-keydb + spec: + containers: + - name: draupnir-testing-1700824-keydb + image: eqalpha/keydb:latest + imagePullPolicy: Always + command: ["keydb-server"] + args: [ "/etc/keydb/keydb.conf", "--protected-mode", "no"] + ports: + - containerPort: 6379 + tolerations: + - key: arch + operator: Equal + value: arm64 + effect: NoSchedule + livenessProbe: + exec: + command: + - sh + - -c + - keydb-cli ping + initialDelaySeconds: 10 + timeoutSeconds: 5 +--- +apiVersion: v1 +kind: Service +metadata: + name: draupnir-testing-1700824-keydb +spec: + selector: + app: draupnir-testing-1700824-keydb + ports: + - name: redis + protocol: TCP + port: 6379 + targetPort: 6379 diff --git a/apps/base/matrix/draupnir-testing-1700824-synapse/kustomization.yaml b/apps/base/matrix/draupnir-testing-1700824-synapse/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: draupnir-testing-1700824 +resources: + - release.yaml + - podmonitor.yaml + - keydb.yaml diff --git a/apps/base/matrix/draupnir-testing-1700824-synapse/podmonitor.yaml b/apps/base/matrix/draupnir-testing-1700824-synapse/podmonitor.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: draupnir-testing-1700824 + labels: + instance: draupnir-testing-1700824 +spec: + jobLabel: "app.kubernetes.io/component" + namespaceSelector: + matchNames: + - "matrix" + selector: + matchLabels: + app.kubernetes.io/instance: draupnir-testing-1700824 + app.kubernetes.io/name: matrix-synapse + podMetricsEndpoints: + - port: metrics + path: "/_synapse/metrics" + interval: 5s + relabelings: + - sourceLabels: + - "__meta_kubernetes_pod_label_app_kubernetes_io_instance" + targetLabel: instance diff --git a/apps/base/matrix/draupnir-testing-1700824-synapse/release.yaml b/apps/base/matrix/draupnir-testing-1700824-synapse/release.yaml @@ -0,0 +1,132 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: draupnir-testing-1700824 + namespace: draupnir-testing-1700824 +spec: + chart: + spec: + chart: matrix-synapse + sourceRef: + kind: HelmRepository + name: ananace-charts + version: 3.9.x + interval: 50m + install: + remediation: + retries: 3 + values: + extraConfig: + use_presence: false + presence: + enabled: false + event_cache_size: 10K + caches: + global_factor: 10 + expire_caches: true + cache_entry_ttl: 240m + cache_autotuning: + max_cache_memory_usage: 2048M + target_cache_memory_usage: 1024M + min_cache_ttl: 5m + wellknown: + enabled: true + client: + m.homeserver: + base_url: https://matrix.draupnir-testing-1700824.midnightthoughts.space + extraData: + support: + admins: + - email_address: support@nordgedanken.dev + role: admin + persistence: + size: 250Mi + volumePermissions: + enabled: true + synapse: + strategy: + type: Recreate + ## Liveness probe configuration to use + ## + livenessProbe: + timeoutSeconds: 60 + failureThreshold: 5 + httpGet: + path: /health + port: http + ## Readiness probe configuration to use + ## + readinessProbe: + timeoutSeconds: 60 + failureThreshold: 5 + httpGet: + path: /health + port: http + extraCommands: [] + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: /_synapse/metrics + prometheus.io/port: "9090" + externalRedis: + host: draupnir-testing-1700824-keydb.draupnir-testing-1700824.svc.cluster.local + port: 6379 + password: null + redis: + enabled: false + usePassword: false + password: null + auth: + enabled: false + password: null + postgresql: + enabled: false + externalPostgresql: + host: postgres-cluster.postgres-cluster.svc.cluster.local + port: 5432 + sslmode: require + database: draupnir-testing-1700824 + username: draupnir-testing-1700824 + password: ENC[AES256_GCM,data:/h9iaZhWLQoYrXrzqSf6Ra6BoBejYwyJDf3We0guJDdNH7iabEhzU0GMXDLn+Zk4DxZLMgWNNnnwiuFW+Er0LQ==,iv:S5J3zIwVgObtqIl8Yy5sNqXmpM711GVFrRkh6rfz4wo=,tag:eJ2EtfY5DTNT+wbxHQ7w3A==,type:str] + signingkey: + job: + enabled: false + serverName: draupnir-testing-1700824.midnightthoughts.space + publicServerName: matrix.draupnir-testing-1700824.midnightthoughts.space + config: + reportStats: true + enableRegistration: false + ingress: + traefikPaths: true + hosts: + - draupnir-testing-1700824.midnightthoughts.space + - matrix.draupnir-testing-1700824.midnightthoughts.space + tls: + - hosts: + - draupnir-testing-1700824.midnightthoughts.space + - matrix.draupnir-testing-1700824.midnightthoughts.space + secretName: draupnir-testing-1700824-midnightthoughts-synapse-tls-secret + annotations: + cert-manager.io/cluster-issuer: letsencrypt-dns + traefik.ingress.kubernetes.io/router.tls: "true" + external-dns.alpha.kubernetes.io/hostname: midnightthoughts.space + #traefik.ingress.kubernetes.io/router.middlewares: default-hsts@kubernetescrd,default-compress@kubernetescrd,default-redirect-https@kubernetescrd +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCcVdCNHRkNXloY09JOU1i + UnJJZmF1ZFVoSnV1aHk2dEJtbk5EalZWQmt3ClFnb0RnbXVYejR4ZW1xYzdNUjJu + OWRpcytTMFJOYTNuUllmL0FNcnpGc3MKLS0tIGQxNFBYV2hRalVEbnFta2lUREJC + eVhySzNoencrWHZQUXEveTFyMkN1dTgKFYew7UOI7OCElEdcbLUHLyjOGnhWabqc + Rc1eep05sSCS/8Fg4bqLDuINjv0DX2inh2vwz9zhHFNf1wzkwLGdQg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-08-17T10:07:27Z" + mac: ENC[AES256_GCM,data:tY1ZdUF3z+8lpH36LUVzSJ/QcKh5Hi4ThuiR7dbIEWozUMjvq5OI1QqWASMxKBhIgZqDV6w8v9U1xKEkyqJBIK6n4WUYmVu5UPDMiroS1GNX09P/fFGSpzbqpkh6+0IdnUqy93tRvCELWGqzNll0/94iIYQx9x4QZI2Ecj0MS70=,iv:2dezeh04rNNqQ0lH8ImNfRfUL7iEzZcLS7ecqR3oFA4=,tag:IUgmPOUp7ngyLSjxuTldcQ==,type:str] + pgp: [] + encrypted_regex: ^(admin_password|extraCommands|key|clickhouseDatabaseURL|databaseURL|client_id|client_secret|secret_key_base|otp_secret|private_key|public_key|primaryKey|deterministicKey|keyDerivationSalt|token|clientId|secretKey|installationId|installationKey|uriOverride|adminToken.value|password.value|sql_password|erlangCookie|AUTHENTICATION_PASSWORD|ROOM_API_SECRET_KEY|adminPassword|configPassword|adminUser|configUser|APP_KEY|api_key|api_secret|keys|livekit_key|livekit_secret|secret_key|admin_pass|admin_email|mariadbPassword|mariadbRootPassword|privateKey|data|stringData|PASSWD|password|pass|postgresPassword|postgresqlPassword|redminePassword|smtpPassword|registration_shared_secret|shared_secret|secret)$ + version: 3.8.1