Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Flux
uses: fluxcd/flux2/action@main
- name: Setup Kubernetes
uses: helm/kind-action@v1.8.0
uses: helm/kind-action@v1.12.0
with:
cluster_name: flux
version: v0.20.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup yq
uses: fluxcd/pkg/actions/yq@main
- name: Setup kubeconform
Expand Down
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This repository is an example of how to make use of
[kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)
and
[loki-stack](https://github.com/grafana/helm-charts/tree/main/charts/loki-stack)
[loki](https://github.com/grafana/loki/tree/main/production/helm/loki)
to monitor Flux.

Components:
Expand Down Expand Up @@ -72,13 +72,15 @@ After Flux has finished reconciling, you can list the pods in the monitoring nam
```console
$ kubectl -n monitoring get po
NAME READY
kube-prometheus-stack-grafana-5c976ff4cf-xgmwm 3/3
kube-prometheus-stack-kube-state-metrics-5dcf4c4697-jvlvh 1/1
kube-prometheus-stack-operator-75f9fdcbf6-98zmh 1/1
kube-prometheus-stack-prometheus-node-exporter-j4vhb 1/1
loki-stack-0 1/1
loki-stack-promtail-dcg64 1/1
kube-prometheus-stack-grafana-58977b8976-8557b 3/3
kube-prometheus-stack-kube-state-metrics-676657b78f-8w9pd 1/1
kube-prometheus-stack-operator-7467d457b7-4qzks 1/1
kube-prometheus-stack-prometheus-node-exporter-wcwds 1/1
loki-0 2/2
loki-gateway-5669d46565-ldv9f 1/1
loki-minio-0 1/1
prometheus-kube-prometheus-stack-prometheus-0 2/2
promtail-tg5f8 1/1
```

### Accessing Grafana
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ spec:
interval: 1h
url: oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack
ref:
semver: "58.x"
semver: "69.x"
layerSelector:
mediaType: "application/vnd.cncf.helm.chart.content.v1.tar+gzip"
operation: copy
1 change: 1 addition & 0 deletions monitoring/controllers/loki-stack/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ namespace: monitoring
resources:
- repository.yaml
- release.yaml
- promtail-release.yaml
24 changes: 24 additions & 0 deletions monitoring/controllers/loki-stack/promtail-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: promtail
spec:
interval: 5m
timeout: 1m
dependsOn:
- name: kube-prometheus-stack
chart:
spec:
version: "6.x"
chart: promtail
sourceRef:
kind: HelmRepository
name: grafana-charts
interval: 60m
values:
# https://grafana.com/docs/loki/latest/send-data/promtail/installation/
config:
# publish data to loki
clients:
- url: http://loki-gateway/loki/api/v1/push
tenant_id: 1
101 changes: 85 additions & 16 deletions monitoring/controllers/loki-stack/release.yaml
Original file line number Diff line number Diff line change
@@ -1,34 +1,103 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: loki-stack
name: loki
spec:
interval: 5m
dependsOn:
- name: kube-prometheus-stack
chart:
spec:
version: "2.x"
chart: loki-stack
version: "6.x"
chart: loki
sourceRef:
kind: HelmRepository
name: grafana-charts
interval: 60m
# https://github.com/grafana/helm-charts/blob/main/charts/loki-stack/values.yaml
# https://github.com/grafana/loki/blob/main/production/helm/loki/values.yaml
values:
promtail:
enabled: true
chunksCache:
enabled: false
resultsCache:
enabled: false
test:
enabled: false
# following https://github.com/fluxcd/flux2-monitoring-example/pull/23/files#diff-5e041afacf25eb055565b4a1c32d5b81201ddce29c84adf13a6ae88463e0832b
extraObjects:
- apiVersion: v1
kind: ConfigMap
metadata:
name: loki-datasource
labels:
app: loki
chart: loki
release: loki
grafana_datasource: "1"
app.kubernetes.io/part-of: kube-prometheus-stack
data:
loki-datasource.yaml: |-
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
url: http://loki:{{ .Values.loki.server.http_listen_port }}
version: 1
isDefault: false
loki:
enabled: true
isDefault: false
auth_enabled: false
serviceMonitor:
enabled: true
additionalLabels:
labels:
app.kubernetes.io/part-of: kube-prometheus-stack
config:
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: true
retention_period: 12h
limits_config:
allow_structured_metadata: true
retention_period: 24h
volume_enabled: true
# https://grafana.com/docs/loki/latest/setup/install/helm/install-monolithic/
commonConfig:
replication_factor: 1
schemaConfig:
configs:
- from: "2024-04-01"
store: tsdb
object_store: s3
schema: v13
index:
prefix: loki_index_
period: 24h
pattern_ingester:
enabled: true
ruler:
enable_api: true
minio:
enabled: true
lokiCanary:
enabled: false
deploymentMode: SingleBinary
singleBinary:
replicas: 1
# Zero out replica counts of other deployment modes
backend:
replicas: 0
read:
replicas: 0
write:
replicas: 0
ingester:
replicas: 0
querier:
replicas: 0
queryFrontend:
replicas: 0
queryScheduler:
replicas: 0
distributor:
replicas: 0
compactor:
replicas: 0
indexGateway:
replicas: 0
bloomCompactor:
replicas: 0
bloomGateway:
replicas: 0