Documentation ¶
Overview ¶
Package envknob provides access to environment-variable tweakable debug settings.
These are primarily knobs used by Tailscale developers during development or by users when instructed to by Tailscale developers when debugging something. They are not a stable interface and may be removed or any time.
A related package, control/controlknobs, are knobs that can be changed at runtime by the control plane. Sometimes both are used: an envknob for the default/explicit value, else falling back to the controlknob value.
Index ¶
- func ApplyDiskConfig() (err error)
- func ApplyDiskConfigError() error
- func Bool(envVar string) bool
- func BoolDefaultTrue(envVar string) bool
- func CanSSHD() bool
- func LogCurrent(logf logf)
- func LookupBool(envVar string) (v bool, ok bool)
- func LookupInt(envVar string) (v int, ok bool)
- func NoLogsNoSupport() bool
- func OptBool(envVar string) opt.Bool
- func PanicIfAnyEnvCheckedInInit()
- func RegisterBool(envVar string) func() bool
- func RegisterOptBool(envVar string) func() opt.Bool
- func RegisterString(envVar string) func() string
- func SSHIgnoreTailnetPolicy() bool
- func SSHPolicyFile() string
- func SetNoLogsNoSupport()
- func Setenv(envVar, val string)
- func String(envVar string) string
- func TKASkipSignatureCheck() bool
- func UseWIPCode() bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyDiskConfig ¶
func ApplyDiskConfig() (err error)
ApplyDiskConfig returns a platform-specific config file of environment keys/values and applies them. On Linux and Unix operating systems, it's a no-op and always returns nil. If no platform-specific config file is found, it also returns nil.
It exists primarily for Windows to make it easy to apply environment variables to a running service in a way similar to modifying /etc/default/tailscaled on Linux. On Windows, you use %ProgramData%\Tailscale\tailscaled-env.txt instead.
func ApplyDiskConfigError ¶
func ApplyDiskConfigError() error
ApplyDiskConfigError returns the most recent result of ApplyDiskConfig.
func Bool ¶
Bool returns the boolean value of the named environment variable. If the variable is not set, it returns false. An invalid value exits the binary with a failure.
func BoolDefaultTrue ¶
BoolDefaultTrue is like Bool, but returns true by default if the environment variable isn't present.
func CanSSHD ¶
func CanSSHD() bool
CanSSHD is whether the Tailscale SSH server is allowed to run.
If disabled, the SSH server won't start (won't intercept port 22) if already enabled and any attempt to re-enable it will result in an error.
func LookupBool ¶
LookupBool returns the boolean value of the named environment value. The ok result is whether a value was set. If the value isn't a valid int, it exits the program with a failure.
func LookupInt ¶
LookupInt returns the integer value of the named environment value. The ok result is whether a value was set. If the value isn't a valid int, it exits the program with a failure.
func NoLogsNoSupport ¶
func NoLogsNoSupport() bool
NoLogsNoSupport reports whether the client's opted out of log uploads and technical support.
func OptBool ¶
OptBool is like Bool, but returns an opt.Bool, so the caller can distinguish between implicitly and explicitly false.
func PanicIfAnyEnvCheckedInInit ¶
func PanicIfAnyEnvCheckedInInit()
PanicIfAnyEnvCheckedInInit panics if environment variables were read during init.
func RegisterBool ¶
RegisterBool returns a func that gets the named environment variable, without a map lookup per call. It assumes that mutations happen via envknob.Setenv.
func RegisterOptBool ¶
RegisterOptBool returns a func that gets the named environment variable, without a map lookup per call. It assumes that mutations happen via envknob.Setenv.
func RegisterString ¶
RegisterString returns a func that gets the named environment variable, without a map lookup per call. It assumes that mutations happen via envknob.Setenv.
func SSHIgnoreTailnetPolicy ¶
func SSHIgnoreTailnetPolicy() bool
SSHIgnoreTailnetPolicy is whether to ignore the Tailnet SSH policy for development.
func SSHPolicyFile ¶
func SSHPolicyFile() string
SSHPolicyFile returns the path, if any, to the SSHPolicy JSON file for development.
func SetNoLogsNoSupport ¶
func SetNoLogsNoSupport()
SetNoLogsNoSupport enables no-logs-no-support mode.
func Setenv ¶
func Setenv(envVar, val string)
Setenv changes an environment variable.
It is not safe for concurrent reading of environment variables via the Register functions. All Setenv calls are meant to happen early in main before any goroutines are started.
func String ¶
String returns the named environment variable, using os.Getenv.
If the variable is non-empty, it's also tracked & logged as being an in-use knob.
func TKASkipSignatureCheck ¶
func TKASkipSignatureCheck() bool
TKASkipSignatureCheck is whether to skip node-key signature checking for development.
func UseWIPCode ¶
func UseWIPCode() bool
UseWIPCode is whether TAILSCALE_USE_WIP_CODE is set to permit use of Work-In-Progress code.
Types ¶
This section is empty.