Skip to main content

Config

This page describes the bridge runtime environment variables loaded by internal/config.

Required​

VariableDescription
ISSUER_URLPublic issuer URL served by the bridge. Must be https:// with no extra path.
TS_HOSTNAMETailscale hostname for the bridge node.
TS_STATE_SECRETKubernetes secret name used by kubestore for tsnet state.
TS_API_CLIENT_IDTailscale OAuth client ID.
TS_API_CLIENT_SECRETTailscale OAuth client secret.
TS_TAGTailscale tag advertised by the bridge. Must start with tag:.

Optional​

VariableDefault
HEALTH_ADDR:8080
FUNNEL_ADDR:443
JWKS_CACHE_TTL60s
JWKS_CACHE_MAX_AGE_HEADER60s
DISCOVERY_MAX_AGE_HEADER1h
STARTUP_FETCH_TIMEOUT30s
TS_START_TIMEOUT30s
SHUTDOWN_TIMEOUT10s
TS_STATUS_POLL_INTERVAL15s
LOG_FORMATjson
LOG_LEVELinfo
SOURCE_IP_ALLOWLIST_ENABLEDfalse
SOURCE_IP_ALLOWLIST_CIDRSunset
LEADER_ELECTION_ENABLEDfalse
LEADER_ELECTION_LEASE_NAMEunset
LEADER_ELECTION_NAMESPACEPOD_NAMESPACE
LEADER_ELECTION_IDENTITYPOD_NAME
LEADER_ELECTION_LEASE_DURATION15s
LEADER_ELECTION_RENEW_DEADLINE10s
LEADER_ELECTION_RETRY_PERIOD2s

Validation notes​

  • ISSUER_URL must be host-only and must not include a path, query, fragment, or explicit port.
  • SOURCE_IP_ALLOWLIST_CIDRS is required when source allowlisting is enabled.
  • when leader election is enabled, lease name, namespace, and identity must be present.
  • LEADER_ELECTION_LEASE_DURATION must be greater than LEADER_ELECTION_RENEW_DEADLINE, which must be greater than LEADER_ELECTION_RETRY_PERIOD.
  • cache and timeout durations must be positive.
  • JWKS_CACHE_TTL must be at least 5s.

Removed settings​

The service no longer supports overriding the upstream Kubernetes JWKS URL or the Tailscale API base URL. It is intentionally pinned to the in-cluster API server and the real Tailscale control plane.