cluster

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

commit 433030918955e901d6a042f981cddf1bdb9ab3c4
parent 854bcef3dbc534ca80cb65eec7bb17c14e36ddf6
Author: MTRNord <mtrnord1@gmail.com>
Date:   Mon,  7 Oct 2024 01:02:48 +0200

add sync from pagerduty to cachet

Diffstat:
Aapps/2024_cluster/secrets/cachet_sync.yaml | 31+++++++++++++++++++++++++++++++
Mapps/2024_cluster/secrets/kustomization.yaml | 1+
Mapps/base/cachet/kustomization.yaml | 1+
Aapps/base/cachet/sync_deployment.yaml | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mapps/base/victoria-metrics-k8s-stack/release.yaml | 6++++--
5 files changed, 127 insertions(+), 2 deletions(-)

diff --git a/apps/2024_cluster/secrets/cachet_sync.yaml b/apps/2024_cluster/secrets/cachet_sync.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +kind: Secret +metadata: + name: cachet-sync + namespace: cachet +type: Opaque +stringData: + cachet-url: ENC[AES256_GCM,data:7d/HTlzedmVwlQRtzHF5EjHrGe9fYXQmLyV99zJPSkG4aAVR1b8=,iv:LfqaH+qZ4/a60E8l1S8xsfamtwO5sYpvzmVPP+BzZ+w=,tag:ifVXgK+uL1TLgeMW3Wa/OA==,type:str] + webhook-secret: ENC[AES256_GCM,data:ubpbTDeay9T61rVTzEtVg3FuPx4K1DQTwjdyLMadXcRHLO8FFN+KQGuYGQeKWlLuTejlzvIA5kCsKEuogkfLmA==,iv:45fkrLxzwDsj7oCL+x4AxG0fLXkmeZWK+YxSYH16Q0A=,tag:RxCilqNW0+nfY5NA9uRbeA==,type:str] + cachet-key: ENC[AES256_GCM,data:MMIr0GziYvgMakX9HVj9Y0ITrbc=,iv:JvFWIg17DGyn6UYwXN/l2YvrH2wJS6GtCruO8mySFEI=,tag:2OtRuFv3syUNwO/hUhD4jQ==,type:str] + pagerduty-key: ENC[AES256_GCM,data:KB+cPawwE/wQWYt4sTRFHh6vyo0=,iv:ub30sI38pQkT8RVTzq66FqBy8LEqvX6RkOvwY9Sfv9g=,tag:NOL39Vfz7YMNLNIQS8fYsA==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2N1BCYmV5ckwyWEJqeU85 + cGNMbnRsdk80M0thYzUyZWk4cHRhVVBQdnlZCjRHcm0vNHR2WXlIRnRPL1JOak5q + SlZhbUtIY0pQdS9heTdMU2tTbk1YQVkKLS0tIEJ2U2ZjR1VsMkRNQUJRQlYwMTJL + RVpsRS9Jb3Y1bXdCYUwrbDN2Sys2LzQKtojkGExGRat8krgT9Ia/pTNiLOtcOiWH + qVkYrM/0FdhOAaJqxxnWU7pc6UyWt63PyxdPPdA+PNU0LufYd5PZ9Q== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-10-06T23:00:40Z" + mac: ENC[AES256_GCM,data:hL92uZ45BmNw2EodmNrjalVH9aNQwqL+1aPgzGG+zs0AO8KQb1QZIgxYg1BWbuIAPZLMPg6ZkSVcnYWJas0jdk8tahJV8DrHCMrCHkZTypPZtvAEEuKibm8iHIL2Ysd3RElWDMRYIk7Q8/arr9UQtbl9nHhLWVHsv8QeGm1M7Xw=,iv:SmD6mnfV4yD+/qvk3+xNzQPvaITkIZXfjTWcXsLMSxM=,tag:JozXPWq0DgD/JUjizWHAkw==,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|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.8.1 diff --git a/apps/2024_cluster/secrets/kustomization.yaml b/apps/2024_cluster/secrets/kustomization.yaml @@ -11,3 +11,4 @@ resources: - zertrixt-runner.yaml - coder.yaml - mas_config.yaml + - cachet_sync.yaml diff --git a/apps/base/cachet/kustomization.yaml b/apps/base/cachet/kustomization.yaml @@ -4,3 +4,4 @@ namespace: cachet resources: - repository.yaml - release.yaml + - sync_deployment.yaml diff --git a/apps/base/cachet/sync_deployment.yaml b/apps/base/cachet/sync_deployment.yaml @@ -0,0 +1,90 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: pagerduty_cachet + namespace: cachet +spec: + selector: + matchLabels: + app: pagerduty_cachet + template: + metadata: + labels: + app: pagerduty_cachet + spec: + containers: + - name: pagerduty_cachet + image: ghcr.io/mtrnord/pagerduty_cachet:latest + imagePullPolicy: Always + env: + - name: CACHET_URL + valueFrom: + secretKeyRef: + name: cachet-sync + key: cachet-url + - name: WEBHOOK_SECRET + valueFrom: + secretKeyRef: + name: cachet-sync + key: webhook-secret + - name: CACHET_KEY + valueFrom: + secretKeyRef: + name: cachet-sync + key: cachet-key + - name: PAGERDUTY_KEY + valueFrom: + secretKeyRef: + name: cachet-sync + key: pagerduty-key + ports: + - containerPort: 8080 + name: http + protocol: TCP + livenessProbe: + httpGet: + path: /healthz + port: appservice + scheme: HTTP + initialDelaySeconds: 15 + periodSeconds: 10 + startupProbe: + httpGet: + path: /healthz + port: appservice + initialDelaySeconds: 15 + failureThreshold: 30 + periodSeconds: 10 +--- +apiVersion: v1 +kind: Service +metadata: + name: pagerduty_cachet + namespace: cachet +spec: + selector: + app: pagerduty_cachet + ports: + - port: 80 + targetPort: 8080 + protocol: TCP +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: pagerduty_cachet + namespace: cachet + annotations: + cert-manager.io/cluster-issuer: letsencrypt-dns + external-dns.alpha.kubernetes.io/hostname: midnightthoughts.space +spec: + rules: + - host: webhook.status.midnightthoughts.space + http: + paths: / + pathType: Prefix + backend: + service: + name: pagerduty_cachet + port: + number: 80 diff --git a/apps/base/victoria-metrics-k8s-stack/release.yaml b/apps/base/victoria-metrics-k8s-stack/release.yaml @@ -93,7 +93,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 @@ -1269,7 +1270,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: