mirror of
https://github.com/juanfont/headscale.git
synced 2025-08-25 04:17:33 +00:00
Compare commits
1 Commits
remove-nod
...
fix-empty-
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dd0cc74688 |
@@ -137,6 +137,12 @@ disable_check_updates: false
|
|||||||
# Time before an inactive ephemeral node is deleted?
|
# Time before an inactive ephemeral node is deleted?
|
||||||
ephemeral_node_inactivity_timeout: 30m
|
ephemeral_node_inactivity_timeout: 30m
|
||||||
|
|
||||||
|
# Period to check for node updates within the tailnet. A value too low will severely affect
|
||||||
|
# CPU consumption of Headscale. A value too high (over 60s) will cause problems
|
||||||
|
# for the nodes, as they won't get updates or keep alive messages frequently enough.
|
||||||
|
# In case of doubts, do not touch the default 10s.
|
||||||
|
node_update_check_interval: 10s
|
||||||
|
|
||||||
database:
|
database:
|
||||||
type: sqlite
|
type: sqlite
|
||||||
|
|
||||||
|
@@ -46,6 +46,7 @@ type Config struct {
|
|||||||
GRPCAddr string
|
GRPCAddr string
|
||||||
GRPCAllowInsecure bool
|
GRPCAllowInsecure bool
|
||||||
EphemeralNodeInactivityTimeout time.Duration
|
EphemeralNodeInactivityTimeout time.Duration
|
||||||
|
NodeUpdateCheckInterval time.Duration
|
||||||
PrefixV4 *netip.Prefix
|
PrefixV4 *netip.Prefix
|
||||||
PrefixV6 *netip.Prefix
|
PrefixV6 *netip.Prefix
|
||||||
IPAllocation IPAllocationStrategy
|
IPAllocation IPAllocationStrategy
|
||||||
@@ -232,6 +233,8 @@ func LoadConfig(path string, isFile bool) error {
|
|||||||
|
|
||||||
viper.SetDefault("ephemeral_node_inactivity_timeout", "120s")
|
viper.SetDefault("ephemeral_node_inactivity_timeout", "120s")
|
||||||
|
|
||||||
|
viper.SetDefault("node_update_check_interval", "10s")
|
||||||
|
|
||||||
viper.SetDefault("tuning.batch_change_delay", "800ms")
|
viper.SetDefault("tuning.batch_change_delay", "800ms")
|
||||||
viper.SetDefault("tuning.node_mapsession_buffered_chan_size", 30)
|
viper.SetDefault("tuning.node_mapsession_buffered_chan_size", 30)
|
||||||
|
|
||||||
@@ -287,6 +290,15 @@ func LoadConfig(path string, isFile bool) error {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
maxNodeUpdateCheckInterval, _ := time.ParseDuration("60s")
|
||||||
|
if viper.GetDuration("node_update_check_interval") > maxNodeUpdateCheckInterval {
|
||||||
|
errorText += fmt.Sprintf(
|
||||||
|
"Fatal config error: node_update_check_interval (%s) is set too high, must be less than %s",
|
||||||
|
viper.GetString("node_update_check_interval"),
|
||||||
|
maxNodeUpdateCheckInterval,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if errorText != "" {
|
if errorText != "" {
|
||||||
// nolint
|
// nolint
|
||||||
return errors.New(strings.TrimSuffix(errorText, "\n"))
|
return errors.New(strings.TrimSuffix(errorText, "\n"))
|
||||||
@@ -702,6 +714,10 @@ func GetHeadscaleConfig() (*Config, error) {
|
|||||||
"ephemeral_node_inactivity_timeout",
|
"ephemeral_node_inactivity_timeout",
|
||||||
),
|
),
|
||||||
|
|
||||||
|
NodeUpdateCheckInterval: viper.GetDuration(
|
||||||
|
"node_update_check_interval",
|
||||||
|
),
|
||||||
|
|
||||||
Database: GetDatabaseConfig(),
|
Database: GetDatabaseConfig(),
|
||||||
|
|
||||||
TLS: GetTLSConfig(),
|
TLS: GetTLSConfig(),
|
||||||
|
@@ -73,6 +73,7 @@ database:
|
|||||||
type: sqlite3
|
type: sqlite3
|
||||||
sqlite.path: /tmp/integration_test_db.sqlite3
|
sqlite.path: /tmp/integration_test_db.sqlite3
|
||||||
ephemeral_node_inactivity_timeout: 30m
|
ephemeral_node_inactivity_timeout: 30m
|
||||||
|
node_update_check_interval: 10s
|
||||||
prefixes:
|
prefixes:
|
||||||
v6: fd7a:115c:a1e0::/48
|
v6: fd7a:115c:a1e0::/48
|
||||||
v4: 100.64.0.0/10
|
v4: 100.64.0.0/10
|
||||||
@@ -115,6 +116,7 @@ func DefaultConfigEnv() map[string]string {
|
|||||||
"HEADSCALE_DATABASE_TYPE": "sqlite",
|
"HEADSCALE_DATABASE_TYPE": "sqlite",
|
||||||
"HEADSCALE_DATABASE_SQLITE_PATH": "/tmp/integration_test_db.sqlite3",
|
"HEADSCALE_DATABASE_SQLITE_PATH": "/tmp/integration_test_db.sqlite3",
|
||||||
"HEADSCALE_EPHEMERAL_NODE_INACTIVITY_TIMEOUT": "30m",
|
"HEADSCALE_EPHEMERAL_NODE_INACTIVITY_TIMEOUT": "30m",
|
||||||
|
"HEADSCALE_NODE_UPDATE_CHECK_INTERVAL": "10s",
|
||||||
"HEADSCALE_PREFIXES_V4": "100.64.0.0/10",
|
"HEADSCALE_PREFIXES_V4": "100.64.0.0/10",
|
||||||
"HEADSCALE_PREFIXES_V6": "fd7a:115c:a1e0::/48",
|
"HEADSCALE_PREFIXES_V6": "fd7a:115c:a1e0::/48",
|
||||||
"HEADSCALE_DNS_CONFIG_BASE_DOMAIN": "headscale.net",
|
"HEADSCALE_DNS_CONFIG_BASE_DOMAIN": "headscale.net",
|
||||||
|
Reference in New Issue
Block a user