mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	This commit sets the Headscale config from env instead of file for integration tests, the main point is to make sure that when we add per test config, it properly replaces the config key and not append it or something similar. Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
		
			
				
	
	
		
			132 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package hsic
 | |
| 
 | |
| // 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: ""
 | |
| db_type: sqlite3
 | |
| db_path: /tmp/integration_test_db.sqlite3
 | |
| ephemeral_node_inactivity_timeout: 30m
 | |
| node_update_check_interval: 10s
 | |
| ip_prefixes:
 | |
|   - fd7a:115c:a1e0::/48
 | |
|   - 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_DB_TYPE":                           "sqlite3",
 | |
| 		"HEADSCALE_DB_PATH":                           "/tmp/integration_test_db.sqlite3",
 | |
| 		"HEADSCALE_EPHEMERAL_NODE_INACTIVITY_TIMEOUT": "30m",
 | |
| 		"HEADSCALE_NODE_UPDATE_CHECK_INTERVAL":        "10s",
 | |
| 		"HEADSCALE_IP_PREFIXES":                       "fd7a:115c:a1e0::/48 100.64.0.0/10",
 | |
| 		"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":               "127.0.0.1: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",
 | |
| 	}
 | |
| }
 |