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), } }