feat: stabilize tailscale observability exposure with declarative proxy class
This commit is contained in:
31
README.md
31
README.md
@@ -166,6 +166,8 @@ Set these in your Gitea repository settings (**Settings** → **Secrets** → **
|
||||
| `S3_BUCKET` | S3 bucket name (e.g., `k8s-terraform-state`) |
|
||||
| `TAILSCALE_AUTH_KEY` | Tailscale auth key for node bootstrap |
|
||||
| `TAILSCALE_TAILNET` | Tailnet domain (e.g., `yourtailnet.ts.net`) |
|
||||
| `TAILSCALE_OAUTH_CLIENT_ID` | Tailscale OAuth client ID for Kubernetes Operator |
|
||||
| `TAILSCALE_OAUTH_CLIENT_SECRET` | Tailscale OAuth client secret for Kubernetes Operator |
|
||||
| `GRAFANA_ADMIN_PASSWORD` | Optional admin password for Grafana (auto-generated if unset) |
|
||||
| `RUNNER_ALLOWED_CIDRS` | Optional CIDR list for CI runner access if you choose to pass it via tfvars/secrets |
|
||||
| `SSH_PUBLIC_KEY` | SSH public key content |
|
||||
@@ -179,10 +181,17 @@ The Ansible playbook deploys a lightweight observability stack in the `observabi
|
||||
- `loki`
|
||||
- `promtail`
|
||||
|
||||
Services are kept internal for tailnet-first access.
|
||||
Services are kept internal by default, with optional declarative Tailscale exposure when the Tailscale Kubernetes Operator is healthy.
|
||||
|
||||
### Access Grafana and Prometheus
|
||||
|
||||
Preferred (when Tailscale Operator is healthy):
|
||||
|
||||
- Grafana: `http://grafana` (or `http://grafana.<your-tailnet>`)
|
||||
- Prometheus: `http://prometheus` (or `http://prometheus.<your-tailnet>`)
|
||||
|
||||
Fallback (port-forward from a tailnet-connected machine):
|
||||
|
||||
Run from a tailnet-connected machine:
|
||||
|
||||
```bash
|
||||
@@ -200,6 +209,25 @@ Then open:
|
||||
Grafana user: `admin`
|
||||
Grafana password: value of `GRAFANA_ADMIN_PASSWORD` secret (or the generated value shown by Ansible output)
|
||||
|
||||
### Verify Tailscale exposure
|
||||
|
||||
```bash
|
||||
export KUBECONFIG=$(pwd)/outputs/kubeconfig
|
||||
|
||||
kubectl -n tailscale-system get pods
|
||||
kubectl -n observability get svc kube-prometheus-stack-grafana kube-prometheus-stack-prometheus
|
||||
kubectl -n observability describe svc kube-prometheus-stack-grafana | grep TailscaleProxyReady
|
||||
kubectl -n observability describe svc kube-prometheus-stack-prometheus | grep TailscaleProxyReady
|
||||
```
|
||||
|
||||
If `TailscaleProxyReady=False`, check:
|
||||
|
||||
```bash
|
||||
kubectl -n tailscale-system logs deployment/operator --tail=100
|
||||
```
|
||||
|
||||
Common cause: OAuth client missing tag/scopes permissions.
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
@@ -223,6 +251,7 @@ Grafana password: value of `GRAFANA_ADMIN_PASSWORD` secret (or the generated val
|
||||
│ │ ├── k3s-agent/
|
||||
│ │ ├── ccm/
|
||||
│ │ ├── csi/
|
||||
│ │ ├── tailscale-operator/
|
||||
│ │ └── observability/
|
||||
│ └── ansible.cfg
|
||||
├── .gitea/
|
||||
|
||||
Reference in New Issue
Block a user