feat: integrate tailscale access and lock SSH/API to tailnet
This commit is contained in:
21
README.md
21
README.md
@@ -11,6 +11,7 @@ Production-ready Kubernetes cluster on Hetzner Cloud using Terraform and Ansible
|
||||
| **Total Cost** | €28.93/mo |
|
||||
| **K8s** | k3s (latest, HA) |
|
||||
| **Addons** | Hetzner CCM (load balancers) |
|
||||
| **Access** | SSH/API restricted to Tailnet |
|
||||
| **Bootstrap** | Terraform + Ansible |
|
||||
|
||||
### Cluster Resources
|
||||
@@ -87,7 +88,15 @@ s3_secret_key = "your-backblaze-application-key"
|
||||
s3_endpoint = "https://s3.eu-central-003.backblazeb2.com"
|
||||
s3_bucket = "k8s-terraform-state"
|
||||
|
||||
allowed_ssh_ips = ["your.ip.address/32"]
|
||||
tailscale_auth_key = "tskey-auth-..."
|
||||
tailscale_tailnet = "yourtailnet.ts.net"
|
||||
|
||||
restrict_api_ssh_to_tailnet = true
|
||||
tailnet_cidr = "100.64.0.0/10"
|
||||
enable_nodeport_public = false
|
||||
|
||||
allowed_ssh_ips = []
|
||||
allowed_api_ips = []
|
||||
```
|
||||
|
||||
### 3. Initialize Terraform
|
||||
@@ -153,6 +162,9 @@ Set these in your Gitea repository settings (**Settings** → **Secrets** → **
|
||||
| `S3_SECRET_KEY` | Backblaze B2 applicationKey |
|
||||
| `S3_ENDPOINT` | Backblaze S3 endpoint (e.g., `https://s3.eu-central-003.backblazeb2.com`) |
|
||||
| `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_CI_AUTH_KEY` | Tailscale auth key for CI runner |
|
||||
| `SSH_PUBLIC_KEY` | SSH public key content |
|
||||
| `SSH_PRIVATE_KEY` | SSH private key content |
|
||||
|
||||
@@ -192,14 +204,15 @@ Set these in your Gitea repository settings (**Settings** → **Secrets** → **
|
||||
|
||||
| Port | Source | Purpose |
|
||||
|------|--------|---------|
|
||||
| 22 | Any | SSH |
|
||||
| 6443 | Configured IPs + internal | Kubernetes API |
|
||||
| 22 | Tailnet CIDR | SSH |
|
||||
| 6443 | Tailnet CIDR + internal | Kubernetes API |
|
||||
| 41641/udp | Any | Tailscale WireGuard |
|
||||
| 9345 | 10.0.0.0/16 | k3s Supervisor (HA join) |
|
||||
| 2379 | 10.0.0.0/16 | etcd Client |
|
||||
| 2380 | 10.0.0.0/16 | etcd Peer |
|
||||
| 8472 | 10.0.0.0/16 | Flannel VXLAN |
|
||||
| 10250 | 10.0.0.0/16 | Kubelet |
|
||||
| 30000-32767 | Any | NodePorts |
|
||||
| 30000-32767 | Optional | NodePorts (disabled by default) |
|
||||
|
||||
## Operations
|
||||
|
||||
|
||||
Reference in New Issue
Block a user