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