Tailscale VPN Setup
Tailscale provides secure, private access to your infrastructure without exposing services to the public internet.Install Tailscale
Connect to Tailscale Network
Creating a Tailscale Auth Key
If you need to create a new auth key for additional subnet routers:Open Tailscale Admin Console
Navigate to https://login.tailscale.com/admin/settings/keys
Generate new auth key
Click “Generate auth key” and configure:
- Reusable: Allow key to be used multiple times
- Ephemeral: Device will be removed when disconnected
- Pre-authorized: Skip manual approval
- Tags:
tag:aws-router - Expiration: 90 days (or custom)
Accessing EKS Cluster
With Tailscale connected, you can access the EKS cluster API directly.Configure kubectl
Verify Access
The EKS API endpoint is private-only and not accessible without Tailscale connection.
Common kubectl Commands
Accessing Vault
HashiCorp Vault is accessible via web UI and CLI.Web UI Access
CLI Access
Port Forward Method
Alternatively, access Vault via kubectl port forwarding:Accessing ArgoCD
ArgoCD provides a web UI for managing GitOps deployments.Web UI Access
CLI Access
Install ArgoCD CLI:Port Forward Method
Accessing Traefik Dashboard
Traefik provides a dashboard for monitoring routes and services.Port Forward Access
http://localhost:9000/dashboard/
Note the trailing slash in the URL - it’s required.
Service URLs Reference
Once connected to Tailscale, access services at these URLs:| Service | URL | Authentication |
|---|---|---|
| Vault | https://vault.yourdomain.com | Root token |
| ArgoCD | https://argocd.yourdomain.com | admin / (generated password) |
| Traefik Dashboard | Port forward to localhost:9000 | None |
| EKS API | Via kubectl | AWS IAM |
Troubleshooting Access
Cannot Connect to Services
Tailscale not connected
Tailscale not connected
Check Tailscale status:If not connected, run:
Subnet routes not approved
Subnet routes not approved
- Go to Tailscale Admin Console
- Find your subnet router
- Check that routes are advertised and approved
- If not approved, check your ACL configuration includes auto-approvers
DNS not resolving
DNS not resolving
If
vault.yourdomain.com doesn’t resolve:- Check Cloudflare DNS records
- Verify external-dns is running:
- Check external-dns logs:
Certificate errors
Certificate errors
If you see SSL/TLS certificate errors:
- Check certificate status:
- Verify cert-manager is running:
- Check certificate details:
kubectl Connection Issues
Vault Unsealed Status
If Vault is sealed:Security Best Practices
Next Steps
Troubleshooting
Common issues and solutions
Destroying Resources
How to safely tear down infrastructure