From 9316223c9e2fd68c20e0ffe8b669f53ca381606c Mon Sep 17 00:00:00 2001 From: gitea-bot Date: Fri, 20 Mar 2026 22:56:02 +0000 Subject: [PATCH] Automated Manifest Update (#4939) This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow. ### Details - **Trigger**: `pull_request` by `@alexlebens` - **Commit**: `6b8c282` (on `6b8c2826f55380a7f6359c56f30b50e6ea8ab672`) - **Charts Updated**: `blocky,gatus,homepage,languagetool` Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4939 Co-authored-by: gitea-bot Co-committed-by: gitea-bot --- .../manifests/blocky/ConfigMap-blocky.yaml | 1 + .../manifests/blocky/Deployment-blocky.yaml | 2 +- .../manifests/gatus/ConfigMap-gatus.yaml | 9 +++ .../manifests/gatus/Deployment-gatus.yaml | 2 +- .../homepage/ConfigMap-homepage.yaml | 6 ++ .../homepage/Deployment-homepage.yaml | 2 +- .../languagetool/Deployment-languagetool.yaml | 57 ++++++++++++++++++ ...guagetool-data-backup-secret-external.yaml | 58 +++++++++++++++++++ ...languagetool-data-backup-secret-local.yaml | 58 +++++++++++++++++++ ...anguagetool-data-backup-secret-remote.yaml | 58 +++++++++++++++++++ .../languagetool/HTTPRoute-languagetool.yaml | 30 ++++++++++ ...rsistentVolumeClaim-languagetool-data.yaml | 19 ++++++ ...guagetool-data-backup-source-external.yaml | 29 ++++++++++ ...languagetool-data-backup-source-local.yaml | 29 ++++++++++ ...anguagetool-data-backup-source-remote.yaml | 29 ++++++++++ .../languagetool/Service-languagetool.yaml | 22 +++++++ 16 files changed, 408 insertions(+), 3 deletions(-) create mode 100644 clusters/cl01tl/manifests/languagetool/Deployment-languagetool.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-external.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-local.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-remote.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/HTTPRoute-languagetool.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/PersistentVolumeClaim-languagetool-data.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-external.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-local.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-remote.yaml create mode 100644 clusters/cl01tl/manifests/languagetool/Service-languagetool.yaml diff --git a/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml b/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml index 5a5b7f7bd..ee4a72e8c 100644 --- a/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml @@ -120,6 +120,7 @@ data: jellystat IN CNAME traefik-cl01tl kiwix IN CNAME traefik-cl01tl komodo IN CNAME traefik-cl01tl + languagetool IN CNAME traefik-cl01tl lidarr IN CNAME traefik-cl01tl mail IN CNAME traefik-cl01tl medialyze IN CNAME traefik-cl01tl diff --git a/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml b/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml index 48da2ce6d..1a42a4c59 100644 --- a/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml @@ -22,7 +22,7 @@ spec: template: metadata: annotations: - checksum/configMaps: 0c275932feefc274b62a19c99977fbdba22231191e4c87b818c21099198bb465 + checksum/configMaps: 2f8dc0eeaa9f5418260be77e87da1084297c5a7bb36c18028b85e5a76fc3b993 labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: blocky diff --git a/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml b/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml index f43aada27..2b8722f9a 100644 --- a/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml +++ b/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml @@ -222,6 +222,15 @@ data: interval: 30s name: excalidraw url: https://excalidraw.alexlebens.net + - alerts: + - type: ntfy + conditions: + - '[STATUS] == 200' + - '[CERTIFICATE_EXPIRATION] > 240h' + group: core + interval: 30s + name: languagetool + url: https://languagetool.alexlebens.net - alerts: - type: ntfy conditions: diff --git a/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml b/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml index 6b8cc842f..29cb5c281 100644 --- a/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml +++ b/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml @@ -26,7 +26,7 @@ spec: app.kubernetes.io/name: gatus app.kubernetes.io/instance: gatus annotations: - checksum/config: 38aa4be973458d898e882b1b6aa4f7957a31da116b15b30c86fc6a15a32b1132 + checksum/config: 2cb54b0ea6e63a3e66e2ccfcff9fb4d5c6b307440e41365097906c8ef8ff30b9 spec: serviceAccountName: default automountServiceAccountToken: false diff --git a/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml b/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml index 036e824a0..a0b20807b 100644 --- a/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml @@ -253,6 +253,12 @@ data: href: https://excalidraw.alexlebens.net siteMonitor: http://excalidraw.excalidraw:80 statusStyle: dot + - Proofreading: + icon: sh-languagetool.webp + description: LanguageTool + href: https://languagetool.alexlebens.net + siteMonitor: http://languagetool.languagetool:80 + statusStyle: dot - Code: - Code (Public): icon: sh-gitea.webp diff --git a/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml b/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml index e953ce43e..89c8beb5f 100644 --- a/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml @@ -24,7 +24,7 @@ spec: template: metadata: annotations: - checksum/configMaps: 93016d56f06e31c71b9d3e47f8f82c3ede788fce50b24637c4b5b61ecc3453fe + checksum/configMaps: 54450288e26e5e482e4797e650af4d838a1d78d7257c13c8c590a099b801542d checksum/secrets: d3ba83f111cd32f92c909268c55ad8bbd4f9e299b74b35b33c1a011180d8b378 labels: app.kubernetes.io/controller: main diff --git a/clusters/cl01tl/manifests/languagetool/Deployment-languagetool.yaml b/clusters/cl01tl/manifests/languagetool/Deployment-languagetool.yaml new file mode 100644 index 000000000..9346dd9d7 --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/Deployment-languagetool.yaml @@ -0,0 +1,57 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: languagetool + labels: + app.kubernetes.io/controller: main + app.kubernetes.io/instance: languagetool + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool + helm.sh/chart: languagetool-4.6.2 + namespace: languagetool +spec: + revisionHistoryLimit: 3 + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/controller: main + app.kubernetes.io/name: languagetool + app.kubernetes.io/instance: languagetool + template: + metadata: + labels: + app.kubernetes.io/controller: main + app.kubernetes.io/instance: languagetool + app.kubernetes.io/name: languagetool + spec: + enableServiceLinks: false + serviceAccountName: default + automountServiceAccountToken: true + hostIPC: false + hostNetwork: false + hostPID: false + dnsPolicy: ClusterFirst + containers: + - env: + - name: langtool_languageModel + value: /ngrams + - name: Java_Xms + value: 512m + - name: Java_Xmx + value: 1g + image: erikvl87/languagetool:6.7 + imagePullPolicy: IfNotPresent + name: main + resources: + requests: + cpu: 10m + memory: 128Mi + volumeMounts: + - mountPath: /ngrams + name: data + volumes: + - name: data + persistentVolumeClaim: + claimName: languagetool-data diff --git a/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-external.yaml b/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-external.yaml new file mode 100644 index 000000000..ad9979167 --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-external.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: languagetool-data-backup-secret-external + namespace: languagetool + labels: + helm.sh/chart: volsync-target-data-0.8.0 + app.kubernetes.io/instance: languagetool + app.kubernetes.io/part-of: languagetool + app.kubernetes.io/version: "0.8.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool-data-backup-secret-external +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/languagetool/languagetool-data" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/digital-ocean + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/digital-ocean + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: AWS_DEFAULT_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: AWS_ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: AWS_SECRET_ACCESS_KEY diff --git a/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-local.yaml b/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-local.yaml new file mode 100644 index 000000000..90da0a546 --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-local.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: languagetool-data-backup-secret-local + namespace: languagetool + labels: + helm.sh/chart: volsync-target-data-0.8.0 + app.kubernetes.io/instance: languagetool + app.kubernetes.io/part-of: languagetool + app.kubernetes.io/version: "0.8.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool-data-backup-secret-local +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/languagetool/languagetool-data" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-local + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-local + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-remote.yaml b/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-remote.yaml new file mode 100644 index 000000000..fac67d7ab --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/ExternalSecret-languagetool-data-backup-secret-remote.yaml @@ -0,0 +1,58 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: languagetool-data-backup-secret-remote + namespace: languagetool + labels: + helm.sh/chart: volsync-target-data-0.8.0 + app.kubernetes.io/instance: languagetool + app.kubernetes.io/part-of: languagetool + app.kubernetes.io/version: "0.8.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool-data-backup-secret-remote +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/languagetool/languagetool-data" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-remote + metadataPolicy: None + property: BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /volsync/restic/garage-remote + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_REGION + - secretKey: AWS_ACCESS_KEY_ID + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_KEY_ID + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /garage/home-infra/volsync-backups + metadataPolicy: None + property: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/languagetool/HTTPRoute-languagetool.yaml b/clusters/cl01tl/manifests/languagetool/HTTPRoute-languagetool.yaml new file mode 100644 index 000000000..314eb8e5d --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/HTTPRoute-languagetool.yaml @@ -0,0 +1,30 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: languagetool + labels: + app.kubernetes.io/instance: languagetool + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool + helm.sh/chart: languagetool-4.6.2 + namespace: languagetool +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: traefik-gateway + namespace: traefik + hostnames: + - "languagetool.alexlebens.net" + rules: + - backendRefs: + - group: "" + kind: Service + name: languagetool + namespace: languagetool + port: 80 + weight: 100 + matches: + - path: + type: PathPrefix + value: / diff --git a/clusters/cl01tl/manifests/languagetool/PersistentVolumeClaim-languagetool-data.yaml b/clusters/cl01tl/manifests/languagetool/PersistentVolumeClaim-languagetool-data.yaml new file mode 100644 index 000000000..874c5a882 --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/PersistentVolumeClaim-languagetool-data.yaml @@ -0,0 +1,19 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: languagetool-data + labels: + app.kubernetes.io/instance: languagetool + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool + helm.sh/chart: languagetool-4.6.2 + annotations: + helm.sh/resource-policy: keep + namespace: languagetool +spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + storageClassName: "ceph-block" diff --git a/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-external.yaml b/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-external.yaml new file mode 100644 index 000000000..feadbc63a --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-external.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: languagetool-data-backup-source-external + namespace: languagetool + labels: + helm.sh/chart: volsync-target-data-0.8.0 + app.kubernetes.io/instance: languagetool + app.kubernetes.io/part-of: languagetool + app.kubernetes.io/version: "0.8.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool-data-backup +spec: + sourcePVC: languagetool-data + trigger: + schedule: 38 14 * * * + restic: + pruneIntervalDays: 7 + repository: languagetool-data-backup-secret-external + retain: + daily: 7 + hourly: 0 + monthly: 3 + weekly: 4 + yearly: 1 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-local.yaml b/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-local.yaml new file mode 100644 index 000000000..88795ecb8 --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-local.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: languagetool-data-backup-source-local + namespace: languagetool + labels: + helm.sh/chart: volsync-target-data-0.8.0 + app.kubernetes.io/instance: languagetool + app.kubernetes.io/part-of: languagetool + app.kubernetes.io/version: "0.8.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool-data-backup +spec: + sourcePVC: languagetool-data + trigger: + schedule: 38 11 * * * + restic: + pruneIntervalDays: 7 + repository: languagetool-data-backup-secret-local + retain: + daily: 7 + hourly: 0 + monthly: 3 + weekly: 4 + yearly: 1 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-remote.yaml b/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-remote.yaml new file mode 100644 index 000000000..c9fb30e5c --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/ReplicationSource-languagetool-data-backup-source-remote.yaml @@ -0,0 +1,29 @@ +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: languagetool-data-backup-source-remote + namespace: languagetool + labels: + helm.sh/chart: volsync-target-data-0.8.0 + app.kubernetes.io/instance: languagetool + app.kubernetes.io/part-of: languagetool + app.kubernetes.io/version: "0.8.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool-data-backup +spec: + sourcePVC: languagetool-data + trigger: + schedule: 38 12 * * * + restic: + pruneIntervalDays: 7 + repository: languagetool-data-backup-secret-remote + retain: + daily: 7 + hourly: 0 + monthly: 3 + weekly: 4 + yearly: 1 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/languagetool/Service-languagetool.yaml b/clusters/cl01tl/manifests/languagetool/Service-languagetool.yaml new file mode 100644 index 000000000..c6c720002 --- /dev/null +++ b/clusters/cl01tl/manifests/languagetool/Service-languagetool.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: languagetool + labels: + app.kubernetes.io/instance: languagetool + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: languagetool + app.kubernetes.io/service: languagetool + helm.sh/chart: languagetool-4.6.2 + namespace: languagetool +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: 8010 + protocol: TCP + name: http + selector: + app.kubernetes.io/controller: main + app.kubernetes.io/instance: languagetool + app.kubernetes.io/name: languagetool