Add kube-state-metrics, node-exporter, and prometheus-adapter to obse…#3334
Open
axeII wants to merge 1 commit into
Open
Add kube-state-metrics, node-exporter, and prometheus-adapter to obse…#3334axeII wants to merge 1 commit into
axeII wants to merge 1 commit into
Conversation
…rvability stack - Introduced kube-state-metrics with its Kustomization, HelmRelease, and OCIRepository configurations. - Added node-exporter with corresponding Kustomization, HelmRelease, and OCIRepository files. - Integrated prometheus-adapter into the observability stack with its own Kustomization, HelmRelease, and OCIRepository. - Updated the main observability Kustomization to include kube-state-metrics, node-exporter, and prometheus-adapter. - Refactored victoria-logs and victoria-metrics configurations to use OCIRepository and updated HelmRelease specifications. - Added Grafana dashboards for smartctl-exporter and victoria-metrics. - Created collector for victoria-logs with HelmRelease and repository configurations. - Removed deprecated route configuration for victoria-logs.
Contributor
--- kubernetes/apps/observability/prometheus-operator-crds/app Kustomization: observability/prometheus-operator-crds HelmRelease: observability/prometheus-operator-crds
+++ kubernetes/apps/observability/prometheus-operator-crds/app Kustomization: observability/prometheus-operator-crds HelmRelease: observability/prometheus-operator-crds
@@ -6,23 +6,11 @@
app.kubernetes.io/name: prometheus-operator-crds
kustomize.toolkit.fluxcd.io/name: prometheus-operator-crds
kustomize.toolkit.fluxcd.io/namespace: observability
name: prometheus-operator-crds
namespace: observability
spec:
- chart:
- spec:
- chart: prometheus-operator-crds
- sourceRef:
- kind: HelmRepository
- name: prometheus-community
- namespace: flux-system
- version: 28.0.1
- install:
- remediation:
- retries: 3
+ chartRef:
+ kind: OCIRepository
+ name: prometheus-operator-crds
interval: 1h
- upgrade:
- cleanupOnFail: true
- remediation:
- retries: 3
--- kubernetes/apps/observability/prometheus-operator-crds/app Kustomization: observability/prometheus-operator-crds OCIRepository: observability/prometheus-operator-crds
+++ kubernetes/apps/observability/prometheus-operator-crds/app Kustomization: observability/prometheus-operator-crds OCIRepository: observability/prometheus-operator-crds
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: prometheus-operator-crds
+ kustomize.toolkit.fluxcd.io/name: prometheus-operator-crds
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: prometheus-operator-crds
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 28.0.1
+ url: oci://ghcr.io/prometheus-community/charts/prometheus-operator-crds
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/alloy
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/alloy
@@ -1,27 +0,0 @@
----
-apiVersion: kustomize.toolkit.fluxcd.io/v1
-kind: Kustomization
-metadata:
- labels:
- kustomize.toolkit.fluxcd.io/name: cluster-apps
- kustomize.toolkit.fluxcd.io/namespace: flux-system
- name: alloy
- namespace: observability
-spec:
- commonMetadata:
- labels:
- app.kubernetes.io/name: alloy
- dependsOn:
- - name: victoria-logs
- interval: 30m
- path: ./kubernetes/apps/observability/alloy/app
- prune: true
- retryInterval: 1m
- sourceRef:
- kind: GitRepository
- name: flux-system
- namespace: flux-system
- targetNamespace: observability
- timeout: 5m
- wait: true
-
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/grafana
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/grafana
@@ -8,15 +8,12 @@
name: grafana
namespace: observability
spec:
commonMetadata:
labels:
app.kubernetes.io/name: grafana
- dependsOn:
- - name: external-secrets-stores
- namespace: kube-system
interval: 30m
path: ./kubernetes/apps/observability/grafana/app
prune: true
retryInterval: 1m
sourceRef:
kind: GitRepository
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/grafana-instance
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/grafana-instance
@@ -0,0 +1,31 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ labels:
+ kustomize.toolkit.fluxcd.io/name: cluster-apps
+ kustomize.toolkit.fluxcd.io/namespace: flux-system
+ name: grafana-instance
+ namespace: observability
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ dependsOn:
+ - name: grafana
+ - name: external-secrets-stores
+ namespace: kube-system
+ - name: rook-ceph-cluster
+ namespace: rook-ceph
+ interval: 30m
+ path: ./kubernetes/apps/observability/grafana/instance
+ prune: true
+ retryInterval: 1m
+ sourceRef:
+ kind: GitRepository
+ name: flux-system
+ namespace: flux-system
+ targetNamespace: observability
+ timeout: 5m
+ wait: false
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/kube-state-metrics
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/kube-state-metrics
@@ -0,0 +1,29 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ labels:
+ kustomize.toolkit.fluxcd.io/name: cluster-apps
+ kustomize.toolkit.fluxcd.io/namespace: flux-system
+ name: kube-state-metrics
+ namespace: observability
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: kube-state-metrics
+ healthChecks:
+ - apiVersion: helm.toolkit.fluxcd.io/v2
+ kind: HelmRelease
+ name: kube-state-metrics
+ namespace: observability
+ interval: 1h
+ path: ./kubernetes/apps/observability/kube-state-metrics/app
+ prune: true
+ retryInterval: 2m
+ sourceRef:
+ kind: GitRepository
+ name: flux-system
+ namespace: flux-system
+ targetNamespace: observability
+ timeout: 5m
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/node-exporter
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/node-exporter
@@ -0,0 +1,29 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ labels:
+ kustomize.toolkit.fluxcd.io/name: cluster-apps
+ kustomize.toolkit.fluxcd.io/namespace: flux-system
+ name: node-exporter
+ namespace: observability
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: node-exporter
+ healthChecks:
+ - apiVersion: helm.toolkit.fluxcd.io/v2
+ kind: HelmRelease
+ name: node-exporter
+ namespace: observability
+ interval: 1h
+ path: ./kubernetes/apps/observability/node-exporter/app
+ prune: true
+ retryInterval: 2m
+ sourceRef:
+ kind: GitRepository
+ name: flux-system
+ namespace: flux-system
+ targetNamespace: observability
+ timeout: 5m
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/prometheus-adapter
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/prometheus-adapter
@@ -0,0 +1,29 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ labels:
+ kustomize.toolkit.fluxcd.io/name: cluster-apps
+ kustomize.toolkit.fluxcd.io/namespace: flux-system
+ name: prometheus-adapter
+ namespace: observability
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: prometheus-adapter
+ healthChecks:
+ - apiVersion: helm.toolkit.fluxcd.io/v2
+ kind: HelmRelease
+ name: prometheus-adapter
+ namespace: observability
+ interval: 1h
+ path: ./kubernetes/apps/observability/prometheus-adapter/app
+ prune: true
+ retryInterval: 2m
+ sourceRef:
+ kind: GitRepository
+ name: flux-system
+ namespace: flux-system
+ targetNamespace: observability
+ timeout: 5m
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/smartctl-exporter
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/smartctl-exporter
@@ -0,0 +1,29 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ labels:
+ kustomize.toolkit.fluxcd.io/name: cluster-apps
+ kustomize.toolkit.fluxcd.io/namespace: flux-system
+ name: smartctl-exporter
+ namespace: observability
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: smartctl-exporter
+ healthChecks:
+ - apiVersion: helm.toolkit.fluxcd.io/v2
+ kind: HelmRelease
+ name: smartctl-exporter
+ namespace: observability
+ interval: 1h
+ path: ./kubernetes/apps/observability/smartctl-exporter/app
+ prune: true
+ retryInterval: 2m
+ sourceRef:
+ kind: GitRepository
+ name: flux-system
+ namespace: flux-system
+ targetNamespace: observability
+ timeout: 5m
+
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/victoria-logs-collector
+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: observability/victoria-logs-collector
@@ -0,0 +1,27 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ labels:
+ kustomize.toolkit.fluxcd.io/name: cluster-apps
+ kustomize.toolkit.fluxcd.io/namespace: flux-system
+ name: victoria-logs-collector
+ namespace: observability
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: victoria-logs-collector
+ dependsOn:
+ - name: victoria-logs
+ interval: 30m
+ path: ./kubernetes/apps/observability/victoria-logs/collector
+ prune: true
+ retryInterval: 1m
+ sourceRef:
+ kind: GitRepository
+ name: flux-system
+ namespace: flux-system
+ targetNamespace: observability
+ timeout: 5m
+ wait: false
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics HelmRelease: observability/victoria-metrics
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics HelmRelease: observability/victoria-metrics
@@ -6,87 +6,98 @@
app.kubernetes.io/name: victoria-metrics
kustomize.toolkit.fluxcd.io/name: victoria-metrics
kustomize.toolkit.fluxcd.io/namespace: observability
name: victoria-metrics
namespace: observability
spec:
- chart:
- spec:
- chart: victoria-metrics-k8s-stack
- sourceRef:
- kind: HelmRepository
- name: victoria-metrics
- namespace: flux-system
- version: 0.74.1
- install:
- createNamespace: true
- remediation:
- retries: 3
- interval: 30m
- timeout: 15m
- upgrade:
- cleanupOnFail: true
- remediation:
- retries: 3
+ chartRef:
+ kind: OCIRepository
+ name: victoria-metrics
+ interval: 1h
values:
alertmanager:
enabled: false
+ defaultDashboards:
+ grafanaOperator:
+ enabled: true
+ spec:
+ allowCrossNamespaceImport: true
+ defaultDatasources:
+ grafanaOperator:
+ enabled: true
+ spec:
+ allowCrossNamespaceImport: true
fullnameOverride: vm
grafana:
enabled: false
+ kube-state-metrics:
+ enabled: false
kubeControllerManager:
- enabled: true
vmScrape:
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
port: http-metrics
scheme: https
tlsConfig:
insecureSkipVerify: true
+ kubeEtcd:
+ service:
+ port: 2381
+ selector:
+ component: kube-apiserver
+ targetPort: 2381
+ vmScrape:
+ spec:
+ endpoints:
+ - scheme: http
kubeScheduler:
- enabled: true
vmScrape:
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
port: http-metrics
scheme: https
tlsConfig:
insecureSkipVerify: true
- kubeStateMetrics:
- enabled: false
- nodeExporter:
- enabled: false
- prometheus:
+ prometheus-node-exporter:
enabled: false
victoria-metrics-operator:
- enabled: true
+ admissionWebhooks:
+ policy: Ignore
+ crds:
+ cleanup:
+ enabled: false
+ operator:
+ enable_converter_ownership: true
vmagent:
- enabled: true
spec:
externalLabels:
cluster: main
extraArgs:
+ promscrape.dropOriginalLabels: 'true'
+ promscrape.maxScrapeSize: 50MiB
promscrape.streamParse: 'true'
- remoteWrite:
- - url: http://vmsingle-vm.observability.svc.cluster.local:8428/api/v1/write
- replicas: 1
- resources:
- limits:
- memory: 1Gi
- requests:
- cpu: 50m
- memory: 512Mi
scrapeInterval: 60s
vmalert:
enabled: false
vmauth:
- enabled: false
+ enabled: true
+ spec:
+ extraArgs:
+ requestBufferSize: '65536'
+ unauthorizedUserAccessSpec:
+ url_map:
+ - src_paths:
+ - /api/v1/query.*
+ - /api/v1/label/.*
+ url_prefix: http://vmsingle-vm.observability.svc.cluster.local:8428
+ - src_paths:
+ - /select/logsql/.*
+ url_prefix: http://victoria-logs.observability.svc.cluster.local:9428
vmsingle:
- enabled: true
spec:
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-api-server
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-api-server
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-api-server
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15761/revisions/21/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-coredns
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-coredns
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-coredns
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15762/revisions/22/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-global
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-global
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-global
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15757/revisions/43/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-namespaces
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-namespaces
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-namespaces
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15758/revisions/46/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-nodes
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-nodes
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-nodes
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15759/revisions/40/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-pods
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-pods
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-pods
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15760/revisions/39/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-volumes
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics GrafanaDashboard: observability/kubernetes-volumes
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kubernetes-volumes
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/11454/revisions/14/download
+
--- kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics OCIRepository: observability/victoria-metrics
+++ kubernetes/apps/observability/victoria-metrics/app Kustomization: observability/victoria-metrics OCIRepository: observability/victoria-metrics
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/name: victoria-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: victoria-metrics
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 0.76.0
+ url: oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-k8s-stack
+
--- kubernetes/apps/observability/victoria-logs/app Kustomization: observability/victoria-logs HelmRelease: observability/victoria-logs
+++ kubernetes/apps/observability/victoria-logs/app Kustomization: observability/victoria-logs HelmRelease: observability/victoria-logs
@@ -6,34 +6,19 @@
app.kubernetes.io/name: victoria-logs
kustomize.toolkit.fluxcd.io/name: victoria-logs
kustomize.toolkit.fluxcd.io/namespace: observability
name: victoria-logs
namespace: observability
spec:
- chart:
- spec:
- chart: victoria-logs-single
- sourceRef:
- kind: HelmRepository
- name: victoria-metrics
- namespace: flux-system
- version: 0.12.2
- install:
- createNamespace: false
- remediation:
- retries: 3
- interval: 30m
- timeout: 15m
- upgrade:
- cleanupOnFail: true
- remediation:
- retries: 3
+ chartRef:
+ kind: OCIRepository
+ name: victoria-logs
+ interval: 1h
values:
- fullnameOverride: victoria-logs
server:
- enabled: true
+ fullnameOverride: victoria-logs
persistentVolume:
enabled: true
size: 20Gi
storageClassName: ceph-block
resources:
limits:
@@ -61,7 +46,9 @@
parentRefs:
- name: internal
namespace: kube-system
sectionName: https
serviceMonitor:
enabled: true
+ vector:
+ enabled: false
--- kubernetes/apps/observability/victoria-logs/app Kustomization: observability/victoria-logs OCIRepository: observability/victoria-logs
+++ kubernetes/apps/observability/victoria-logs/app Kustomization: observability/victoria-logs OCIRepository: observability/victoria-logs
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-logs
+ kustomize.toolkit.fluxcd.io/name: victoria-logs
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: victoria-logs
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 0.12.3
+ url: oci://ghcr.io/victoriametrics/helm-charts/victoria-logs-single
+
--- kubernetes/apps/observability/grafana/app Kustomization: observability/grafana HelmRelease: observability/grafana
+++ kubernetes/apps/observability/grafana/app Kustomization: observability/grafana HelmRelease: observability/grafana
@@ -1,301 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- kustomize.toolkit.fluxcd.io/name: grafana
- kustomize.toolkit.fluxcd.io/namespace: observability
- name: grafana
- namespace: observability
-spec:
- chart:
- spec:
- chart: grafana
- sourceRef:
- kind: HelmRepository
- name: grafana
- namespace: flux-system
- version: 10.5.15
- install:
- remediation:
- retries: 3
- interval: 1h
- upgrade:
- cleanupOnFail: true
- remediation:
- retries: 3
- strategy: rollback
- values:
- admin:
- existingSecret: grafana-secret
- dashboardProviders:
- dashboardproviders.yaml:
- apiVersion: 1
- providers:
- - disableDeletion: false
- editable: true
- folder: ''
- name: default
- options:
- path: /var/lib/grafana/dashboards/default
- orgId: 1
- type: file
- - disableDeletion: false
- editable: true
- folder: Ceph
- name: ceph
- options:
- path: /var/lib/grafana/dashboards/ceph
- orgId: 1
- type: file
- - disableDeletion: false
- editable: true
- folder: Flux
- name: flux
- options:
- path: /var/lib/grafana/dashboards/flux
- orgId: 1
- type: file
- - disableDeletion: false
- editable: true
- folder: Kubernetes
- name: kubernetes
- options:
- path: /var/lib/grafana/dashboards/kubernetes
- orgId: 1
- type: file
- - disableDeletion: false
- editable: true
- folder: Unifi
- name: unifi
- options:
- path: /var/lib/grafana/dashboards/unifi
- orgId: 1
- type: file
- dashboards:
- ceph:
- ceph-cluster:
- datasource: Prometheus
- gnetId: 2842
- revision: 17
- ceph-osd:
- datasource: Prometheus
- gnetId: 5336
- revision: 9
- ceph-pools:
- datasource: Prometheus
- gnetId: 5342
- revision: 9
- default:
- blackbox-exporter:
- datasource: Prometheus
- gnetId: 7587
- revision: 3
- cert-manager:
- datasource: Prometheus
- gnetId: 20842
- revision: 3
- cloudflared:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- gnetId: 17457
- revision: 6
- external-dns:
- datasource: Prometheus
- gnetId: 15038
- revision: 3
- external-secrets:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/external-secrets/external-secrets/main/docs/snippets/dashboard.json
- gatus:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/TwiN/gatus/master/.examples/docker-compose-grafana-prometheus/grafana/provisioning/dashboards/gatus.json
- node-exporter-full:
- datasource: Prometheus
- gnetId: 1860
- revision: 45
- node-feature-discovery:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/examples/grafana-dashboard.json
- prometheus:
- datasource: Prometheus
- gnetId: 19105
- revision: 9
- smartctl-exporter:
- datasource:
- - name: DS_VICTORIAMETRICS
- value: Prometheus
- gnetId: 22381
- revision: 1
- spegel:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- gnetId: 18089
- revision: 1
- unpackerr:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- gnetId: 18817
- revision: 1
- volsync:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- gnetId: 21356
- revision: 3
- flux:
- flux-cluster:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- url: https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/refs/heads/main/monitoring/configs/dashboards/cluster.json
- flux-control-plane:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- url: https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/refs/heads/main/monitoring/configs/dashboards/control-plane.json
- flux-k8s-api-performance:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- url: https://raw.githubusercontent.com/controlplaneio-fluxcd/flux-operator/refs/heads/main/config/monitoring/dashboards/flux-k8s-api-performance.json
- flux-performance:
- datasource:
- - name: DS_PROMETHEUS
- value: Prometheus
- url: https://raw.githubusercontent.com/controlplaneio-fluxcd/flux-operator/refs/heads/main/config/monitoring/dashboards/flux-performance.json
- kubernetes:
- kubernetes-api-server:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-system-api-server.json
- kubernetes-coredns:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-system-coredns.json
- kubernetes-global:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-global.json
- kubernetes-namespaces:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-namespaces.json
- kubernetes-nodes:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-nodes.json
- kubernetes-pods:
- datasource: Prometheus
- url: https://raw.githubusercontent.com/dotdc/grafana-dashboards-kubernetes/master/dashboards/k8s-views-pods.json
- unifi:
- unifi-insights:
- datasource: Prometheus
- gnetId: 11315
- revision: 9
- unifi-network-sites:
- datasource: Prometheus
- gnetId: 11311
- revision: 5
- unifi-uap:
- datasource: Prometheus
- gnetId: 11314
- revision: 10
- unifi-usw:
- datasource: Prometheus
- gnetId: 11312
- revision: 9
- datasources:
- datasources.yaml:
- apiVersion: 1
- datasources:
- - access: proxy
- isDefault: true
- jsonData:
- timeInterval: 1m
- name: VictoriaMetrics
- type: prometheus
- uid: prometheus
- url: http://vmsingle-vm.observability.svc.cluster.local:8428
- - access: proxy
- jsonData:
- maxLines: 500
- name: VictoriaLogs
- type: loki
- uid: loki
- url: http://victoria-logs-server.observability.svc.cluster.local:9428
- deleteDatasources:
- - name: Alertmanager
- orgId: 1
- - name: Loki
- orgId: 1
- - name: Prometheus
- orgId: 1
- deploymentStrategy:
- type: Recreate
- env:
- GF_DATE_FORMATS_USE_BROWSER_LOCALE: true
- GF_EXPLORE_ENABLED: true
- GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: natel-discrete-panel,pr0ps-trackmap-panel,panodata-map-panel
- GF_SECURITY_ANGULAR_SUPPORT_ENABLED: true
- GF_SERVER_ROOT_URL: https://{{ .Release.Name }}.${SECRET_DOMAIN}
- grafana.ini:
- analytics:
- check_for_plugin_updates: false
- check_for_updates: false
- reporting_enabled: false
- auth.anonymous:
- enabled: true
- org_id: 1
- org_name: Main Org.
- org_role: Viewer
- news:
- news_feed_enabled: false
- persistence:
- enabled: false
- plugins:
- - grafana-clock-panel
- - grafana-piechart-panel
- - grafana-worldmap-panel
- - natel-discrete-panel
- - pr0ps-trackmap-panel
- - vonage-status-panel
- resources:
- limits:
- memory: 1Gi
- requests:
- cpu: 100m
- memory: 128Mi
- route:
- main:
- annotations:
- glance/description: Grafana dashboard for observability and monitoring.
- glance/icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/grafana.png
- glance/name: Grafana
- glance/show: 'true'
- enabled: true
- hostnames:
- - '{{ .Release.Name }}.juno.moe'
- parentRefs:
- - name: internal
- namespace: kube-system
- sectionName: https
- serviceMonitor:
- enabled: true
- sidecar:
- dashboards:
- enabled: false
- folderAnnotation: grafana_folder
- label: grafana_dashboard
- labelValue: ''
- provider:
- disableDelete: true
- foldersFromFilesStructure: true
- searchNamespace: ALL
- datasources:
- enabled: true
- label: grafana_datasource
- labelValue: ''
- searchNamespace: ALL
- testFramework:
- enabled: false
-
--- kubernetes/apps/observability/grafana/app Kustomization: observability/grafana ExternalSecret: observability/grafana
+++ kubernetes/apps/observability/grafana/app Kustomization: observability/grafana ExternalSecret: observability/grafana
@@ -1,26 +0,0 @@
----
-apiVersion: external-secrets.io/v1
-kind: ExternalSecret
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- kustomize.toolkit.fluxcd.io/name: grafana
- kustomize.toolkit.fluxcd.io/namespace: observability
- name: grafana
- namespace: observability
-spec:
- dataFrom:
- - extract:
- key: grafana
- secretStoreRef:
- kind: ClusterSecretStore
- name: onepassword-connect
- target:
- creationPolicy: Owner
- name: grafana-secret
- template:
- data:
- admin-password: '{{ .GRAFANA_ADMIN_PASS }}'
- admin-user: '{{ .GRAFANA_ADMIN_USER }}'
- engineVersion: v2
-
--- kubernetes/apps/observability/grafana/app Kustomization: observability/grafana ExternalSecret: observability/grafana-admin-password
+++ kubernetes/apps/observability/grafana/app Kustomization: observability/grafana ExternalSecret: observability/grafana-admin-password
@@ -0,0 +1,23 @@
+---
+apiVersion: external-secrets.io/v1
+kind: ExternalSecret
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ kustomize.toolkit.fluxcd.io/name: grafana
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: grafana-admin-password
+ namespace: observability
+spec:
+ dataFrom:
+ - extract:
+ key: grafana
+ secretStoreRef:
+ kind: ClusterSecretStore
+ name: onepassword-connect
+ target:
+ name: grafana-admin-password-secret
+ template:
+ data:
+ GF_SECURITY_ADMIN_PASSWORD: '{{ .GRAFANA_ADMIN_PASS }}'
+
--- kubernetes/apps/observability/grafana/app Kustomization: observability/grafana HelmRelease: observability/grafana-operator
+++ kubernetes/apps/observability/grafana/app Kustomization: observability/grafana HelmRelease: observability/grafana-operator
@@ -0,0 +1,21 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ kustomize.toolkit.fluxcd.io/name: grafana
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: grafana-operator
+ namespace: observability
+spec:
+ chartRef:
+ kind: OCIRepository
+ name: grafana-operator
+ interval: 1h
+ values:
+ dashboard:
+ enabled: true
+ serviceMonitor:
+ enabled: true
+
--- kubernetes/apps/observability/grafana/app Kustomization: observability/grafana OCIRepository: observability/grafana-operator
+++ kubernetes/apps/observability/grafana/app Kustomization: observability/grafana OCIRepository: observability/grafana-operator
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ kustomize.toolkit.fluxcd.io/name: grafana
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: grafana-operator
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 5.22.2
+ url: oci://ghcr.io/grafana/helm-charts/grafana-operator
+
--- kubernetes/apps/observability/alloy/app Kustomization: observability/alloy HelmRelease: observability/alloy
+++ kubernetes/apps/observability/alloy/app Kustomization: observability/alloy HelmRelease: observability/alloy
@@ -1,69 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: alloy
- kustomize.toolkit.fluxcd.io/name: alloy
- kustomize.toolkit.fluxcd.io/namespace: observability
- name: alloy
- namespace: observability
-spec:
- chart:
- spec:
- chart: alloy
- sourceRef:
- kind: HelmRepository
- name: grafana
- namespace: flux-system
- version: '>=1.0.0'
- install:
- createNamespace: false
- remediation:
- retries: 3
- interval: 30m
- timeout: 15m
- upgrade:
- cleanupOnFail: true
- remediation:
- retries: 3
- values:
- alloy:
- config: |
- discovery.kubernetes "pods" {
- role = "pod"
- }
-
- loki.source.kubernetes "pod_logs" {
- discovery = discovery.kubernetes.pods.targets
- format = "json"
- forward_to = [loki.process.add_labels.receiver]
- }
-
- loki.process "add_labels" {
- stage.labels {
- values = {
- cluster = "main",
- }
- }
- forward_to = [loki.write.victoria_logs.receiver]
- }
-
- loki.write "victoria_logs" {
- endpoint {
- url = "http://victoria-logs-server.observability.svc.cluster.local:9428/loki/api/v1/push"
- }
- }
- configMap:
- create: true
- fullnameOverride: alloy
- replicas: 1
- resources:
- limits:
- memory: 512Mi
- requests:
- cpu: 50m
- memory: 256Mi
- serviceMonitor:
- enabled: true
-
--- kubernetes/apps/observability/node-exporter/app Kustomization: observability/node-exporter HelmRelease: observability/node-exporter
+++ kubernetes/apps/observability/node-exporter/app Kustomization: observability/node-exporter HelmRelease: observability/node-exporter
@@ -0,0 +1,42 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ labels:
+ app.kubernetes.io/name: node-exporter
+ kustomize.toolkit.fluxcd.io/name: node-exporter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: node-exporter
+ namespace: observability
+spec:
+ chartRef:
+ kind: OCIRepository
+ name: node-exporter
+ interval: 1h
+ values:
+ fullnameOverride: node-exporter
+ hostNetwork: false
+ prometheus:
+ monitor:
+ enabled: true
+ jobLabel: app.kubernetes.io/instance
+ relabelings:
+ - action: replace
+ regex: (.*)
+ replacement: $1
+ sourceLabels:
+ - __meta_kubernetes_pod_node_name
+ targetLabel: kubernetes_node
+ - action: replace
+ regex: (.*)
+ replacement: $1
+ sourceLabels:
+ - __meta_kubernetes_pod_node_name
+ targetLabel: nodename
+ resources:
+ limits:
+ memory: 64M
+ requests:
+ cpu: 10m
+ memory: 64M
+
--- kubernetes/apps/observability/node-exporter/app Kustomization: observability/node-exporter OCIRepository: observability/node-exporter
+++ kubernetes/apps/observability/node-exporter/app Kustomization: observability/node-exporter OCIRepository: observability/node-exporter
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: node-exporter
+ kustomize.toolkit.fluxcd.io/name: node-exporter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: node-exporter
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 4.55.0
+ url: oci://ghcr.io/prometheus-community/charts/prometheus-node-exporter
+
--- kubernetes/apps/observability/prometheus-adapter/app Kustomization: observability/prometheus-adapter HelmRelease: observability/prometheus-adapter
+++ kubernetes/apps/observability/prometheus-adapter/app Kustomization: observability/prometheus-adapter HelmRelease: observability/prometheus-adapter
@@ -0,0 +1,29 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ labels:
+ app.kubernetes.io/name: prometheus-adapter
+ kustomize.toolkit.fluxcd.io/name: prometheus-adapter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: prometheus-adapter
+ namespace: observability
+spec:
+ chartRef:
+ kind: OCIRepository
+ name: prometheus-adapter
+ interval: 1h
+ values:
+ prometheus:
+ port: 8428
+ url: http://vmsingle-vm.observability.svc.cluster.local
+ rules:
+ default: false
+ external:
+ - metricsQuery: max_over_time(<<.Series>>{<<.LabelMatchers>>}[1m])
+ name:
+ as: probe_success
+ resources:
+ namespaced: false
+ seriesQuery: '{__name__="probe_success"}'
+
--- kubernetes/apps/observability/prometheus-adapter/app Kustomization: observability/prometheus-adapter OCIRepository: observability/prometheus-adapter
+++ kubernetes/apps/observability/prometheus-adapter/app Kustomization: observability/prometheus-adapter OCIRepository: observability/prometheus-adapter
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: prometheus-adapter
+ kustomize.toolkit.fluxcd.io/name: prometheus-adapter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: prometheus-adapter
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 5.3.0
+ url: oci://ghcr.io/prometheus-community/charts/prometheus-adapter
+
--- kubernetes/apps/observability/kube-state-metrics/app Kustomization: observability/kube-state-metrics HelmRelease: observability/kube-state-metrics
+++ kubernetes/apps/observability/kube-state-metrics/app Kustomization: observability/kube-state-metrics HelmRelease: observability/kube-state-metrics
@@ -0,0 +1,384 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ labels:
+ app.kubernetes.io/name: kube-state-metrics
+ kustomize.toolkit.fluxcd.io/name: kube-state-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kube-state-metrics
+ namespace: observability
+spec:
+ chartRef:
+ kind: OCIRepository
+ name: kube-state-metrics
+ interval: 1h
+ values:
+ customResourceState:
+ config:
+ spec:
+ resources:
+ - groupVersionKind:
+ group: kustomize.toolkit.fluxcd.io
+ kind: Kustomization
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux Kustomization resource.
+ labelsFromPath:
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - lastAppliedRevision
+ source_name:
+ - spec
+ - sourceRef
+ - name
+ suspended:
+ - spec
+ - suspend
+ name: resource_info
+ - groupVersionKind:
+ group: helm.toolkit.fluxcd.io
+ kind: HelmRelease
+ version: v2
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux HelmRelease resource.
+ labelsFromPath:
+ chart_app_version:
+ - status
+ - history
+ - '0'
+ - appVersion
+ chart_name:
+ - status
+ - history
+ - '0'
+ - chartName
+ chart_ref_name:
+ - spec
+ - chartRef
+ - name
+ chart_source_name:
+ - spec
+ - chart
+ - spec
+ - sourceRef
+ - name
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - history
+ - '0'
+ - chartVersion
+ suspended:
+ - spec
+ - suspend
+ name: resource_info
+ - groupVersionKind:
+ group: source.toolkit.fluxcd.io
+ kind: GitRepository
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux GitRepository resource.
+ labelsFromPath:
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - artifact
+ - revision
+ suspended:
+ - spec
+ - suspend
+ url:
+ - spec
+ - url
+ name: resource_info
+ - groupVersionKind:
+ group: source.toolkit.fluxcd.io
+ kind: Bucket
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux Bucket resource.
+ labelsFromPath:
+ bucket_name:
+ - spec
+ - bucketName
+ endpoint:
+ - spec
+ - endpoint
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - artifact
+ - revision
+ suspended:
+ - spec
+ - suspend
+ name: resource_info
+ - groupVersionKind:
+ group: source.toolkit.fluxcd.io
+ kind: HelmRepository
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux HelmRepository resource.
+ labelsFromPath:
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - artifact
+ - revision
+ suspended:
+ - spec
+ - suspend
+ url:
+ - spec
+ - url
+ name: resource_info
+ - groupVersionKind:
+ group: source.toolkit.fluxcd.io
+ kind: HelmChart
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux HelmChart resource.
+ labelsFromPath:
+ chart_name:
+ - spec
+ - chart
+ chart_version:
+ - spec
+ - version
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - artifact
+ - revision
+ suspended:
+ - spec
+ - suspend
+ name: resource_info
+ - groupVersionKind:
+ group: source.toolkit.fluxcd.io
+ kind: OCIRepository
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux OCIRepository resource.
+ labelsFromPath:
+ exported_namespace:
+ - metadata
+ - namespace
+ ready:
+ - status
+ - conditions
+ - '[type=Ready]'
+ - status
+ revision:
+ - status
+ - artifact
+ - revision
+ suspended:
+ - spec
+ - suspend
+ url:
+ - spec
+ - url
+ name: resource_info
+ - groupVersionKind:
+ group: notification.toolkit.fluxcd.io
+ kind: Alert
+ version: v1beta3
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux Alert resource.
+ labelsFromPath:
+ exported_namespace:
+ - metadata
+ - namespace
+ suspended:
+ - spec
+ - suspend
+ name: resource_info
+ - groupVersionKind:
+ group: notification.toolkit.fluxcd.io
+ kind: Provider
+ version: v1beta3
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
+ name:
+ - metadata
+ - name
+ type: Info
+ help: The current state of a Flux Provider resource.
+ labelsFromPath:
+ exported_namespace:
+ - metadata
+ - namespace
+ suspended:
+ - spec
+ - suspend
+ name: resource_info
+ - groupVersionKind:
+ group: notification.toolkit.fluxcd.io
+ kind: Receiver
+ version: v1
+ metricNamePrefix: gotk
+ metrics:
+ - each:
+ info:
+ labelsFromPath:
[Diff truncated by flux-local]
--- kubernetes/apps/observability/kube-state-metrics/app Kustomization: observability/kube-state-metrics OCIRepository: observability/kube-state-metrics
+++ kubernetes/apps/observability/kube-state-metrics/app Kustomization: observability/kube-state-metrics OCIRepository: observability/kube-state-metrics
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: kube-state-metrics
+ kustomize.toolkit.fluxcd.io/name: kube-state-metrics
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: kube-state-metrics
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 7.3.0
+ url: oci://ghcr.io/prometheus-community/charts/kube-state-metrics
+
--- kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter GrafanaDashboard: observability/smartctl-exporter
+++ kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter GrafanaDashboard: observability/smartctl-exporter
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: smartctl-exporter
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/22604/revisions/2/download
+
--- kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter HelmRelease: observability/smartctl-exporter
+++ kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter HelmRelease: observability/smartctl-exporter
@@ -0,0 +1,22 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ labels:
+ app.kubernetes.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: smartctl-exporter
+ namespace: observability
+spec:
+ chartRef:
+ kind: OCIRepository
+ name: smartctl-exporter
+ interval: 1h
+ values:
+ fullnameOverride: smartctl-exporter
+ prometheusRules:
+ enabled: false
+ serviceMonitor:
+ enabled: true
+
--- kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter PrometheusRule: observability/smartctl-exporter-rules
+++ kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter PrometheusRule: observability/smartctl-exporter-rules
@@ -0,0 +1,47 @@
+---
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+ labels:
+ app.kubernetes.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: smartctl-exporter-rules
+ namespace: observability
+spec:
+ groups:
+ - name: smartctl-exporter.rules
+ rules:
+ - alert: SmartDeviceHighTemperature
+ annotations:
+ summary: "Mounted drive {{ $labels.device }} on device {{ $labels.instance\
+ \ }} has a temperature higher than 65\xB0C"
+ expr: smartctl_device_temperature{temperature_type="current"} > 65
+ for: 5m
+ labels:
+ severity: critical
+ - alert: SmartDeviceTestFailed
+ annotations:
+ summary: Mounted drive {{ $labels.device }} on device {{ $labels.instance
+ }} did not pass its SMART test
+ expr: (smartctl_device_smart_status != 1 or smartctl_device_status != 1)
+ for: 5m
+ labels:
+ severity: critical
+ - alert: SmartDeviceCriticalWarning
+ annotations:
+ summary: Mounted drive {{ $labels.device }} on device {{ $labels.instance
+ }} is in a critical state
+ expr: smartctl_device_critical_warning != 0
+ for: 5m
+ labels:
+ severity: critical
+ - alert: SmartDeviceMediaErrors
+ annotations:
+ summary: Mounted drive {{ $labels.device }} on device {{ $labels.instance
+ }} has media errors
+ expr: smartctl_device_media_errors != 0
+ for: 5m
+ labels:
+ severity: critical
+
--- kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter OCIRepository: observability/smartctl-exporter
+++ kubernetes/apps/observability/smartctl-exporter/app Kustomization: observability/smartctl-exporter OCIRepository: observability/smartctl-exporter
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/name: smartctl-exporter
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: smartctl-exporter
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 0.16.0
+ url: oci://ghcr.io/prometheus-community/charts/prometheus-smartctl-exporter
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance Grafana: observability/grafana
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance Grafana: observability/grafana
@@ -0,0 +1,82 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: Grafana
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ dashboards: grafana
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: grafana
+ namespace: observability
+spec:
+ config:
+ analytics:
+ check_for_plugin_updates: 'false'
+ check_for_updates: 'false'
+ feedback_links_enabled: 'false'
+ reporting_enabled: 'false'
+ auth:
+ disable_login_form: 'false'
+ auth.anonymous:
+ enabled: 'true'
+ log:
+ mode: console
+ metrics:
+ enabled: 'true'
+ news:
+ news_feed_enabled: 'false'
+ plugins:
+ plugin_admin_enabled: 'false'
+ security:
+ angular_support_enabled: 'true'
+ server:
+ enable_gzip: 'true'
+ deployment:
+ spec:
+ strategy:
+ type: Recreate
+ template:
+ spec:
+ containers:
+ - env:
+ - name: GF_SECURITY_ADMIN_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ key: GF_SECURITY_ADMIN_PASSWORD
+ name: grafana-admin-password-secret
+ name: grafana
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
+ securityContext:
+ fsGroup: 1000
+ fsGroupChangePolicy: OnRootMismatch
+ runAsGroup: 1000
+ runAsNonRoot: true
+ runAsUser: 1000
+ volumes:
+ - name: grafana-data
+ persistentVolumeClaim:
+ claimName: grafana-pvc
+ disableDefaultSecurityContext: All
+ httpRoute:
+ spec:
+ hostnames:
+ - grafana.juno.moe
+ parentRefs:
+ - name: internal
+ namespace: kube-system
+ sectionName: https
+ persistentVolumeClaim:
+ spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 5Gi
+ storageClassName: ceph-block
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/blackbox-exporter
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/blackbox-exporter
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: blackbox-exporter
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/7587/revisions/3/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/cert-manager
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/cert-manager
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: cert-manager
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/20842/revisions/3/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/cloudflared
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/cloudflared
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: cloudflared
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/17457/revisions/6/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/external-dns
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/external-dns
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: external-dns
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/15038/revisions/3/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/external-secrets
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/external-secrets
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: external-secrets
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/external-secrets/external-secrets/main/docs/snippets/dashboard.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/gatus
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/gatus
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: gatus
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/TwiN/gatus/master/.examples/docker-compose-grafana-prometheus/grafana/provisioning/dashboards/gatus.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/node-exporter-full
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/node-exporter-full
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: node-exporter-full
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/1860/revisions/45/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/node-feature-discovery
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/node-feature-discovery
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: node-feature-discovery
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/examples/grafana-dashboard.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/spegel
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/spegel
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: spegel
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/18089/revisions/1/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/unpackerr
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/unpackerr
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: unpackerr
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/18817/revisions/1/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/volsync
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/volsync
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: volsync
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/21356/revisions/3/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/ceph-cluster
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/ceph-cluster
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: ceph-cluster
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/2842/revisions/17/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/ceph-osd
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/ceph-osd
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: ceph-osd
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/5336/revisions/9/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/ceph-pools
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/ceph-pools
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: ceph-pools
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://grafana.com/api/dashboards/5342/revisions/9/download
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-cluster
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-cluster
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: flux-cluster
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/refs/heads/main/monitoring/configs/dashboards/cluster.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-control-plane
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-control-plane
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: flux-control-plane
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/refs/heads/main/monitoring/configs/dashboards/control-plane.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-k8s-api-performance
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-k8s-api-performance
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: flux-k8s-api-performance
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/controlplaneio-fluxcd/flux-operator/refs/heads/main/config/monitoring/dashboards/flux-k8s-api-performance.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-performance
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance GrafanaDashboard: observability/flux-performance
@@ -0,0 +1,20 @@
+---
+apiVersion: grafana.integreatly.org/v1beta1
+kind: GrafanaDashboard
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: flux-performance
+ namespace: observability
+spec:
+ allowCrossNamespaceImport: true
+ datasources:
+ - datasourceName: VictoriaMetrics
+ inputName: DS_PROMETHEUS
+ instanceSelector:
+ matchLabels:
+ dashboards: grafana
+ url: https://raw.githubusercontent.com/controlplaneio-fluxcd/flux-operator/refs/heads/main/config/monitoring/dashboards/flux-performance.json
+
--- kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance ServiceMonitor: observability/grafana
+++ kubernetes/apps/observability/grafana/instance Kustomization: observability/grafana-instance ServiceMonitor: observability/grafana
@@ -0,0 +1,23 @@
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/name: grafana-instance
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: grafana
+ namespace: observability
+spec:
+ endpoints:
+ - honorLabels: true
+ path: /metrics
+ port: grafana
+ jobLabel: grafana
+ namespaceSelector:
+ matchNames:
+ - observability
+ selector:
+ matchLabels:
+ dashboards: grafana
+
--- kubernetes/apps/observability/victoria-logs/collector Kustomization: observability/victoria-logs-collector HelmRelease: observability/victoria-logs-collector
+++ kubernetes/apps/observability/victoria-logs/collector Kustomization: observability/victoria-logs-collector HelmRelease: observability/victoria-logs-collector
@@ -0,0 +1,22 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-logs-collector
+ kustomize.toolkit.fluxcd.io/name: victoria-logs-collector
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: victoria-logs-collector
+ namespace: observability
+spec:
+ chartRef:
+ kind: OCIRepository
+ name: victoria-logs-collector
+ interval: 1h
+ values:
+ fullnameOverride: victoria-logs-collector
+ podMonitor:
+ enabled: true
+ remoteWrite:
+ - url: http://victoria-logs.observability.svc.cluster.local:9428
+
--- kubernetes/apps/observability/victoria-logs/collector Kustomization: observability/victoria-logs-collector OCIRepository: observability/victoria-logs-collector
+++ kubernetes/apps/observability/victoria-logs/collector Kustomization: observability/victoria-logs-collector OCIRepository: observability/victoria-logs-collector
@@ -0,0 +1,19 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: OCIRepository
+metadata:
+ labels:
+ app.kubernetes.io/name: victoria-logs-collector
+ kustomize.toolkit.fluxcd.io/name: victoria-logs-collector
+ kustomize.toolkit.fluxcd.io/namespace: observability
+ name: victoria-logs-collector
+ namespace: observability
+spec:
+ interval: 15m
+ layerSelector:
+ mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
+ operation: copy
+ ref:
+ tag: 0.3.3
+ url: oci://ghcr.io/victoriametrics/helm-charts/victoria-logs-collector
+ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…rvability stack
What's Changed
Type of Change
Notes and apps affected