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.