feat: Expose Grafana, Prometheus, and Flux UI via Tailscale LoadBalancer services
All checks were successful
Deploy Cluster / Terraform (push) Successful in 55s
Deploy Cluster / Ansible (push) Successful in 20m47s

Replace Ansible port-forwarding + tailscale serve with direct Tailscale LB
services matching the existing Rancher pattern. Each service gets its own
tailnet hostname (grafana/prometheus/flux.silverside-gopher.ts.net).
This commit is contained in:
2026-03-31 08:53:28 +00:00
parent 569d741751
commit b8f64fa952
10 changed files with 65 additions and 40 deletions

View File

@@ -0,0 +1,18 @@
apiVersion: v1
kind: Service
metadata:
name: grafana-tailscale
namespace: observability
annotations:
tailscale.com/hostname: grafana
tailscale.com/proxy-class: infra-stable
spec:
type: LoadBalancer
loadBalancerClass: tailscale
selector:
app.kubernetes.io/name: grafana
ports:
- name: http
port: 80
protocol: TCP
targetPort: 3000

View File

@@ -29,8 +29,8 @@ spec:
password: admin123
grafana.ini:
server:
root_url: http://observability/grafana/
serve_from_sub_path: true
root_url: http://grafana.silverside-gopher.ts.net/
serve_from_sub_path: false
persistence:
enabled: true
storageClassName: local-path
@@ -50,8 +50,8 @@ spec:
service:
type: ClusterIP
prometheusSpec:
externalUrl: http://observability/prometheus/
routePrefix: /prometheus/
externalUrl: http://prometheus.silverside-gopher.ts.net/
routePrefix: /
retention: 7d
storageSpec:
volumeClaimTemplate:

View File

@@ -2,12 +2,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
# - grafana-admin-externalsecret.yaml # Using static password for stable baseline
# - traefik-tailscale-service.yaml # Deferred - complex dependency on tailscale operator
# - grafana-ingress.yaml # Deferred - requires tailscale service
# - prometheus-ingress.yaml # Deferred - requires tailscale service
- helmrepository-prometheus-community.yaml
- helmrepository-grafana.yaml
- helmrelease-kube-prometheus-stack.yaml
- helmrelease-loki.yaml
- helmrelease-promtail.yaml
- grafana-tailscale-service.yaml
- prometheus-tailscale-service.yaml

View File

@@ -0,0 +1,18 @@
apiVersion: v1
kind: Service
metadata:
name: prometheus-tailscale
namespace: observability
annotations:
tailscale.com/hostname: prometheus
tailscale.com/proxy-class: infra-stable
spec:
type: LoadBalancer
loadBalancerClass: tailscale
selector:
app.kubernetes.io/name: prometheus
ports:
- name: http
port: 9090
protocol: TCP
targetPort: 9090