mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
feat: overhaul
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://kubernetes-schemas.zinn.ca/external-secrets.io/externalsecret_v1beta1.json
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: grafana-secrets
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: onepassword-connect
|
||||
target:
|
||||
name: grafana-secret
|
||||
creationPolicy: Owner
|
||||
deletionPolicy: Delete
|
||||
template:
|
||||
engineVersion: v2
|
||||
data:
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET: "{{ .GRAFANA_OAUTH_CLIENT_SECRET }}"
|
||||
dataFrom:
|
||||
- extract:
|
||||
key: authelia
|
353
kubernetes/apps/observability/grafana/app/helmrelease.yaml
Normal file
353
kubernetes/apps/observability/grafana/app/helmrelease.yaml
Normal file
@@ -0,0 +1,353 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: grafana
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: grafana
|
||||
version: 8.8.2
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: grafana
|
||||
namespace: flux-system
|
||||
install:
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
cleanupOnFail: true
|
||||
remediation:
|
||||
retries: 3
|
||||
uninstall:
|
||||
keepHistory: false
|
||||
values:
|
||||
annotations:
|
||||
reloader.stakater.com/auto: "true"
|
||||
secret.reloader.stakater.com/reload: authelia-secret
|
||||
rbac:
|
||||
pspEnabled: false
|
||||
env:
|
||||
GF_AUTH_GENERIC_OAUTH_API_URL: https://auth.${SECRET_EXTERNAL_DOMAIN}/api/oidc/userinfo
|
||||
GF_AUTH_GENERIC_OAUTH_AUTH_URL: https://auth.${SECRET_EXTERNAL_DOMAIN}/api/oidc/authorization
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_ID: grafana
|
||||
GF_AUTH_GENERIC_OAUTH_TOKEN_URL: https://auth.${SECRET_EXTERNAL_DOMAIN}/api/oidc/token
|
||||
GF_DATE_FORMATS_USE_BROWSER_LOCALE: true
|
||||
GF_EXPLORE_ENABLED: true
|
||||
GF_PANELS_DISABLE_SANITIZE_HTML: true
|
||||
GF_LOG_FILTERS: rendering:debug
|
||||
GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: natel-discrete-panel,pr0ps-trackmap-panel,panodata-map-panel
|
||||
GF_DATE_FORMATS_FULL_DATE: DD.MM.YYYY hh:mm:ss
|
||||
GF_SECURITY_ALLOW_EMBEDDING: true
|
||||
GF_SECURITY_COOKIE_SAMESITE: grafana
|
||||
GF_SERVER_ROOT_URL: https://grafana.${SECRET_EXTERNAL_DOMAIN}
|
||||
envFromSecrets:
|
||||
- name: grafana-secret
|
||||
grafana.ini:
|
||||
analytics:
|
||||
check_for_updates: false
|
||||
check_for_plugin_updates: false
|
||||
reporting_enabled: false
|
||||
auth:
|
||||
signout_redirect_url: "https://auth.${SECRET_EXTERNAL_DOMAIN}/logout"
|
||||
oauth_auto_login: true
|
||||
oauth_allow_insecure_email_lookup: true
|
||||
auth.generic_oauth:
|
||||
enabled: true
|
||||
name: Authelia
|
||||
icon: signin
|
||||
scopes: openid profile email groups
|
||||
empty_scopes: false
|
||||
login_attribute_path: preferred_username
|
||||
groups_attribute_path: groups
|
||||
name_attribute_path: name
|
||||
use_pkce: true
|
||||
auth.generic_oauth.group_mapping:
|
||||
org_id: 1
|
||||
role_attribute_path: |
|
||||
contains(groups[*], 'admins') && 'Admin' || contains(groups[*], 'people') && 'Viewer'
|
||||
auth.basic:
|
||||
enabled: false
|
||||
auth.anonymous:
|
||||
enabled: false
|
||||
# org_id: 1
|
||||
# org_role: Viewer
|
||||
news:
|
||||
news_feed_enabled: false
|
||||
dashboardProviders:
|
||||
dashboardproviders.yaml:
|
||||
apiVersion: 1
|
||||
providers:
|
||||
- name: default
|
||||
orgId: 1
|
||||
folder: ""
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/default-folder
|
||||
- name: ceph
|
||||
orgId: 1
|
||||
folder: Ceph
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/ceph-folder
|
||||
- name: flux
|
||||
orgId: 1
|
||||
folder: Flux
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/flux-folder
|
||||
- name: kubernetes
|
||||
orgId: 1
|
||||
folder: Kubernetes
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/kubernetes-folder
|
||||
- name: nginx
|
||||
orgId: 1
|
||||
folder: Nginx
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/nginx-folder
|
||||
- name: prometheus
|
||||
orgId: 1
|
||||
folder: Prometheus
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/prometheus-folder
|
||||
- name: unifi
|
||||
orgId: 1
|
||||
folder: Unifi
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /var/lib/grafana/dashboards/unifi-folder
|
||||
datasources:
|
||||
datasources.yaml:
|
||||
apiVersion: 1
|
||||
deleteDatasources:
|
||||
- { name: Alertmanager, orgId: 1 }
|
||||
- { name: Loki, orgId: 1 }
|
||||
- { name: Prometheus, orgId: 1 }
|
||||
datasources:
|
||||
- name: Prometheus
|
||||
type: prometheus
|
||||
uid: prometheus
|
||||
access: proxy
|
||||
url: http://prometheus-operated.observability.svc.cluster.local:9090
|
||||
isDefault: true
|
||||
# - name: Loki
|
||||
# type: loki
|
||||
# uid: loki
|
||||
# access: proxy
|
||||
# url: http://loki-gateway.observability.svc.cluster.local.:80
|
||||
- name: Alertmanager
|
||||
type: alertmanager
|
||||
uid: alertmanager
|
||||
access: proxy
|
||||
url: http://alertmanager-operated.observability.svc.cluster.local:9093
|
||||
jsonData:
|
||||
implementation: prometheus
|
||||
dashboards:
|
||||
default:
|
||||
home-assistant:
|
||||
url: https://raw.githubusercontent.com/auricom/home-ops/main/kubernetes/apps/observability/grafana/dashboards/home-assistant.json
|
||||
datasource: Prometheus
|
||||
homelab-temperatures:
|
||||
url: https://raw.githubusercontent.com/auricom/home-ops/main/kubernetes/apps/observability/grafana/dashboards/homelab-temperatures.json
|
||||
datasource: Prometheus
|
||||
external-dns:
|
||||
# renovate: depName="External-dns"
|
||||
gnetId: 15038
|
||||
revision: 3
|
||||
datasource: Prometheus
|
||||
minio:
|
||||
# renovate: depName="MinIO Dashboard"
|
||||
gnetId: 13502
|
||||
revision: 26
|
||||
datasource:
|
||||
- { name: DS_PROMETHEUS, value: Prometheus }
|
||||
node-exporter-full:
|
||||
# renovate: depName="Node Exporter Full"
|
||||
gnetId: 1860
|
||||
revision: 37
|
||||
datasource: Prometheus
|
||||
spegel:
|
||||
# renovate: depName="Spegel"
|
||||
gnetId: 18089
|
||||
revision: 1
|
||||
datasource:
|
||||
- { name: DS_PROMETHEUS, value: Prometheus }
|
||||
zfs:
|
||||
# renovate: depName="ZFS"
|
||||
gnetId: 7845
|
||||
revision: 4
|
||||
datasource: Prometheus
|
||||
cert-manager:
|
||||
url: https://raw.githubusercontent.com/monitoring-mixins/website/master/assets/cert-manager/dashboards/cert-manager.json
|
||||
datasource: Prometheus
|
||||
dragonfly:
|
||||
url: https://raw.githubusercontent.com/dragonflydb/dragonfly/main/tools/local/monitoring/grafana/provisioning/dashboards/dashboard.json
|
||||
datasource: Prometheus
|
||||
external-secrets:
|
||||
url: https://raw.githubusercontent.com/external-secrets/external-secrets/main/docs/snippets/dashboard.json
|
||||
datasource: Prometheus
|
||||
node-feature-discovery:
|
||||
url: https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/examples/grafana-dashboard.json
|
||||
datasource: Prometheus
|
||||
zrepl:
|
||||
url: https://raw.githubusercontent.com/zrepl/zrepl/master/dist/grafana/grafana-prometheus-zrepl.json
|
||||
datasource: Prometheus
|
||||
ceph:
|
||||
ceph-cluster:
|
||||
# renovate: depName="Ceph Cluster"
|
||||
gnetId: 2842
|
||||
revision: 18
|
||||
datasource: Prometheus
|
||||
ceph-osd:
|
||||
# renovate: depName="Ceph - OSD (Single)"
|
||||
gnetId: 5336
|
||||
revision: 9
|
||||
datasource: Prometheus
|
||||
ceph-pools:
|
||||
# renovate: depName="Ceph - Pools"
|
||||
gnetId: 5342
|
||||
revision: 9
|
||||
datasource: Prometheus
|
||||
flux:
|
||||
flux-cluster:
|
||||
url: https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/main/monitoring/configs/dashboards/cluster.json
|
||||
datasource: Prometheus
|
||||
flux-control-plane:
|
||||
url: https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/main/monitoring/configs/dashboards/control-plane.json
|
||||
datasource: Prometheus
|
||||
kubernetes:
|
||||
kubernetes-api-server:
|
||||
# renovate: depName="Kubernetes / System / API Server"
|
||||
gnetId: 15761
|
||||
revision: 18
|
||||
datasource: Prometheus
|
||||
kubernetes-coredns:
|
||||
# renovate: depName="Kubernetes / System / CoreDNS"
|
||||
gnetId: 15762
|
||||
revision: 19
|
||||
datasource: Prometheus
|
||||
kubernetes-global:
|
||||
# renovate: depName="Kubernetes / Views / Global"
|
||||
gnetId: 15757
|
||||
revision: 42
|
||||
datasource: Prometheus
|
||||
kubernetes-namespaces:
|
||||
# renovate: depName="Kubernetes / Views / Namespaces"
|
||||
gnetId: 15758
|
||||
revision: 41
|
||||
datasource: Prometheus
|
||||
kubernetes-nodes:
|
||||
# renovate: depName="Kubernetes / Views / Nodes"
|
||||
gnetId: 15759
|
||||
revision: 32
|
||||
datasource: Prometheus
|
||||
kubernetes-pods:
|
||||
# renovate: depName="Kubernetes / Views / Pods"
|
||||
gNetId: 15760
|
||||
revision: 21
|
||||
datasource: Prometheus
|
||||
kubernetes-volumes:
|
||||
# renovate: depName="K8s / Storage / Volumes / Cluster"
|
||||
gnetId: 11454
|
||||
revision: 14
|
||||
datasource: Prometheus
|
||||
nginx:
|
||||
nginx:
|
||||
url: https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/grafana/dashboards/nginx.json
|
||||
datasource: Prometheus
|
||||
nginx-request-handling-performance:
|
||||
url: https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/grafana/dashboards/request-handling-performance.json
|
||||
datasource: Prometheus
|
||||
prometheus:
|
||||
prometheus:
|
||||
# renovate: depName="Prometheus"
|
||||
gnetId: 19105
|
||||
revision: 6
|
||||
datasource: Prometheus
|
||||
unifi:
|
||||
unifi-insights:
|
||||
# renovate: depName="UniFi-Poller: Client Insights - Prometheus"
|
||||
gnetId: 11315
|
||||
revision: 9
|
||||
datasource: Prometheus
|
||||
unifi-network-sites:
|
||||
# renovate: depName="UniFi-Poller: Network Sites - Prometheus"
|
||||
gnetId: 11311
|
||||
revision: 5
|
||||
datasource: Prometheus
|
||||
unifi-uap:
|
||||
# renovate: depName="UniFi-Poller: UAP Insights - Prometheus"
|
||||
gnetId: 11314
|
||||
revision: 10
|
||||
datasource: Prometheus
|
||||
unifi-usw:
|
||||
# renovate: depName="UniFi-Poller: USW Insights - Prometheus"
|
||||
gnetId: 11312
|
||||
revision: 9
|
||||
datasource: Prometheus
|
||||
sidecar:
|
||||
dashboards:
|
||||
enabled: true
|
||||
searchNamespace: ALL
|
||||
labelValue: ""
|
||||
label: grafana_dashboard
|
||||
folderAnnotation: grafana_folder
|
||||
provider:
|
||||
disableDelete: true
|
||||
foldersFromFilesStructure: true
|
||||
datasources:
|
||||
enabled: true
|
||||
searchNamespace: ALL
|
||||
labelValue: ""
|
||||
plugins:
|
||||
- grafana-clock-panel
|
||||
- grafana-piechart-panel
|
||||
- grafana-worldmap-panel
|
||||
- natel-discrete-panel
|
||||
- pr0ps-trackmap-panel
|
||||
- vonage-status-panel
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: internal
|
||||
annotations:
|
||||
hajimari.io/icon: simple-icons:grafana
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/name: Grafana
|
||||
gethomepage.dev/description: Observability and data visualization platform.
|
||||
gethomepage.dev/group: Infrastructure
|
||||
gethomepage.dev/icon: grafana.png
|
||||
gethomepage.dev/pod-selector: >-
|
||||
app in (
|
||||
grafana
|
||||
)
|
||||
hosts:
|
||||
- &host "grafana.${SECRET_EXTERNAL_DOMAIN}"
|
||||
tls:
|
||||
- hosts:
|
||||
- *host
|
||||
persistence:
|
||||
enabled: false
|
||||
testFramework:
|
||||
enabled: false
|
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./externalsecret.yaml
|
||||
- ./helmrelease.yaml
|
Reference in New Issue
Block a user