Skip to content

Commit 136a29c

Browse files
feat: enable Traefik ServiceMonitor in deploy-monitoring.sh and update deploy-stack.sh for improved observability
1 parent 6bffabf commit 136a29c

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

kubernetes/ingress/traefik-values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ metrics:
7676
addEntryPointsLabels: true
7777
addRoutersLabels: true
7878
addServicesLabels: true
79-
# ServiceMonitor: auto-discovered by kube-prometheus-stack's Prometheus Operator
79+
# ServiceMonitor: enabled by deploy-monitoring.sh once kube-prometheus-stack CRDs exist
8080
disableAPICheck: true
8181
serviceMonitor:
82-
enabled: true
82+
enabled: false
8383
namespace: ingress
8484
jobLabel: traefik
8585
interval: 30s

scripts/deploy-monitoring.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,18 @@ kubectl rollout status deployment/kube-prometheus-stack-grafana -n monitoring --
8080
log_info "Waiting for Prometheus to be ready..."
8181
kubectl rollout status statefulset/prometheus-kube-prometheus-stack-prometheus -n monitoring --timeout=120s
8282

83+
# Enable Traefik ServiceMonitor now that kube-prometheus-stack CRDs exist
84+
log_step "Enabling Traefik ServiceMonitor..."
85+
helm upgrade traefik traefik/traefik \
86+
--namespace ingress \
87+
--reuse-values \
88+
--set "metrics.prometheus.serviceMonitor.enabled=true" \
89+
--set "metrics.prometheus.serviceMonitor.namespace=ingress" \
90+
--set "metrics.prometheus.serviceMonitor.jobLabel=traefik" \
91+
--set "metrics.prometheus.serviceMonitor.interval=30s" \
92+
--wait \
93+
--timeout 60s
94+
8395
# --- 3. Loki ---
8496
log_step "[3/5] Loki ${LOKI_VERSION}..."
8597
helm upgrade --install loki grafana/loki \

scripts/deploy-stack.sh

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,8 @@ log_info "Deploying base stack on cluster: $(kubectl config current-context)"
4141
log_step "[1/4] Namespaces..."
4242
kubectl apply -f "$(_k8s namespaces/namespaces.yaml)"
4343

44-
# --- 2. Prometheus Operator CRDs (required by Traefik ServiceMonitor) ---
45-
log_step "[2/5] Prometheus Operator CRDs..."
46-
PROM_OPERATOR_VERSION="${PROM_OPERATOR_VERSION:-v0.82.0}"
47-
kubectl apply --server-side -f \
48-
"https://github.com/prometheus-operator/prometheus-operator/releases/download/${PROM_OPERATOR_VERSION}/stripped-down-crds.yaml"
49-
50-
# --- 3. Traefik (Ingress Controller) ---
51-
log_step "[3/5] Traefik ${TRAEFIK_CHART_VERSION}..."
44+
# --- 2. Traefik (Ingress Controller) ---
45+
log_step "[2/4] Traefik ${TRAEFIK_CHART_VERSION}..."
5246
helm repo add traefik https://helm.traefik.io/traefik --force-update
5347
helm repo update traefik
5448
# Kubernetes forbids loopback addresses as externalIPs; skip the flag for local Lima testing.
@@ -70,8 +64,8 @@ helm upgrade --install traefik traefik/traefik \
7064
log_info "Waiting for Traefik to be ready..."
7165
kubectl rollout status deployment/traefik -n ingress --timeout=120s
7266

73-
# --- 4. cert-manager ---
74-
log_step "[4/5] cert-manager ${CERT_MANAGER_VERSION}..."
67+
# --- 3. cert-manager ---
68+
log_step "[3/4] cert-manager ${CERT_MANAGER_VERSION}..."
7569
helm repo add jetstack https://charts.jetstack.io --force-update
7670
helm repo update jetstack
7771
helm upgrade --install cert-manager jetstack/cert-manager \
@@ -90,7 +84,7 @@ kubectl rollout status deployment/cert-manager-webhook -n cert-manager --timeout
9084
sleep 10
9185

9286
# --- 4. ClusterIssuers ---
93-
log_step "[5/5] ClusterIssuers..."
87+
log_step "[4/4] ClusterIssuers..."
9488
envsubst < "$(_k8s_file cert-manager/clusterissuer.yaml)" | kubectl apply -f -
9589

9690
# --- 5. Traefik dashboard (optional) ---

0 commit comments

Comments
 (0)