Documentation
¶
Index ¶
- func GetTunnelURL(cfg *config.Config) (string, error)
- func Login(cfg *config.Config, u *ui.UI, opts LoginOptions) error
- func Logs(cfg *config.Config, follow bool) error
- func Provision(cfg *config.Config, u *ui.UI, opts ProvisionOptions) error
- func Restart(cfg *config.Config, u *ui.UI) error
- func Status(cfg *config.Config, u *ui.UI) error
- func SyncAgentBaseURL(cfg *config.Config, tunnelURL string) error
- type LoginOptions
- type ProvisionOptions
- type TunnelState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetTunnelURL ¶
GetTunnelURL parses cloudflared logs to extract the quick tunnel URL.
func Login ¶
Login provisions a locally-managed tunnel using `cloudflared tunnel login` (browser auth), then writes the required credentials/config into Kubernetes and upgrades the cloudflared Helm release so the in-cluster connector runs the locally-managed tunnel.
Docs: - Create a locally-managed tunnel: https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/local-management/create-local-tunnel/ - Configuration file for published apps: https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/local-management/configuration-file/ - `origincert` run parameter (locally-managed tunnels): https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/configure-tunnels/cloudflared-parameters/run-parameters/
func Provision ¶
Provision provisions a persistent Cloudflare Tunnel routed via a proxied DNS record.
Based on Cloudflare's "Create a tunnel (API)" guide: - POST /accounts/$ACCOUNT_ID/cfd_tunnel - PUT /accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/configurations - POST /zones/$ZONE_ID/dns_records (proxied CNAME to <tunnel-id>.cfargotunnel.com)
func SyncAgentBaseURL ¶ added in v0.5.0
SyncAgentBaseURL patches AGENT_BASE_URL in the obol-agent's values-obol.yaml and runs helmfile sync to apply the change. It is a no-op if the obol-agent deployment directory does not exist (agent not yet initialized).
Types ¶
type LoginOptions ¶
type LoginOptions struct {
Hostname string
}
type ProvisionOptions ¶
ProvisionOptions configures `obol tunnel provision`.
type TunnelState ¶ added in v0.5.0
type TunnelState = tunnelState
TunnelState is an exported alias so other packages (agent, openclaw) can read tunnel state without reaching into unexported types.
func LoadTunnelState ¶ added in v0.5.0
func LoadTunnelState(cfg *config.Config) (*TunnelState, error)
LoadTunnelState reads the persisted tunnel state from disk. Returns (nil, nil) if no state file exists.