From 4b459c1b2671fd2a72cf4011f087bbb6bcf96f9a Mon Sep 17 00:00:00 2001 From: Joseph Hanson Date: Thu, 29 Feb 2024 11:53:55 -0600 Subject: [PATCH] Adding alertmanager silencer kubanetics! --- .../app/helmrelease.yaml | 65 +++++++++++++++++++ .../app/kustomization.yaml | 6 ++ .../alertmanager-silencer/ks.yaml | 21 ++++++ .../apps/observability/kustomization.yaml | 1 + 4 files changed, 93 insertions(+) create mode 100644 kubernetes/apps/observability/alertmanager-silencer/app/helmrelease.yaml create mode 100644 kubernetes/apps/observability/alertmanager-silencer/app/kustomization.yaml create mode 100644 kubernetes/apps/observability/alertmanager-silencer/ks.yaml diff --git a/kubernetes/apps/observability/alertmanager-silencer/app/helmrelease.yaml b/kubernetes/apps/observability/alertmanager-silencer/app/helmrelease.yaml new file mode 100644 index 0000000..cd9c59c --- /dev/null +++ b/kubernetes/apps/observability/alertmanager-silencer/app/helmrelease.yaml @@ -0,0 +1,65 @@ +--- +# yaml-language-server: $schema=https://ks.hsn.dev/helm.toolkit.fluxcd.io/helmrelease_v2beta2.json +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: alertmanager-silencer +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 2.6.0 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + retries: 3 + uninstall: + keepHistory: false + dependsOn: + - name: kube-prometheus-stack + namespace: observability + values: + controllers: + main: + type: cronjob + cronjob: + schedule: "@daily" + containers: + main: + image: + repository: ghcr.io/onedr0p/kubanetics + tag: 2024.2.8@sha256:bcdcb5acd7a8164dda020067aa3177698b914b554364f46ac3d4cef0a8e13064 + env: + SCRIPT_NAME: alertmanager-silencer.sh + ALERTMANAGER_URL: http://alertmanager-operated.observability.svc.cluster.local:9093 + MATCHERS_0: alertname=NodeCPUHighUsage job=node-exporter + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: { drop: ["ALL"] } + probes: + liveness: &noProbes + enabled: false + readiness: *noProbes + startup: *noProbes + resources: + requests: + cpu: 25m + limits: + memory: 128Mi + pod: + securityContext: + runAsUser: 568 + runAsGroup: 568 + runAsNonRoot: true + service: + main: + enabled: false \ No newline at end of file diff --git a/kubernetes/apps/observability/alertmanager-silencer/app/kustomization.yaml b/kubernetes/apps/observability/alertmanager-silencer/app/kustomization.yaml new file mode 100644 index 0000000..2d7deac --- /dev/null +++ b/kubernetes/apps/observability/alertmanager-silencer/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml \ No newline at end of file diff --git a/kubernetes/apps/observability/alertmanager-silencer/ks.yaml b/kubernetes/apps/observability/alertmanager-silencer/ks.yaml new file mode 100644 index 0000000..b3981f8 --- /dev/null +++ b/kubernetes/apps/observability/alertmanager-silencer/ks.yaml @@ -0,0 +1,21 @@ +--- +# yaml-language-server: $schema=https://ks.hsn.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app alertmanager-silencer + namespace: flux-system +spec: + targetNamespace: observability + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./kubernetes/apps/observability/alertmanager-silencer/app + prune: true + sourceRef: + kind: GitRepository + name: homelab + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m \ No newline at end of file diff --git a/kubernetes/apps/observability/kustomization.yaml b/kubernetes/apps/observability/kustomization.yaml index 972a8b0..8b221b3 100644 --- a/kubernetes/apps/observability/kustomization.yaml +++ b/kubernetes/apps/observability/kustomization.yaml @@ -6,6 +6,7 @@ resources: # Pre Flux-Kustomizations - ./namespace.yaml # Flux-Kustomizations + - ./alertmanager-silencer/ks.yaml # - ./gatus/ks.yaml # - ./grafana/ks.yaml - ./kube-prometheus-stack/ks.yaml