7d3be649199c9a09a1f89690f4f73c394fcdd20b
Setup created the tunnel, routed DNS, and wrote config.yml, but nothing installed or started a connector for it. A one-click run therefore left the tunnel routed-but-dead: every web hostname returned Cloudflare error 1033 (tunnel has no connector) even though the config was correct on disk. Add a StartConnector step to the Runner seam, invoked right after the config is written (and gated on ConfigPath, so a caller wanting only the Access config is not forced to install a service). The ExecRunner implementation runs `cloudflared --config <path> service install`, which installs and starts a managed system service (systemd/launchd/Windows), and is idempotent on an already-installed service. The orchestration — connector started, and only after its config exists — is unit-tested against the fake Runner; the actual service install is INTEGRATION-ONLY. Together with the RouteDNS --overwrite-dns fix, this closes both distinct paths to a 1033 half-state from a fresh setup: a stale DNS binding and a missing connector.
Languages
Go
62.7%
TypeScript
22.5%
Shell
7.4%
Java
7.1%
Dockerfile
0.2%
Other
0.1%