1
0
mirror of https://github.com/juanfont/headscale.git synced 2025-09-25 17:51:11 +02:00

chore: make reg cache expiry tunable

Mostly for the tests, opts:

- tuning.register_cache_expiration
- tuning.register_cache_cleanup
This commit is contained in:
Andrey Bobelev 2025-08-29 14:20:07 +02:00
parent bd35fcf338
commit 2dfba3d2cc
No known key found for this signature in database
GPG Key ID: 8BC07FB9FEAEEF63
2 changed files with 16 additions and 2 deletions

View File

@ -74,9 +74,19 @@ type State struct {
// NewState creates and initializes a new State instance, setting up the database, // NewState creates and initializes a new State instance, setting up the database,
// IP allocator, DERP map, policy manager, and loading existing users and nodes. // IP allocator, DERP map, policy manager, and loading existing users and nodes.
func NewState(cfg *types.Config) (*State, error) { func NewState(cfg *types.Config) (*State, error) {
cacheExpiration := registerCacheExpiration
if cfg.Tuning.RegisterCacheExpiration != 0 {
cacheExpiration = cfg.Tuning.RegisterCacheExpiration
}
cacheCleanup := registerCacheCleanup
if cfg.Tuning.RegisterCacheCleanup != 0 {
cacheCleanup = cfg.Tuning.RegisterCacheCleanup
}
registrationCache := zcache.New[types.RegistrationID, types.RegisterNode]( registrationCache := zcache.New[types.RegistrationID, types.RegisterNode](
registerCacheExpiration, cacheExpiration,
registerCacheCleanup, cacheCleanup,
) )
db, err := hsdb.NewHeadscaleDatabase( db, err := hsdb.NewHeadscaleDatabase(

View File

@ -235,6 +235,8 @@ type Tuning struct {
BatchChangeDelay time.Duration BatchChangeDelay time.Duration
NodeMapSessionBufferedChanSize int NodeMapSessionBufferedChanSize int
BatcherWorkers int BatcherWorkers int
RegisterCacheCleanup time.Duration
RegisterCacheExpiration time.Duration
} }
func validatePKCEMethod(method string) error { func validatePKCEMethod(method string) error {
@ -1002,6 +1004,8 @@ func LoadServerConfig() (*Config, error) {
} }
return DefaultBatcherWorkers() return DefaultBatcherWorkers()
}(), }(),
RegisterCacheCleanup: viper.GetDuration("tuning.register_cache_cleanup"),
RegisterCacheExpiration: viper.GetDuration("tuning.register_cache_expiration"),
}, },
}, nil }, nil
} }