mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-20 23:17:33 +00:00
140 lines
4.3 KiB
Go
140 lines
4.3 KiB
Go
package hsic
|
|
|
|
import "github.com/juanfont/headscale/hscontrol/types"
|
|
|
|
// const (
|
|
// defaultEphemeralNodeInactivityTimeout = time.Second * 30
|
|
// defaultNodeUpdateCheckInterval = time.Second * 10
|
|
// )
|
|
|
|
// TODO(kradalby): This approach doesnt work because we cannot
|
|
// serialise our config object to YAML or JSON.
|
|
// func DefaultConfig() headscale.Config {
|
|
// derpMap, _ := url.Parse("https://controlplane.tailscale.com/derpmap/default")
|
|
//
|
|
// config := headscale.Config{
|
|
// Log: headscale.LogConfig{
|
|
// Level: zerolog.TraceLevel,
|
|
// },
|
|
// ACL: headscale.GetACLConfig(),
|
|
// DBtype: "sqlite3",
|
|
// EphemeralNodeInactivityTimeout: defaultEphemeralNodeInactivityTimeout,
|
|
// NodeUpdateCheckInterval: defaultNodeUpdateCheckInterval,
|
|
// IPPrefixes: []netip.Prefix{
|
|
// netip.MustParsePrefix("fd7a:115c:a1e0::/48"),
|
|
// netip.MustParsePrefix("100.64.0.0/10"),
|
|
// },
|
|
// DNSConfig: &tailcfg.DNSConfig{
|
|
// Proxied: true,
|
|
// Nameservers: []netip.Addr{
|
|
// netip.MustParseAddr("127.0.0.11"),
|
|
// netip.MustParseAddr("1.1.1.1"),
|
|
// },
|
|
// Resolvers: []*dnstype.Resolver{
|
|
// {
|
|
// Addr: "127.0.0.11",
|
|
// },
|
|
// {
|
|
// Addr: "1.1.1.1",
|
|
// },
|
|
// },
|
|
// },
|
|
// BaseDomain: "headscale.net",
|
|
//
|
|
// DBpath: "/tmp/integration_test_db.sqlite3",
|
|
//
|
|
// PrivateKeyPath: "/tmp/integration_private.key",
|
|
// NoisePrivateKeyPath: "/tmp/noise_integration_private.key",
|
|
// Addr: "0.0.0.0:8080",
|
|
// MetricsAddr: "127.0.0.1:9090",
|
|
// ServerURL: "http://headscale:8080",
|
|
//
|
|
// DERP: headscale.DERPConfig{
|
|
// URLs: []url.URL{
|
|
// *derpMap,
|
|
// },
|
|
// AutoUpdate: false,
|
|
// UpdateFrequency: 1 * time.Minute,
|
|
// },
|
|
// }
|
|
//
|
|
// return config
|
|
// }
|
|
|
|
// TODO: Reuse the actual configuration object above.
|
|
// Deprecated: use env function instead as it is easier to
|
|
// override.
|
|
func DefaultConfigYAML() string {
|
|
yaml := `
|
|
log:
|
|
level: trace
|
|
acl_policy_path: ""
|
|
database:
|
|
type: sqlite3
|
|
sqlite.path: /tmp/integration_test_db.sqlite3
|
|
ephemeral_node_inactivity_timeout: 30m
|
|
node_update_check_interval: 10s
|
|
prefixes:
|
|
v6: fd7a:115c:a1e0::/48
|
|
v4: 100.64.0.0/10
|
|
dns_config:
|
|
base_domain: headscale.net
|
|
magic_dns: true
|
|
domains: []
|
|
nameservers:
|
|
- 127.0.0.11
|
|
- 1.1.1.1
|
|
private_key_path: /tmp/private.key
|
|
noise:
|
|
private_key_path: /tmp/noise_private.key
|
|
listen_addr: 0.0.0.0:8080
|
|
metrics_listen_addr: 127.0.0.1:9090
|
|
server_url: http://headscale:8080
|
|
|
|
derp:
|
|
urls:
|
|
- https://controlplane.tailscale.com/derpmap/default
|
|
auto_update_enabled: false
|
|
update_frequency: 1m
|
|
`
|
|
|
|
return yaml
|
|
}
|
|
|
|
func MinimumConfigYAML() string {
|
|
return `
|
|
private_key_path: /tmp/private.key
|
|
noise:
|
|
private_key_path: /tmp/noise_private.key
|
|
`
|
|
}
|
|
|
|
func DefaultConfigEnv() map[string]string {
|
|
return map[string]string{
|
|
"HEADSCALE_LOG_LEVEL": "trace",
|
|
"HEADSCALE_ACL_POLICY_PATH": "",
|
|
"HEADSCALE_DATABASE_TYPE": "sqlite",
|
|
"HEADSCALE_DATABASE_SQLITE_PATH": "/tmp/integration_test_db.sqlite3",
|
|
"HEADSCALE_EPHEMERAL_NODE_INACTIVITY_TIMEOUT": "30m",
|
|
"HEADSCALE_NODE_UPDATE_CHECK_INTERVAL": "10s",
|
|
"HEADSCALE_PREFIXES_V4": "100.64.0.0/10",
|
|
"HEADSCALE_PREFIXES_V6": "fd7a:115c:a1e0::/48",
|
|
"HEADSCALE_DNS_CONFIG_BASE_DOMAIN": "headscale.net",
|
|
"HEADSCALE_DNS_CONFIG_MAGIC_DNS": "true",
|
|
"HEADSCALE_DNS_CONFIG_DOMAINS": "",
|
|
"HEADSCALE_DNS_CONFIG_NAMESERVERS": "127.0.0.11 1.1.1.1",
|
|
"HEADSCALE_PRIVATE_KEY_PATH": "/tmp/private.key",
|
|
"HEADSCALE_NOISE_PRIVATE_KEY_PATH": "/tmp/noise_private.key",
|
|
"HEADSCALE_LISTEN_ADDR": "0.0.0.0:8080",
|
|
"HEADSCALE_METRICS_LISTEN_ADDR": "0.0.0.0:9090",
|
|
"HEADSCALE_SERVER_URL": "http://headscale:8080",
|
|
"HEADSCALE_DERP_URLS": "https://controlplane.tailscale.com/derpmap/default",
|
|
"HEADSCALE_DERP_AUTO_UPDATE_ENABLED": "false",
|
|
"HEADSCALE_DERP_UPDATE_FREQUENCY": "1m",
|
|
|
|
// a bunch of tests (ACL/Policy) rely on predicable IP alloc,
|
|
// so ensure the sequential alloc is used by default.
|
|
"HEADSCALE_PREFIXES_ALLOCATION": string(types.IPAllocationStrategySequential),
|
|
}
|
|
}
|