INVESTIGATE: Network Services Remove Playbooks
IMPLEMENTATION RULES: Before implementing this plan, read and follow:
- WORKFLOW.md - The implementation process
- PLANS.md - Plan structure and best practices
Status: Complete
Goal: Investigate the full state of tailscale-tunnel and cloudflare-tunnel services — verify deploy works, create remove playbooks, and test the full deploy/undeploy cycle.
Last Updated: 2026-02-26
Priority: Low — Both Tailscale and Cloudflare are now fully complete.
Parent: STATUS-service-migration.md — Phase 3 and Phase 5
Context
All 26 UIS services have deploy playbooks. 24 of 26 have been verified working. Tailscale is now fully complete. Only Cloudflare remains:
| Service | Deploy Playbook | Remove Playbook | External Requirement | Status |
|---|---|---|---|---|
| tailscale-tunnel | ✅ 802-deploy-network-tailscale-tunnel.yml | ✅ 801-remove-network-tailscale-tunnel.yml | Tailscale auth key | COMPLETE (PLAN-009/010/011) |
| cloudflare-tunnel | ✅ 820-deploy-network-cloudflare-tunnel.yml | ✅ 821-remove-network-cloudflare-tunnel.yml | Cloudflare tunnel token | COMPLETE (PLAN-cloudflare-tunnel-undeploy, PR #43) |
Cloudflare cannot be tested without a live external account (API token and configured tunnel in Cloudflare dashboard).
Prerequisites
Before starting this work:
- Tailscale account with an auth key configured in
.uis.secrets/ - Cloudflare account with a tunnel token configured in
.uis.secrets/ - A running Kubernetes cluster (Rancher Desktop or Azure AKS)
Investigation Questions
Tailscale — COMPLETE
All Tailscale work completed in PLAN-009/010/011:
-
./uis deploy tailscale-tunnelworks (deploys operator via Helm) -
./uis undeploy tailscale-tunnelworks (removes operator, cleans up Tailnet devices via API) -
./uis tailscale expose <service>exposes services via Funnel -
./uis tailscale unexpose <service>removes services with device cleanup -
./uis tailscale verifychecks secrets, API, stale devices, operator
Cloudflare — COMPLETE
All Cloudflare work completed in PLAN-cloudflare-tunnel-undeploy (PR #43):
-
./uis deploy cloudflare-tunnelworks (token-based, E2E connectivity verified) -
./uis undeploy cloudflare-tunnelworks (removes deployment, waits for pod termination) -
./uis cloudflare verifychecks secrets, network, and pod status - Reduced replicas from 2 to 1 (sufficient for local dev)
- Cleaned up confusing deploy output (removed redundant skip messages)
Expected Deliverables
Verify or fix✅ Done (PLAN-009)./uis deploy tailscale-tunnelVerify or fix✅ Done (PLAN-012, PLAN-cloudflare-tunnel-undeploy)./uis deploy cloudflare-tunnelCreate✅ Done (PLAN-009)ansible/playbooks/801-remove-network-tailscale-tunnel.ymlCreate✅ Done (PR #43)ansible/playbooks/821-remove-network-cloudflare-tunnel.ymlUpdate✅ Done (PLAN-009)service-tailscale-tunnel.sh: setSCRIPT_REMOVE_PLAYBOOK✅service-cloudflare-tunnel.sh:SCRIPT_REMOVE_PLAYBOOKalready setVerify full✅ Done (PLAN-010)./uis deployand./uis undeploycycle for tailscale-tunnelVerify full✅ Done (PR #43)./uis deployand./uis undeploycycle for cloudflare-tunnel
Related Files
| File | Role |
|---|---|
provision-host/uis/services/network/service-tailscale-tunnel.sh | Service metadata (needs SCRIPT_REMOVE_PLAYBOOK) |
provision-host/uis/services/network/service-cloudflare-tunnel.sh | Service metadata (needs SCRIPT_REMOVE_PLAYBOOK) |
ansible/playbooks/801-setup-network-tailscale-tunnel.yml | Deploy playbook (reference for resources created) |
ansible/playbooks/820-setup-network-cloudflare-tunnel.yml | Deploy playbook (reference for resources created) |
ansible/playbooks/806-remove-tailscale-internal-ingress.yml | Existing partial removal (ingress only) |
networking/tailscale/802-tailscale-tunnel-deploy.sh | Legacy deploy script (reference) |
networking/cloudflare/820-cloudflare-tunnel-setup.sh | Legacy setup script (reference) |
website/docs/networking/tailscale-setup.md | User docs: Tailscale setup guide |
website/docs/networking/tailscale-internal-ingress.md | User docs: Tailscale internal ingress |
website/docs/networking/tailscale-network-isolation.md | User docs: Tailscale network isolation |
website/docs/networking/cloudflare-setup.md | User docs: Cloudflare setup guide |