cluster

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

commit 04f64287d60c25b019630c77a29644ee99924a9c
parent 7147e9d3080aacf5b692c2307a32233828d276b3
Author: MTRNord <mtrnord1@gmail.com>
Date:   Tue,  6 Jun 2023 19:39:38 +0200

Fix smtp

Diffstat:
Mapps/base/kube-prometheus-stack/release.yaml | 334+++++++++++++++++++++++++++++++++++++------------------------------------------
Mapps/production/kube-prometheus-stack-values.yaml | 277+++++++++++++++++++++++++++++++++++++------------------------------------------
Mapps/production/secrets/grafana-secret.yaml | 48+++++++++++++++++++++++++++++++++++++++---------
3 files changed, 323 insertions(+), 336 deletions(-)

diff --git a/apps/base/kube-prometheus-stack/release.yaml b/apps/base/kube-prometheus-stack/release.yaml @@ -1,183 +1,161 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: - name: kube-prometheus - namespace: monitoring + name: kube-prometheus + namespace: monitoring spec: - interval: 5m - chart: - spec: - version: 46.6.x - chart: kube-prometheus-stack - sourceRef: - kind: HelmRepository - name: prometheus-community - interval: 60m - install: - crds: Create - upgrade: - crds: CreateReplace - # Force recreation due to Helm not properly patching Deployment with e.g. added port, - # causing spurious drift detection - force: true - # https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml - values: + interval: 5m + chart: + spec: + version: "46.6.x" + chart: kube-prometheus-stack + sourceRef: + kind: HelmRepository + name: prometheus-community + interval: 60m + install: + crds: Create + upgrade: + crds: CreateReplace + # Force recreation due to Helm not properly patching Deployment with e.g. added port, + # causing spurious drift detection + force: true + # https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml + values: + prometheus: + prometheusSpec: + podMonitorSelectorNilUsesHelmValues: false + serviceMonitorSelectorNilUsesHelmValues: false + storageSpec: + volumeClaimTemplate: + spec: + storageClassName: nfs-client + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 50Gi + selector: {} + alertmanager: + alertmanagerSpec: + useExistingSecret: true + namespaceOverride: monitoring + grafana: + smtp: + existingSecret: "smtp-auth-secret" + extraSecretMounts: + - name: auth-generic-oauth-secret-mount + secretName: auth-generic-oauth-secret + defaultMode: 0440 + mountPath: /etc/secrets/auth_generic_oauth + readOnly: true + defaultDashboardsTimezone: Europe/Berlin + dashboardProviders: + dashboardproviders.yaml: + apiVersion: 1 + providers: + - name: "monitoring" + orgId: 1 + folder: "Monitoring" + type: file + disableDeletion: true + editable: false + updateIntervalSeconds: 10 + allowUiUpdates: false + options: + path: /var/lib/grafana/dashboards/monitoring + - name: "matrix" + orgId: 1 + folder: "Matrix" + type: file + disableDeletion: true + editable: false + updateIntervalSeconds: 10 + allowUiUpdates: false + options: + path: /var/lib/grafana/dashboards/matrix + - name: "nats" + orgId: 1 + folder: "Nats" + type: file + disableDeletion: true + editable: false + updateIntervalSeconds: 10 + allowUiUpdates: false + options: + path: /var/lib/grafana/dashboards/nats + dashboards: + monitoring: + felix-dashboard: + url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/felix-dashboard.json + typha-dashboard: + url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/typha-dashboard.json + cilium-dashboard: + url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/cilium-dashboard.json + cilium-operator-dashboard: + url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/cilium-operator-dashboard.json + hubble-dashboard: + url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/hubble-dashboard.json + postgres-dashboard: + url: https://raw.githubusercontent.com/prometheus-community/postgres_exporter/master/postgres_mixin/dashboards/postgres-overview.json + kube-router-dashboard: + url: https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/dashboard/kube-router.json + nats: + nats-jetstream: + url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/nats.json + matrix: + synapse-dashboard: + url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/synapse.json + dendrite-dashboard: + url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/dendrite.json + matrix-media-repo-dashboard: + url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/matrix-media-repo.json + grafana.ini: smtp: - existingSecret: smtp-auth-secret - prometheus: - prometheusSpec: - podMonitorSelectorNilUsesHelmValues: false - serviceMonitorSelectorNilUsesHelmValues: false - storageSpec: - volumeClaimTemplate: - spec: - storageClassName: nfs-client - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - selector: {} - alertmanager: - alertmanagerSpec: - useExistingSecret: true - namespaceOverride: monitoring - grafana: - extraSecretMounts: - - name: auth-generic-oauth-secret-mount - secretName: auth-generic-oauth-secret - defaultMode: 288 - mountPath: /etc/secrets/auth_generic_oauth - readOnly: true - defaultDashboardsTimezone: Europe/Berlin - dashboardProviders: - dashboardproviders.yaml: - apiVersion: 1 - providers: - - name: monitoring - orgId: 1 - folder: Monitoring - type: file - disableDeletion: true - editable: false - updateIntervalSeconds: 10 - allowUiUpdates: false - options: - path: /var/lib/grafana/dashboards/monitoring - - name: matrix - orgId: 1 - folder: Matrix - type: file - disableDeletion: true - editable: false - updateIntervalSeconds: 10 - allowUiUpdates: false - options: - path: /var/lib/grafana/dashboards/matrix - - name: nats - orgId: 1 - folder: Nats - type: file - disableDeletion: true - editable: false - updateIntervalSeconds: 10 - allowUiUpdates: false - options: - path: /var/lib/grafana/dashboards/nats - dashboards: - monitoring: - felix-dashboard: - url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/felix-dashboard.json - typha-dashboard: - url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/typha-dashboard.json - cilium-dashboard: - url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/cilium-dashboard.json - cilium-operator-dashboard: - url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/cilium-operator-dashboard.json - hubble-dashboard: - url: https://raw.githubusercontent.com/cilium/cilium/v1.13.1/examples/kubernetes/addons/prometheus/files/grafana-dashboards/hubble-dashboard.json - postgres-dashboard: - url: https://raw.githubusercontent.com/prometheus-community/postgres_exporter/master/postgres_mixin/dashboards/postgres-overview.json - kube-router-dashboard: - url: https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/dashboard/kube-router.json - nats: - nats-jetstream: - url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/nats.json - matrix: - synapse-dashboard: - url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/synapse.json - dendrite-dashboard: - url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/dendrite.json - matrix-media-repo-dashboard: - url: https://git.nordgedanken.dev/kubernetes/grafana/raw/branch/main/matrix-media-repo.json - grafana.ini: - smtp: - enabled: true - host: mail.nordgedanken.dev:465 - from_address: ops@nordgedanken.dev - user: ops@nordgedanken.dev - password: ENC[AES256_GCM,data:gAPdou+t52tu,iv:aKAchWRPLvmiTnGviUHz25C82yzPsAfcFPgTr30PxPo=,tag:dpFAHbVZPZrsru2k48Waow==,type:str] - paths: - data: ENC[AES256_GCM,data:vSfZtzoRLiR4yHioUbFrS0c=,iv:lalX2QXqhf+v5zNnzYcPxlM/LjFO7C80FMA9PN5P5uo=,tag:+TDRv7goiSdKCSBFPVoxtA==,type:str] - logs: /var/log/grafana - plugins: /var/lib/grafana/plugins - provisioning: /etc/grafana/provisioning - analytics: - check_for_updates: true - log: - mode: console - grafana_net: - url: https://grafana.net - auth.generic_oauth: - enabled: true - scopes: openid email profile roles - name: OAuth - allow_sign_up: true - client_id: $__file{/etc/secrets/auth_generic_oauth/client_id} - client_secret: $__file{/etc/secrets/auth_generic_oauth/client_secret} - auth_url: https://keycloak.midnightthoughts.space/realms/master/protocol/openid-connect/auth - token_url: https://keycloak.midnightthoughts.space/realms/master/protocol/openid-connect/token - api_url: https://keycloak.midnightthoughts.space/realms/master/protocol/openid-connect/userinfo - role_attribute_path: contains(resource_access.grafana.roles[*], 'admin') && 'Admin' || contains(resource_access.grafana.roles[*], 'editor') && 'Editor' || 'Viewer' - imageRenderer: - enabled: true - kubeProxy: - enabled: false - postRenderers: - - kustomize: - patches: - - target: - # Ignore these objects from Flux diff as they are mutated from chart hooks - kind: (ValidatingWebhookConfiguration|MutatingWebhookConfiguration) - name: kube-prometheus-stack-admission - patch: | - - op: add - path: /metadata/annotations/helm.toolkit.fluxcd.io~1driftDetection - value: disabled - - target: - # Ignore these objects from Flux diff as they are mutated at apply time but not at dry-run time - kind: PrometheusRule - patch: | - - op: add - path: /metadata/annotations/helm.toolkit.fluxcd.io~1driftDetection - value: disabled -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYSndZNyt4bzVPZUNGZ2R1 - c2xhQmVtSnd5K2RFanJzaVNVaXdEU3ZZejFvCklqSTBiU2NXL0UyKzQxTGxrbnZo - OWxHeEpVc2p0RGRzd1R6OFFUUnJPUDQKLS0tIE54RkxDSWs5QXZ2QWVoeFJTOFpY - OHg4d3FycE9NWWc2WlVyS1NqUEtuNkEKjbwYqSr3FPBrPp71oYz/eKvG3QQVWXEs - //5ic9Uw/7tR0BrA1oc6SP6jtkJ+L5KCL02ZlEi5u1PQQBL7XEEAMA== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-06-06T17:30:09Z" - mac: ENC[AES256_GCM,data:/om6L8cpAbNXVZ07J/UE90o6zexyGNmGqwxR6YpGhLBwHycyodaZT8pnYG12THR2FSbNJqIxsx4oEMJkbEvIX4pQenI9wjKYrGT+mXqHTHTR7UNctv7hVthy9Isly5tfu+vYkXc6/LQixgvSWYxVh09ziziFScLMrSWN2QL3Fmk=,iv:9ZZZ26CHmzveb3iCmh3pYXzmmZJZ2lo3juEknROKsJs=,tag:7kblnoA5KbycGjJNkh4bSg==,type:str] - pgp: [] - encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$ - version: 3.7.3 + enabled: true + host: mail.nordgedanken.dev:465 + from_address: ops@nordgedanken.dev + paths: + data: /var/lib/grafana/ + logs: /var/log/grafana + plugins: /var/lib/grafana/plugins + provisioning: /etc/grafana/provisioning + analytics: + check_for_updates: true + log: + mode: console + grafana_net: + url: https://grafana.net + auth.generic_oauth: + enabled: true + scopes: openid email profile roles + name: OAuth + allow_sign_up: true + client_id: $__file{/etc/secrets/auth_generic_oauth/client_id} + client_secret: $__file{/etc/secrets/auth_generic_oauth/client_secret} + auth_url: "https://keycloak.midnightthoughts.space/realms/master/protocol/openid-connect/auth" + token_url: "https://keycloak.midnightthoughts.space/realms/master/protocol/openid-connect/token" + api_url: "https://keycloak.midnightthoughts.space/realms/master/protocol/openid-connect/userinfo" + role_attribute_path: contains(resource_access.grafana.roles[*], 'admin') && 'Admin' || contains(resource_access.grafana.roles[*], 'editor') && 'Editor' || 'Viewer' + imageRenderer: + enabled: true + kubeProxy: + enabled: false + + postRenderers: + - kustomize: + patches: + - target: + # Ignore these objects from Flux diff as they are mutated from chart hooks + kind: (ValidatingWebhookConfiguration|MutatingWebhookConfiguration) + name: kube-prometheus-stack-admission + patch: | + - op: add + path: /metadata/annotations/helm.toolkit.fluxcd.io~1driftDetection + value: disabled + - target: + # Ignore these objects from Flux diff as they are mutated at apply time but not at dry-run time + kind: PrometheusRule + patch: | + - op: add + path: /metadata/annotations/helm.toolkit.fluxcd.io~1driftDetection + value: disabled diff --git a/apps/production/kube-prometheus-stack-values.yaml b/apps/production/kube-prometheus-stack-values.yaml @@ -1,153 +1,132 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: - name: kube-prometheus - namespace: monitoring + name: kube-prometheus + namespace: monitoring spec: - values: - grafana: - alerting: - rules.yaml: - apiVersion: 1 - groups: - - orgId: 1 - name: Matrix Synapse - folder: Matrix - interval: 1m - rules: - - uid: b6db960c-c0bd-4d4f-b0f1-e1f216ec81cc - title: DNSQueryRefusedError - condition: C - data: - - refId: ENC[AES256_GCM,data:Aw==,iv:DjPjjWi/+tWAnqckw8vxJpd8WYYOrQdzSiq6pJJId+k=,tag:fzjnwSyduXv7zlyJmvD6Ig==,type:str] - queryType: ENC[AES256_GCM,data:LycpcXY=,iv:XuxlLWjdbaRTDRwuW1smjg4ACyV0O03Kya2eboVm2jo=,tag:ZR7vMFHpDChI4ntV3M/oZA==,type:str] - relativeTimeRange: - from: ENC[AES256_GCM,data:Qoc1,iv:vzMqwMJtxLU3fLvc5th9cX/Jx+naKFrb0SCQ1+Dqzbc=,tag:zfQ4H1lEAIT82CI/FUqriQ==,type:int] - to: ENC[AES256_GCM,data:4Q==,iv:K2PPZSGYjWOxIzw5Q/PL1UXxYfWkYSDqwGU+iRoN1oI=,tag:AN/JBVBF5EIepcBaPAGKSg==,type:int] - datasourceUid: ENC[AES256_GCM,data:fUr73Q==,iv:lw5lwVbOmQC9K3Kkpi/oOvfBA5lyJSeZ95prz0T43+c=,tag:PRReq4q11YZ8c6c52iZrkA==,type:str] - model: - datasource: - type: ENC[AES256_GCM,data:Nc7DIg==,iv:INDes4Htr4aKIlDFnJvTIocIzfvgSbJ23wc7F4gN3GQ=,tag:6FLCQc3q/SGJqS8hNozmjA==,type:str] - editorMode: ENC[AES256_GCM,data:7TUsfQ==,iv:8HIqtT+m5SUVj6gMZ+Gf2JrH7UGUIFtmAAGKsTrEDLg=,tag:DYfEaNjJEp1il2ocrBH4xw==,type:str] - expr: ENC[AES256_GCM,data:lTDvkTYzDQ34XEFNCIzt9hbjlzpxAgi7l0LbkpyEv+Te3vl/2/yBoF7rJHB2WmAn6tJc+0GWmI1Ip0NNywPZBhKJG3+H1KnKUqh+9jl5VV76jQv8oem78Cwu2kCwVDU=,iv:ZSukbDVSyNTTklRwmLMVC6BsFx9ojTPbA/RjBi2JceY=,tag:stsGimGkFjK+cf4QwlzyQg==,type:str] - hide: ENC[AES256_GCM,data:c1QPmko=,iv:1S9P+L0e82OsHO1a4FY0u+CTiZTXtgiaSfQ7SZUFT/g=,tag:K2799ptm1Z/Cyk6lswDNrg==,type:bool] - intervalMs: ENC[AES256_GCM,data:ZOPAIA==,iv:VwKvoXNPBga3gH3ezoEj2bXtkdvx7qfCAylxKIiFqCU=,tag:7/Ko4iOzyesKx31CfsXqbQ==,type:int] - maxDataPoints: ENC[AES256_GCM,data:LAxdosE=,iv:4sUfCNiDnZlHDyQF/cE3+is1HzxviO3JlY9ekqFGylQ=,tag:fCoe/+WIPzYe1z7DsN/sCg==,type:int] - queryType: ENC[AES256_GCM,data:RSeuFm8=,iv:vULn63/ANgqNGIbNo1yWBNIZNrKSDD2eNGzeK2ooSLs=,tag:6s12gp422JjA0PqLTltEXQ==,type:str] - refId: ENC[AES256_GCM,data:8A==,iv:JBJVfL7D49f4oo0L9KYRkGye603f1b9+h92D0uyoA2I=,tag:t6et+fsxkfsmgWCQvintdA==,type:str] - - refId: ENC[AES256_GCM,data:aA==,iv:Y5u2cMpNCtY5dMd0zIoCkp7GP6CLgsgudVnpYBIUgGE=,tag:QR92xSsFHmWuv8syAnhWig==,type:str] - relativeTimeRange: - from: ENC[AES256_GCM,data:S3Kr,iv:4qfOfDsWR/Fgz34x0fkLoU/8gilerzqdj6HFQNSff3g=,tag:MVev06A1h1/BnHZ9bpjPTQ==,type:int] - to: ENC[AES256_GCM,data:Hg==,iv:uvgNQNZLlgIQ9qquLXWB5RF+1f1v+OxoCo+ohsT1AiY=,tag:pEnXlQ8VtRV+X4mSoF1udw==,type:int] - datasourceUid: ENC[AES256_GCM,data:U4pUzUqUXb4=,iv:+9yDt6o8RI+6XkoO59pyr5jDUcTecqoEZF52wSFcZXE=,tag:U9Fg9jPU9EEaZkchV5EbdQ==,type:str] - model: - conditions: - - evaluator: - params: [] - type: ENC[AES256_GCM,data:z+g=,iv:SwemC2oSV9BWQWxC3ser3v6UA2zyQUQz9LPANhfiO28=,tag:hjyaSZ0SIxAWbEPK/P3wZw==,type:str] - operator: - type: ENC[AES256_GCM,data:/Q8t,iv:nRNUdojW2id3ZoG0XL18dCxhQouEAiu+S/MWiZ0cxsI=,tag:xSiIsqd6tbhqj28tx5cgzA==,type:str] - query: - params: - - ENC[AES256_GCM,data:aw==,iv:8y3tP/HYyu/78J76VnNRiAxuH+7NBEZyLVT0xb0xy/I=,tag:nYMritqps37n9IA0w6hBhQ==,type:str] - reducer: - params: [] - type: ENC[AES256_GCM,data:3d1ykg==,iv:KteG2/4YX0bUXuHsTYR+fLm3lnkSIg2ty9n1C2v1ye0=,tag:ABfPqyeG3oM/ZxxOLBzw1w==,type:str] - type: ENC[AES256_GCM,data:08gtcZE=,iv:iqTPfVl14cwbZfN0Jg6GHR7ksjT+9pq7XHXA29l4Gts=,tag:oKXmAvW6zcmlf6O5VGJYow==,type:str] - datasource: - type: ENC[AES256_GCM,data:tM5kX0wE1v8=,iv:P13tE8f/eChhBXdbR/aArh9ZnV/HRu8GfokeLKfyVNI=,tag:sjE2UliQw10/uDdww0qMlg==,type:str] - uid: ENC[AES256_GCM,data:xVEkH/2B2wk=,iv:OrZjP5tIipyyPF48YJpPhjkMvdU9s2Nb6x6VdgOJM8k=,tag:/kdT6atbzSHQRVv9xlQhwQ==,type:str] - expression: ENC[AES256_GCM,data:Ew==,iv:zp4CBRftlMg526zBDIM4FfdMoUNecbiOz+4jhJMGJTU=,tag:o3dteXOx8M209PvR6qkctg==,type:str] - hide: ENC[AES256_GCM,data:baNu47k=,iv:kTAo4WNt+6zk61KdfnF8ymKjsYFtAeCOCZbaVW6r/ZU=,tag:7D5n12YXTi/BYd2v0b6NQw==,type:bool] - intervalMs: ENC[AES256_GCM,data:ynSRpA==,iv:WlrZ4QpdV8Y1TOUVVaaTceRYKln+1GbuoQlI/tjzhoE=,tag:LqnqJBwh4brbttv/Nn7j9w==,type:int] - maxDataPoints: ENC[AES256_GCM,data:SmmppsI=,iv:RhLA2I73gvTejgiisS7AnYcJyI8idlkmvxeuNbuVyJ0=,tag:erf60mtOuWJQAD7AC+kbdQ==,type:int] - reducer: ENC[AES256_GCM,data:gMY2xA==,iv:ZaLc/8fr4SXa9/QSJMJyKsWyP79qvzfzxz9l6WObdRA=,tag:o8n7lUAMywNS6cwR7AKUOw==,type:str] - refId: ENC[AES256_GCM,data:eA==,iv:9IJCn96ehOPVbNZagTtqVhOhreq2rKpPd6pk0BhXRjg=,tag:Uy6s3NvIwjLx5dPTopX2jw==,type:str] - type: ENC[AES256_GCM,data:uNprZPT+,iv:YLVfF/z7CFSNoUCF+wDhSm3AOpJ2Hr4jWneV2IU/fsg=,tag:rxZD1BDWHiJ/NaZCX0JLSA==,type:str] - - refId: ENC[AES256_GCM,data:dA==,iv:6N0vROYbzeTQV8SZIzkAk7trx0ckUVIStynazcPaxe4=,tag:iH9hgLlsEuI9Gf1zeCrk3g==,type:str] - relativeTimeRange: - from: ENC[AES256_GCM,data:98U+,iv:boHV4ISg32pb/xb6AKp2UEGyTUYY8U3h5moYHoJZFQo=,tag:LqjkRTk/9I7UreUSQKf9EA==,type:int] - to: ENC[AES256_GCM,data:Jg==,iv:kvawlqhlS+kqQ6uQFw64R7pbgTRfqy1iONy7RoBHCEY=,tag:suNlkISSeXFLiOwZmAwyxw==,type:int] - datasourceUid: ENC[AES256_GCM,data:YwRiaGbRaLQ=,iv:pJfKr5Z5tS3jXxPcQo6un7xBa3I1w2IarvlZmV1BjPs=,tag:kFMojst5/l+AstUxnQv1Dw==,type:str] - model: - conditions: - - evaluator: - params: - - ENC[AES256_GCM,data:Fg==,iv:tgz19yWwOgZ+877mM0MY0lbvpxuEeZ7DRTA6uNCIuO8=,tag:v32TZrM8+b5orkJ6cvXFlw==,type:int] - type: ENC[AES256_GCM,data:Vnk=,iv:mo7PF5LM4xR6Y8cvro69vGYroJkoXh6snON9xl3ZDps=,tag:R2KrYP9TSGd8obKtwf29Aw==,type:str] - operator: - type: ENC[AES256_GCM,data:8kWL,iv:fe6yy0hog1CoV6V8SakWKnYpNzzubF7P+zBwrCliLAY=,tag:UIuNMxwj3qk/qfib0p71zg==,type:str] - query: - params: - - ENC[AES256_GCM,data:zw==,iv:bnKboMKbvpnpx0KV7kag+RH4vlcTxImUf0YfWSALhXc=,tag:Eereg4zc7dkyf6t10ZjRVw==,type:str] - reducer: - params: [] - type: ENC[AES256_GCM,data:6IfEXg==,iv:TVXLsKeud7dBRG6mqX36khXRX0y+FAGDhRUut01tgnM=,tag:RNRpTJ5GNKuBJS/CV0z0Ng==,type:str] - type: ENC[AES256_GCM,data:nei4c9Q=,iv:irbGp8seW3csOp+3psKgnjkBnbIKFQeIVXnGULwdQPk=,tag:gXPDQyMo/DunuNSe/E7Lyw==,type:str] - datasource: - type: ENC[AES256_GCM,data:RqToCRrv7Ho=,iv:S3GLXwk0DG23RxuSdf/7UCv7WdHE2LL4oMQy1XndNyo=,tag:6FH+oN8v3NwzTadN3RQ+iA==,type:str] - uid: ENC[AES256_GCM,data:IaF85Tdl9kc=,iv:B+q1VL/FHbPKxWaN40+nWhyarVkt05dJF2uDycb3hqw=,tag:msb/XGbZM6slImPXaO8lGg==,type:str] - expression: ENC[AES256_GCM,data:SA==,iv:wxhbpIQuJWvowsNFb2La0c58QtDXhWypVmMDEYGqIro=,tag:QNeIhhKppmAC84Z/wNLujg==,type:str] - hide: ENC[AES256_GCM,data:QlLQxOI=,iv:hpEvuR9uQTGaNe45E0VePiXQKsxQ2q+RgZRDthke+a4=,tag:huvFJoe5Yq5WNMV45fjHNw==,type:bool] - intervalMs: ENC[AES256_GCM,data:5rHVBw==,iv:kvs5FFAGN+g+/fauIJLxyBzJzMsZbm1W8flhxfVvYt8=,tag:NsSQlIC4EunQOsrhkcGanA==,type:int] - maxDataPoints: ENC[AES256_GCM,data:Wt20YFo=,iv:H7VAjOzE4liNwtLv6jAWyBhwy8xJI1tMwW5MyAtHNJg=,tag:FtOzQEe2EqKPguYc5KfaLA==,type:int] - refId: ENC[AES256_GCM,data:lw==,iv:byvupRo/+R1ooMNmJghKuB1nGyng7dKRjjp8Z4FepRE=,tag:Z0fkmyeySfMHA18QtF4lWQ==,type:str] - type: ENC[AES256_GCM,data:Nh3k5oBXebce,iv:x22JfY0MCeRUNpmxkoPiyymRaLX27RN+0z4ErjVF74Y=,tag:4hDNbJQhTbqQ/mf6VjTT2A==,type:str] - noDataState: NoData - execErrState: Error - for: 5m - annotations: - summary: Matrix Synapse DNS Errors are higher than usual - isPaused: false - contactpoints.yaml: - apiVersion: 1 - contactPoints: - - orgId: 1 - name: MidnightThoughts Ops - receivers: - - uid: "1" - name: MidnightThoughts Ops - type: email - sendReminder: true - frequency: 1m - settings: - addresses: ops@nordgedanken.dev - policies.yaml: - apiVersion: 1 - policies: - - orgId: 1 - receiver: MidnightThoughts Ops - group_by: - - grafana_folder - - alertname - ingress: - enabled: true - hosts: - - grafana.midnightthoughts.space - tls: - - secretName: grafana.midnightthoughts.space - hosts: - - grafana.midnightthoughts.space - grafana.ini: - server: - root_url: https://grafana.midnightthoughts.space -sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmTnRQUG5kN3lKbHM3RnJ0 - ZmorakFRWDVoeFF5Ym4vUy83a2VFSzlXQUdZCnduZ3pWZEJKQ1RMWXEyT09kMUlz - NWlranRtK1JVMHg2M21nZjVaWFhGL2sKLS0tIHZVdU03T0xtcUhoK3Jzb0RNRVFx - b1l6TEFTa0dkVDFSZE9qeTJpeGoyUWcKgIsXz5mgMNAwjesPERTZyfgOC0a8iw+o - GfIYCI6mQnhQM61UfIsQuGFb+5L1U+jtkkAQp6jHuvh6rh8RTBC3+Q== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-06-06T17:33:39Z" - mac: ENC[AES256_GCM,data:NsBrTTw5r7OwuLeCR+7xHVWDIHgb9a6YrRfXiyqNUn+ll8qx0O5hHtHSGtNkjHel3aTGuRBmnKCid98iyOxfO23ftBLC7TP/udSzg925B0GcpOGejRL29Orj4AywM4wRvm4r8z/7bo265cv7TRXb9dXNarmEm1F1sxhi5Q+WbF8=,iv:eLOBNFVwixjq3T65qNoG7kbTBh5F/lyRcSPgzgtPFU0=,tag:1+xvg1mUuQp5bEHr71zttQ==,type:str] - pgp: [] - encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$ - version: 3.7.3 + values: + grafana: + alerting: + rules.yaml: + apiVersion: 1 + groups: + - orgId: 1 + name: 'Matrix Synapse' + folder: Matrix + interval: 1m + rules: + - uid: b6db960c-c0bd-4d4f-b0f1-e1f216ec81cc + title: DNSQueryRefusedError + condition: C + data: + - refId: A + queryType: range + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: loki + model: + datasource: + type: loki + editorMode: code + expr: count(rate({namespace="matrix", app="matrix-synapse"} |= `DNSQueryRefusedError` [$__interval])) + hide: false + intervalMs: 1000 + maxDataPoints: 43200 + queryType: range + refId: A + - refId: B + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: __expr__ + model: + conditions: + - evaluator: + params: [] + type: gt + operator: + type: and + query: + params: + - B + reducer: + params: [] + type: last + type: query + datasource: + type: __expr__ + uid: __expr__ + expression: A + hide: false + intervalMs: 1000 + maxDataPoints: 43200 + reducer: mean + refId: B + type: reduce + - refId: C + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: __expr__ + model: + conditions: + - evaluator: + params: + - 1 + type: gt + operator: + type: and + query: + params: + - C + reducer: + params: [] + type: last + type: query + datasource: + type: __expr__ + uid: __expr__ + expression: B + hide: false + intervalMs: 1000 + maxDataPoints: 43200 + refId: C + type: threshold + noDataState: NoData + execErrState: Error + for: 5m + annotations: + summary: Matrix Synapse DNS Errors are higher than usual + isPaused: false + contactpoints.yaml: + apiVersion: 1 + contactPoints: + - orgId: 1 + name: 'MidnightThoughts Ops' + receivers: + - uid: '1' + name: 'MidnightThoughts Ops' + type: 'email' + sendReminder: true + frequency: '1m' + settings: + addresses: 'ops@nordgedanken.dev' + policies.yaml: + apiVersion: 1 + policies: + - orgId: 1 + receiver: 'MidnightThoughts Ops' + group_by: ['grafana_folder', 'alertname'] + + ingress: + enabled: true + hosts: + - grafana.midnightthoughts.space + tls: + - secretName: grafana.midnightthoughts.space + hosts: + - grafana.midnightthoughts.space + grafana.ini: + server: + root_url: https://grafana.midnightthoughts.space diff --git a/apps/production/secrets/grafana-secret.yaml b/apps/production/secrets/grafana-secret.yaml @@ -5,8 +5,8 @@ metadata: namespace: monitoring type: Opaque stringData: - client_id: ENC[AES256_GCM,data:gFeHIfKDzQ==,iv:rjlkXmKnOUrmud+UxPTMwsUqjtgD70yEBJVpGlhtlas=,tag:NYNuXTK27+7hsSmk1M5jJQ==,type:str] - client_secret: ENC[AES256_GCM,data:n4EG8HHb2g2dgRE/q4Xz/Rp7tOOiRtRxRti06B9SEQk=,iv:ICLXIcpf5slzH8u2E9ImW4wpWm184uQg08XBBsbYOTk=,tag:d0xtAa+7EwkhDrnTiIoAvQ==,type:str] + client_id: ENC[AES256_GCM,data:EyQ67IpnmA==,iv:3QxEinlI1nTk8uEh5Z3sw1IpIoaHmtzocRpUAjM7hnU=,tag:JhYcixWveTJ6FYxlX0N4HA==,type:str] + client_secret: ENC[AES256_GCM,data:w5lWs9gkUP3b8IRuZPf278vTjrmNhYPPu4+q7otk27k=,iv:3NWbmhe2QsRnoxSk/n1EJRKFgVQE9236o98JHb41VAM=,tag:Fmo8yGKA3AnmBL/k38RnKQ==,type:str] sops: kms: [] gcp_kms: [] @@ -16,14 +16,44 @@ sops: - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1VW9oNTBnZUdPTllzbmwz - WEpteTM4TWtVM0RnMll1dnNybUloZkd6RFhNCjlkT1dTWnNVbEZLeUFzMmF6OFJR - VkRwbStadmRNclNpZ1oyRUF1a0dnbmsKLS0tIHdEclNxQ1NMNVQvTFh5cGlPNFpn - dzlnTE9GNXJ2SWR3alQ4cVVnTmxESFUKzelYDCWwgc5/OESQqDbXjo6TC03nWy3b - ZZ6foRoOp+MQztv4OSU0W5ROjK036K4Mbco1sIHFcmZBucDaG7MnKQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByVG9rSFlrOU84RmFzcXox + UkIyVllKVUMxYjB0cTJpR3pKZUQzMDh6YWlZCkRabDlTdHRlVzNqbkR1WnA5YTRS + Z0wrRitLc0xFbkFLYmRablJpb010MVkKLS0tIHRYb1FHZVBwQ2w0eVFNTVhvanRk + aDdZMFJOTXhiSkIvZUU2dnpoTm9WblkKrfpQkHFd4nLRfjb7WLu3sTBWliFw7uz+ + lQbLZUPTeA0L5/8++VfV727amwGC/9x6IfQ+X2Ij9rAam9a69DCoIw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-06-06T17:21:12Z" - mac: ENC[AES256_GCM,data:R9cGEjsOOa1S3enF5fWOvUsEO+52cT63e2wiLjVwJ3LWDdUKGKgsYTFYJBlB+2jdDHmpAM0wsxLcrwCRMVI8iZBmq8H6oiwLhVEqOA5js9hSBb0Fy5yZJGXuiLWvBbCJWIJ+lIahMKlfb2kz2924aJv7DvhrUZPJ/CEZCllVA2c=,iv:8++4Ot2vRCqjEkgg7nj4VFu+wujbTdH/92x/oKpWzPA=,tag:mvGdbC5rrWadkiSfPGWjQA==,type:str] + lastmodified: "2023-06-06T17:38:36Z" + mac: ENC[AES256_GCM,data:fopWSWdfsKi+GI+3q8mGqqmhZ2Qw3Ng4N0TFvSd3QcgeIeACPAbKbe8yjD1GKSV2dgelvKTJKhm5Pww3D/84gYaACtjHD33l0RiPMiYhmdOaRRc62FvCCEDpE3PwTnBnOYCD+WspHLAZxteCsDWVKPKX0kvXqcGy3wzTmNV39B4=,iv:Uj33IAzJFN/q2sav5hwkrHTNRco153AM4XQdgUKRIlw=,tag:aaXkcz0fm4G6+0wKV3ooRQ==,type:str] + pgp: [] + encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$ + version: 3.7.3 +--- +apiVersion: v1 +kind: Secret +metadata: + name: smtp-auth-secret + namespace: monitoring +type: Opaque +stringData: + user: ENC[AES256_GCM,data:VT9tWLxsn8Oven8OJ1wEY4goO28=,iv:Xe+BDgf9lWgnyHTdMgJA8ZNJNsdu6f9+oth5apt+9YE=,tag:3wOHwDFfyG862jCTP7PD5w==,type:str] + password: ENC[AES256_GCM,data:V9aXdrpdbu4D,iv:OQrAwZly1rKN16qDG7YZoAlIo6TKt0c+FImYGTFJTp0=,tag:SoOQAtcdz+b9o4RZ3axJkA==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByVG9rSFlrOU84RmFzcXox + UkIyVllKVUMxYjB0cTJpR3pKZUQzMDh6YWlZCkRabDlTdHRlVzNqbkR1WnA5YTRS + Z0wrRitLc0xFbkFLYmRablJpb010MVkKLS0tIHRYb1FHZVBwQ2w0eVFNTVhvanRk + aDdZMFJOTXhiSkIvZUU2dnpoTm9WblkKrfpQkHFd4nLRfjb7WLu3sTBWliFw7uz+ + lQbLZUPTeA0L5/8++VfV727amwGC/9x6IfQ+X2Ij9rAam9a69DCoIw== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2023-06-06T17:38:36Z" + mac: ENC[AES256_GCM,data:fopWSWdfsKi+GI+3q8mGqqmhZ2Qw3Ng4N0TFvSd3QcgeIeACPAbKbe8yjD1GKSV2dgelvKTJKhm5Pww3D/84gYaACtjHD33l0RiPMiYhmdOaRRc62FvCCEDpE3PwTnBnOYCD+WspHLAZxteCsDWVKPKX0kvXqcGy3wzTmNV39B4=,iv:Uj33IAzJFN/q2sav5hwkrHTNRco153AM4XQdgUKRIlw=,tag:aaXkcz0fm4G6+0wKV3ooRQ==,type:str] pgp: [] encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$ version: 3.7.3