cluster

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

commit 6c566652d8d2083be37b425d6b30045d01744988
parent d0db7f9ba08eb7e1763c5545a64c3c536f146263
Author: MTRNord <mtrnord1@gmail.com>
Date:   Mon, 10 Mar 2025 11:08:25 +0100

Prepare hubzilla

Diffstat:
Aapps/2024_cluster/namespaces/hubzilla.yaml | 4++++
Mapps/2024_cluster/namespaces/kustomization.yaml | 1+
Aapps/2024_cluster/secrets/hubzilla.yaml | 28++++++++++++++++++++++++++++
Mapps/2024_cluster/secrets/mariadb-operator.yaml | 44++++++++++++++++++++++++++++++++++++--------
Mapps/base/envoy-gateway/release.yaml | 6+++---
Aapps/base/hubzilla/deployment.yaml | 142+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aapps/base/hubzilla/kustomization.yaml | 5+++++
Mapps/base/mariadb-operator/mariadb.yaml | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mapps/base/matrix/draupnir-fluffy/deployment.yaml | 74+++++++++++++++++++++++++++++++++++++-------------------------------------
Mapps/base/matrix/draupnir-freifunk/deployment.yaml | 74+++++++++++++++++++++++++++++++++++++-------------------------------------
Mapps/base/victoria-metrics-k8s-stack/release.yaml | 10+++++++---
11 files changed, 366 insertions(+), 88 deletions(-)

diff --git a/apps/2024_cluster/namespaces/hubzilla.yaml b/apps/2024_cluster/namespaces/hubzilla.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: hubzilla diff --git a/apps/2024_cluster/namespaces/kustomization.yaml b/apps/2024_cluster/namespaces/kustomization.yaml @@ -30,3 +30,4 @@ resources: - envoy-gateway.yaml - vault.yaml - rundeck.yaml + - hubzilla.yaml diff --git a/apps/2024_cluster/secrets/hubzilla.yaml b/apps/2024_cluster/secrets/hubzilla.yaml @@ -0,0 +1,28 @@ +apiVersion: v1 +stringData: + mariadb-password: ENC[AES256_GCM,data:O2lEVMvV3MybAVVMbZsBvlS7TYzLXyym7XRvs2dzxzyUWJ++oK8yi8dAH5D81k713bT+GHOWSuyLPK/Sm1FGZA==,iv:hIGrhdhLMgZBSrfIWw0vRab+NPfTE4xl9zBkKGkdedg=,tag:paFYkmc/EYJlnrylWcEtpw==,type:str] + email-password: ENC[AES256_GCM,data:G0YzZF7Of+0Q,iv:I1Phjqa5VIOjGMXK4kSIu7OKjofYg/mGxBW47KKx0Nk=,tag:F+0OYzRlMyVRwN3aiNGDrQ==,type:str] +kind: Secret +metadata: + name: hubzilla-env + namespace: hubzilla +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLRUM1Ti9RZUY0L3BCQzRu + SXZvbG1YWk1KMGR5d1VBUVAySHE2elg4eFNjCkRmWHhjQ3hlWHE4TE5CSUZtZzNC + cmdnN1lkUzd2MmFOYnAxazBZcjl2MmMKLS0tIFhBenNsdURNc0ZsbFNid3BpSmdR + YzcvaDhCb3E3ZU1Ic0p0dm9Ba0NCZzQKxF6vXmYKK8+Q0UIK9OcHDULTVNenypQX + 56rV7vHpLBSmyxNNpr2EOKpB9Fwph0/ppSui2dadFFSSn3BzXLDhrg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-03-10T10:04:42Z" + mac: ENC[AES256_GCM,data:8+RtQ8y1l83m02TGQONlh00KOWXjBXZBmup5ExPraUYt0xJAJDoGMOYaFSFMPytEGiDxLAVvKpC1T8IhnMIIygX0k7f0mtkVl7wO25oZ3Md57v5BtDP8N5lm7se1jlkYoLs6ZNWXktGA/vzUXi4cxwbqVsg8zyTV0/vVyqJLGwY=,iv:oZmMxFZemERdImF5aVsOby6omQiMKffSNvAfvCM3PwY=,tag:4vROVVQhr58dF95Vgg/Q8Q==,type:str] + pgp: [] + 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)$ + version: 3.9.1 diff --git a/apps/2024_cluster/secrets/mariadb-operator.yaml b/apps/2024_cluster/secrets/mariadb-operator.yaml @@ -1,6 +1,6 @@ apiVersion: v1 stringData: - password: ENC[AES256_GCM,data:kY53tTCUmSbY9dNKyISq9TEkrULxqlSaiz7EhOmaSe2VTz9DP/XDDsen5shHZIq60tJfPVrZ4kSb6B4KNLtGnA==,iv:5hfT4V5heotzQzPqrQkwJ0z4Pk9TS5qfuAqLMdq/zhk=,tag:8yW3xOsKR7/dJvwnWMyajA==,type:str] + password: ENC[AES256_GCM,data:xQ9sZCJsZ1GDUn8vbm6AZXQ6Eq/ZPV7SFwKX27IP3mJ1JrDYbT6bQEfE9O2as1ZGp+mcjxu0A3MKVjZZlkzaVQ==,iv:oxpKX8tpBXa9llPX8uE7PLi1HI2/uHSA6/KZGbhXlNU=,tag:5ANl995mK/z/q3g3bhTOKA==,type:str] kind: Secret metadata: name: mariadb-osticket @@ -14,14 +14,42 @@ sops: - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQVHhZaGcyUFFUZHQwRTFG - Y0cwc3NWaUxOVXdLb3N1WEl1NWlHMzdJbDJJClJMSkYrKy9UMXZyMkRNTTNuU1JM - UDZjNUhqWGFiczIwLy94REdYVEp1UlEKLS0tIEVPZ0tmbzVueW1neTJ4bG9VYVhC - TERGKzhyZDJFS05EbW1taG4xckdrQUkKNamaTUZek5Rlx4WnNEG1leHJ4PViVA5m - NrtDpL214EyEd3GqdhvwbCTdVu9px8a5+6eQWvOZp/CHhRJHIKTRzQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSQXF3MXFKVlVmU2lhVi9V + c0dDK3p2SmpnT29zYjlTV05Rbk9JYndCeEZvCkVPNVJTekpycys5MGJQN3JFQXJT + SUlFa1ozb2o2ZCswRUxpeC9xVWxoZGcKLS0tIDZnM2ZjQkxxd2U1YlZKdnVFYXBI + K1dxajlEUVVCTlI2TkZ0R21mY1ZZNEEKCb0zLtFZHOrKWSjH0CB9mU/PmxdNpr6z + bbZiBmM105pmfcPQuSwxPXFFI8zsEy5hjXzL/4kGpEYCe8j5X625cA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-01-07T22:01:16Z" - mac: ENC[AES256_GCM,data:KlLKz8hv/6VJD92YYehfh/kXt1+NLi26rnCd1K1Eh7mSyWveTviFyQ4OUE2VsLtcPlqWKT1eRyKCRNyA4iWdgCrMu5bDW+aAQCb2GHsdfRHmsj6NSS1BoTPLDxCClQ/LdUh2cvoZNxCO8pJfIrG+mm5KgrKcxaN6W+OG/TFQGGw=,iv:6vNynE/CHE22QJW+/E4bzxCA1p7xb/T91xZYOiSUGaE=,tag:qHx34Gk3I4PtjuH1OKJcvQ==,type:str] + lastmodified: "2025-03-10T09:54:43Z" + mac: ENC[AES256_GCM,data:i+0x2iuiXVCoD4ioFlFOzL2GRCzMH1W13OheEV7HTQv0X6fcN+479ow8a5I75t+OMEtR4Jo5qQI/x4VKQ9iAMPPpcbRScoCWyi9ITawEpUiVWWUhbogpT2WgdMweDyvBbnazGotJNmYcsKomk1/mabR2czSHXMnQa3UVYDkkbXw=,iv:ALAuviL2mJm+kR2hCMRLM0bNX39DDmngAgQXJJgryKU=,tag:nU8cljPz566rt5mgncZlQw==,type:str] + pgp: [] + 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)$ + version: 3.9.1 +--- +apiVersion: v1 +stringData: + password: ENC[AES256_GCM,data:EPg5V8IuCTPSsDw3b41bqcfLNpGAiZTvMIlFYkCRu9xn+S/Cvr+xCnEKB5+LbhPNrmyYE3IQOZqNSBvOtMIBpQ==,iv:NCrSnkW1LxY77XbHgzD/DQoeUvloNJ30Fw94Srr6bF0=,tag:6E1tNTG/vfmLDGjOH606Eg==,type:str] +kind: Secret +metadata: + name: mariadb-hubzilla + namespace: mariadb-operator +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSQXF3MXFKVlVmU2lhVi9V + c0dDK3p2SmpnT29zYjlTV05Rbk9JYndCeEZvCkVPNVJTekpycys5MGJQN3JFQXJT + SUlFa1ozb2o2ZCswRUxpeC9xVWxoZGcKLS0tIDZnM2ZjQkxxd2U1YlZKdnVFYXBI + K1dxajlEUVVCTlI2TkZ0R21mY1ZZNEEKCb0zLtFZHOrKWSjH0CB9mU/PmxdNpr6z + bbZiBmM105pmfcPQuSwxPXFFI8zsEy5hjXzL/4kGpEYCe8j5X625cA== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-03-10T09:54:43Z" + mac: ENC[AES256_GCM,data:i+0x2iuiXVCoD4ioFlFOzL2GRCzMH1W13OheEV7HTQv0X6fcN+479ow8a5I75t+OMEtR4Jo5qQI/x4VKQ9iAMPPpcbRScoCWyi9ITawEpUiVWWUhbogpT2WgdMweDyvBbnazGotJNmYcsKomk1/mabR2czSHXMnQa3UVYDkkbXw=,iv:ALAuviL2mJm+kR2hCMRLM0bNX39DDmngAgQXJJgryKU=,tag:nU8cljPz566rt5mgncZlQw==,type:str] pgp: [] 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)$ version: 3.9.1 diff --git a/apps/base/envoy-gateway/release.yaml b/apps/base/envoy-gateway/release.yaml @@ -298,9 +298,9 @@ spec: certificateRefs: - kind: Secret name: mtrnord.blog-tls - - name: https-mtrnord-blog + - name: https-mtrnord-blog-hubzilla protocol: HTTPS - hostname: "*.mtrnord.blog" + hostname: "hub.mtrnord.blog" port: 443 allowedRoutes: namespaces: @@ -309,7 +309,7 @@ spec: mode: Terminate certificateRefs: - kind: Secret - name: mtrnord.blog-tls + name: hub.mtrnord.blog-tls - name: http protocol: HTTP port: 80 diff --git a/apps/base/hubzilla/deployment.yaml b/apps/base/hubzilla/deployment.yaml @@ -0,0 +1,142 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: hubzilla-data + namespace: hubzilla +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: hubzilla + namespace: hubzilla +spec: + replicas: 1 + selector: + matchLabels: + app: hubzilla + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + labels: + app: hubzilla + spec: + containers: + - image: ghcr.io/saiwal/hubzilla-docker:latest + imagePullPolicy: Always + name: hubzilla + env: + - name: HUBZILLA_DB_HOST + value: mariadb-maxscale.mariadb-operator.svc.cluster.local + - name: HUBZILLA_DB_USER + value: hubzilla + - name: HUBZILLA_DB_PASS + valueFrom: + secretKeyRef: + name: hubzilla-env + key: mariadb-password + - name: HUBZILLA_DB_NAME + value: hubzilla + - name: SSMTP_ROOT + value: support@midnightthoughts.space + - name: SSMTP_MAILHUB + value: mail.midnightthoughts.space:587 + - name: SSMTP_AUTHUSER + value: support@midnightthoughts.space + - name: SSMTP_AUTHPASS + valueFrom: + secretKeyRef: + name: hubzilla-env + key: email-password + - name: SSMTP_USESTARTTLS + value: "Yes" + - name: SSMTP_FROMLINEOVERRIDE + value: "No" + - name: REVALIASES_ROOT + value: support@midnightthoughts.space:mail.midnightthoughts.space:587 + - name: REVALIASES_WWWDATA + value: support@midnightthoughts.space:mail.midnightthoughts.space:587 + livenessProbe: + failureThreshold: 3 + httpGet: + path: / + port: 80 + initialDelaySeconds: 60 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: / + port: 80 + initialDelaySeconds: 60 + periodSeconds: 30 + resources: + requests: + ephemeral-storage: 1024Mi + cpu: 100m + memory: 200Mi + limits: + ephemeral-storage: 2048Mi + cpu: 2000m + memory: 2000Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + #runAsNonRoot: true + volumeMounts: + - mountPath: /var/www/html + name: hubzilla-data + - mountPath: /tmp + name: tmp + volumes: + - name: hubzilla-data + persistentVolumeClaim: + claimName: hubzilla-data + - name: tmp + emptyDir: + sizeLimit: 2048Mi +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: hubzilla + name: hubzilla-srv + namespace: hubzilla +spec: + ports: + - port: 80 + protocol: TCP + targetPort: 80 + selector: + app: hubzilla + type: ClusterIP +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: hubzilla + namespace: hubzilla +spec: + parentRefs: + - name: envoy-gateway + namespace: envoy-gateway + hostnames: + - "hub.mtrnord.blog" + rules: + - backendRefs: + - name: hubzilla + port: 80 diff --git a/apps/base/hubzilla/kustomization.yaml b/apps/base/hubzilla/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: hubzilla +resources: + - deployment.yaml diff --git a/apps/base/mariadb-operator/mariadb.yaml b/apps/base/mariadb-operator/mariadb.yaml @@ -160,3 +160,69 @@ spec: username: osticket grantOption: false host: "%" +--- +apiVersion: k8s.mariadb.com/v1alpha1 +kind: Database +metadata: + name: hubzilla +spec: + mariaDbRef: + name: mariadb + characterSet: utf8 + collate: utf8_general_ci + # Delete the resource in the database whenever the CR gets deleted. + # Alternatively, you can specify Skip in order to omit deletion. + cleanupPolicy: Delete + requeueInterval: 30s + retryInterval: 5s +--- +apiVersion: k8s.mariadb.com/v1alpha1 +kind: User +metadata: + name: hubzilla +spec: + # If you want the user to be created with a different name than the resource name + # name: user-custom + mariaDbRef: + name: mariadb + passwordSecretKeyRef: + name: mariadb-hubzilla + key: password + # This field defaults to 10 + maxUserConnections: 10 + host: "%" + # Delete the resource in the database whenever the CR gets deleted. + # Alternatively, you can specify Skip in order to omit deletion. + cleanupPolicy: Delete + requeueInterval: 30s + retryInterval: 5s +--- +apiVersion: k8s.mariadb.com/v1alpha1 +kind: Grant +metadata: + name: grant-hubzilla +spec: + mariaDbRef: + name: mariadb + privileges: + - "ALL PRIVILEGES" + database: "hubzilla" + table: "*" + username: hubzilla + grantOption: false + host: "%" +--- +apiVersion: k8s.mariadb.com/v1alpha1 +kind: Grant +metadata: + name: grant-hubzilla-show-db +spec: + mariaDbRef: + name: mariadb + privileges: + - "SHOW DATABASES" + database: "*" + table: "*" + username: hubzilla + grantOption: false + host: "%" diff --git a/apps/base/matrix/draupnir-fluffy/deployment.yaml b/apps/base/matrix/draupnir-fluffy/deployment.yaml @@ -34,52 +34,52 @@ spec: - image: gnuxie/draupnir:v2.2.0 imagePullPolicy: IfNotPresent livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: 8080 - initialDelaySeconds: 60 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 + failureThreshold: 3 + httpGet: + path: /healthz + port: 8080 + initialDelaySeconds: 60 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 name: mjolnir-fluffy-container resources: - requests: - ephemeral-storage: 1024Mi - cpu: 100m - memory: 200Mi - limits: - ephemeral-storage: 2048Mi - cpu: 2000m - memory: 2000Mi + requests: + ephemeral-storage: 1024Mi + cpu: 100m + memory: 200Mi + limits: + ephemeral-storage: 2048Mi + cpu: 2000m + memory: 2000Mi readinessProbe: - httpGet: - path: /health - port: 8080 - initialDelaySeconds: 60 - periodSeconds: 30 + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 60 + periodSeconds: 30 securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - #runAsNonRoot: true + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + #runAsNonRoot: true volumeMounts: - - mountPath: /data/config/production.yaml - name: config-volume - subPath: production.yaml - - mountPath: /data/storage - name: storage - - mountPath: /tmp - name: tmp + - mountPath: /data/config/production.yaml + name: config-volume + subPath: production.yaml + - mountPath: /data/storage + name: storage + - mountPath: /tmp + name: tmp volumes: - configMap: - name: mjolnir-fluffy-config + name: mjolnir-fluffy-config name: config-volume - name: storage persistentVolumeClaim: - claimName: mjolnir-fluffy-persistent-storage + claimName: mjolnir-fluffy-persistent-storage - name: tmp emptyDir: - sizeLimit: 2048Mi + sizeLimit: 2048Mi diff --git a/apps/base/matrix/draupnir-freifunk/deployment.yaml b/apps/base/matrix/draupnir-freifunk/deployment.yaml @@ -33,52 +33,52 @@ spec: containers: - image: gnuxie/draupnir:v2.2.0 livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: 8080 - initialDelaySeconds: 60 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 + failureThreshold: 3 + httpGet: + path: /healthz + port: 8080 + initialDelaySeconds: 60 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 name: mjolnir-freifunk-container resources: - requests: - ephemeral-storage: 1024Mi - cpu: 100m - memory: 200Mi - limits: - ephemeral-storage: 2048Mi - cpu: 2000m - memory: 2000Mi + requests: + ephemeral-storage: 1024Mi + cpu: 100m + memory: 200Mi + limits: + ephemeral-storage: 2048Mi + cpu: 2000m + memory: 2000Mi readinessProbe: - httpGet: - path: /health - port: 8080 - initialDelaySeconds: 60 - periodSeconds: 30 + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 60 + periodSeconds: 30 securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - #runAsNonRoot: true + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + #runAsNonRoot: true volumeMounts: - - mountPath: /data/config/production.yaml - name: config-volume - subPath: production.yaml - - mountPath: /data/storage - name: storage - - mountPath: /tmp - name: tmp + - mountPath: /data/config/production.yaml + name: config-volume + subPath: production.yaml + - mountPath: /data/storage + name: storage + - mountPath: /tmp + name: tmp volumes: - configMap: - name: mjolnir-freifunk-config + name: mjolnir-freifunk-config name: config-volume - name: storage persistentVolumeClaim: - claimName: mjolnir-freifunk-persistent-storage + claimName: mjolnir-freifunk-persistent-storage - name: tmp emptyDir: - sizeLimit: 2048Mi + sizeLimit: 2048Mi diff --git a/apps/base/victoria-metrics-k8s-stack/release.yaml b/apps/base/victoria-metrics-k8s-stack/release.yaml @@ -173,7 +173,9 @@ spec: annotations: __dashboardUid__: tbO9LAiZK __panelId__: "7" - description: One or more OSDs have reached the NEARFULL threshold. Use 'ceph health detail' and 'ceph osd df' to identify the problem. To resolve, add capacity to the affected OSD's failure domain, restore down/out OSDs, or delete unwanted data. + description: One or more OSDs have reached the NEARFULL threshold. Use 'ceph health detail' + and 'ceph osd df' to identify the problem. To resolve, add capacity to the affected OSD's + failure domain, restore down/out OSDs, or delete unwanted data. runbook_url: https://docs.ceph.com/en/latest/rados/operations/health-checks#osd-nearfull summary: OSD(s) running low on free space (NEARFULL) isPaused: false @@ -234,7 +236,8 @@ spec: execErrState: Error for: 5m annotations: - description: Depending on the rate limit, cert-manager may be unable to generate certificates for up to a week. + description: Depending on the rate limit, cert-manager may be unable to generate certificates + for up to a week. summary: Cert manager hitting LetsEncrypt rate limits. labels: {} isPaused: false @@ -1436,7 +1439,8 @@ spec: auth_url: https://auth.midnightthoughts.space/application/o/authorize/ token_url: https://auth.midnightthoughts.space/application/o/token/ api_url: https://auth.midnightthoughts.space/application/o/userinfo/ - role_attribute_path: contains(groups, 'Grafana Admins') && 'Admin' || contains(groups, 'Grafana Editors') && 'Editor' || 'Viewer' + role_attribute_path: contains(groups, 'Grafana Admins') && 'Admin' || contains(groups, 'Grafana Editors') + && 'Editor' || 'Viewer' imageRenderer: enabled: true kubeProxy: