cluster

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

commit c8f1fe42eb4ef094b1408c046a837dcf06e45cb8
parent 1c20f5440fd8eb73c9bb34ada4d06007eac3a139
Author: MTRNord <mtrnord1@gmail.com>
Date:   Fri,  4 Apr 2025 15:29:34 +0200

Enable plane

Diffstat:
Mapps/2024_cluster/kustomization.yaml | 1+
Mapps/base/envoy-gateway/release.yaml | 12++++++++++++
Aapps/base/plane/kustomization.yaml | 6++++++
Aapps/base/plane/release.yaml | 135+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aapps/base/plane/repository.yaml | 8++++++++
Mencrypt.sh | 2+-
6 files changed, 163 insertions(+), 1 deletion(-)

diff --git a/apps/2024_cluster/kustomization.yaml b/apps/2024_cluster/kustomization.yaml @@ -48,3 +48,4 @@ resources: - ../base/uptime-kuma #- ../base/element_changedetection - ../base/xandikos + - ../base/plane diff --git a/apps/base/envoy-gateway/release.yaml b/apps/base/envoy-gateway/release.yaml @@ -442,6 +442,18 @@ spec: certificateRefs: - kind: Secret name: dav.midnightthoughts.space + - name: https-midnightthoughts-plane + protocol: HTTPS + hostname: "plane.midnightthoughts.space" + port: 443 + allowedRoutes: + namespaces: + from: "All" + tls: + mode: Terminate + certificateRefs: + - kind: Secret + name: plane.midnightthoughts.space - name: https-nordgedanken-root protocol: HTTPS hostname: "nordgedanken.dev" diff --git a/apps/base/plane/kustomization.yaml b/apps/base/plane/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: authentik +resources: + - repository.yaml + - release.yaml diff --git a/apps/base/plane/release.yaml b/apps/base/plane/release.yaml @@ -0,0 +1,135 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: plane + namespace: plane +spec: + releaseName: plane + chart: + spec: + chart: plane-ce + version: 1.1.0 + sourceRef: + kind: HelmRepository + name: plane + interval: 60m + values: + ingress: + enabled: false + rabbitmq: + storageClass: ceph-filesystem + minio: + storageClass: ceph-filesystem + root_password: ENC[AES256_GCM,data:1G8VnLQNA4DCTsSjAGMR0fBDF3xuU97QEwfBPoNq+ih5hVy1QsdBttQyBipJJ7DccsBwe0bXAMRgu5qrLUOfxQ==,iv:vvkg6LyQh6IapCiX7rDCCL/MuqWxV2UviZf6oE+W9/4=,tag:c3ojEJ+m5hR9IaLXUJp8wA==,type:str] + redis: + storageClass: ceph-filesystem + postgres: + local_setup: false + env: + pgdb_username: plane + pgdb_password: ENC[AES256_GCM,data:u0E/TSP6lI5NrsBt6qif9ZfkqhkZ2EMIQ7fjYbtTrqgykDPIMFYSg4iWfTAchKFyIyszlR+2zGhsqNAXtEoZ5A==,iv:qJJMQwwwgOXaMMUCrqlFSmKEORjuYBVXkPu1WbWrSkY=,tag:seSh38tUf0tXMBRM3BxZIQ==,type:str] + pgdb_name: plane + pgdb_remote_url: pg-cluster-v2-rw.postgres-cluster.svc.cluster.local + secret_key: ENC[AES256_GCM,data:6+XNDXzmelRJOzUUI07l+/AyznihVI4ZqxBdZ06Jo5IfzDKW09vpgCQhhwbBWKVg4YDuxKL2w8vZ4xnFb5+Kxw==,iv:cB8EiE15wMJVhFpIBWGXoz5G77XLaCIsJ+Lrv3MmXnI=,tag:roz3D+U1gP1+5wLs5ndInQ==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2TnZrRnlrb2RqeHlLN00x + VU1JbFIrR01YenlFazZGWWVxdk1XRUJPWDJFClcxZWt3SFEzSkQ5WklrUU9qanpV + NW5PT2dkZkNzMGd0Y290M3AvKytiOW8KLS0tIDJFS25PWjVGMFdLWnRzMVc3a0Fy + WWQ5MEpTTDBGRWtlYzR2SXlQdHVkckEKU17q5eGjyXugzRTau+nMP8X9QL+1IxIz + JjhpF2hKVaY3+eVUM3xzmpRC559KCC5kbM7lBBAwUy5Nmk6hbUmM6g== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-04-04T13:29:28Z" + mac: ENC[AES256_GCM,data:KZSxf6FvGRxJcfoWzX/2MyYmFyZCa53B2jTQ0Druvf/3TOp3/q9FlY9MISIuULd12Xf3pyF8u7OnxzhadeW0MY79FJWlZdhFDWFxo2d4/aj/GDZ8GYb0Gnj/4lOqQGAfIBd+vEr+W71nNIutgKqxsws/ZG1y2X35wX/N6aYN2z0=,iv:Hc8wkPGvrkkFqkUM0Fuu7zWHIODBPyshjskdiHKyAhg=,tag:l4+fUW02RPENkBJ5qJ1PIA==,type:str] + pgp: [] + encrypted_regex: ^(root_password|pgdb_password|adminPassword|adminEmail|jenkinsAdminEmail|securityRealm|gerrit.config|routing_key|DATABASE_URL|SMTP_PASSWORD|SECRET_KEY_BASE|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|MAIL_PASSWORD|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|admin_token|integrationKey|rootPassword)$ + version: 3.9.1 +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: plane + namespace: plane +spec: + parentRefs: + - name: envoy-gateway + namespace: envoy-gateway + hostnames: + - plane.midnightthoughts.space + rules: + - backendRefs: + - name: plane-web + port: 3000 + matches: + - path: + type: PathPrefix + value: / + - backendRefs: + - name: plane-api + port: 8000 + matches: + - path: + type: PathPrefix + value: /api + - backendRefs: + - name: plane-api + port: 8000 + matches: + - path: + type: PathPrefix + value: /auth + - backendRefs: + - name: plane-live + port: 3000 + matches: + - path: + type: PathPrefix + value: /live + - backendRefs: + - name: plane-space + port: 3000 + matches: + - path: + type: PathPrefix + value: /spaces + - backendRefs: + - name: plane-admin + port: 3000 + matches: + - path: + type: PathPrefix + value: /god-mode + - backendRefs: + - name: plane-minio + port: 9000 + matches: + - path: + type: PathPrefix + value: /uploads +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2TnZrRnlrb2RqeHlLN00x + VU1JbFIrR01YenlFazZGWWVxdk1XRUJPWDJFClcxZWt3SFEzSkQ5WklrUU9qanpV + NW5PT2dkZkNzMGd0Y290M3AvKytiOW8KLS0tIDJFS25PWjVGMFdLWnRzMVc3a0Fy + WWQ5MEpTTDBGRWtlYzR2SXlQdHVkckEKU17q5eGjyXugzRTau+nMP8X9QL+1IxIz + JjhpF2hKVaY3+eVUM3xzmpRC559KCC5kbM7lBBAwUy5Nmk6hbUmM6g== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-04-04T13:29:28Z" + mac: ENC[AES256_GCM,data:KZSxf6FvGRxJcfoWzX/2MyYmFyZCa53B2jTQ0Druvf/3TOp3/q9FlY9MISIuULd12Xf3pyF8u7OnxzhadeW0MY79FJWlZdhFDWFxo2d4/aj/GDZ8GYb0Gnj/4lOqQGAfIBd+vEr+W71nNIutgKqxsws/ZG1y2X35wX/N6aYN2z0=,iv:Hc8wkPGvrkkFqkUM0Fuu7zWHIODBPyshjskdiHKyAhg=,tag:l4+fUW02RPENkBJ5qJ1PIA==,type:str] + pgp: [] + encrypted_regex: ^(root_password|pgdb_password|adminPassword|adminEmail|jenkinsAdminEmail|securityRealm|gerrit.config|routing_key|DATABASE_URL|SMTP_PASSWORD|SECRET_KEY_BASE|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|MAIL_PASSWORD|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|admin_token|integrationKey|rootPassword)$ + version: 3.9.1 diff --git a/apps/base/plane/repository.yaml b/apps/base/plane/repository.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: plane + namespace: plane +spec: + interval: 60m + url: https://helm.plane.so/ diff --git a/encrypt.sh b/encrypt.sh @@ -2,5 +2,5 @@ sops --age=age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh \ --encrypt \ - --encrypted-regex '^(adminPassword|adminEmail|jenkinsAdminEmail|securityRealm|gerrit.config|routing_key|DATABASE_URL|SMTP_PASSWORD|SECRET_KEY_BASE|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|MAIL_PASSWORD|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|admin_token|integrationKey|rootPassword)$' \ + --encrypted-regex '^(root_password|pgdb_password|adminPassword|adminEmail|jenkinsAdminEmail|securityRealm|gerrit.config|routing_key|DATABASE_URL|SMTP_PASSWORD|SECRET_KEY_BASE|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|MAIL_PASSWORD|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|admin_token|integrationKey|rootPassword)$' \ --in-place "$1"