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 8e25f7f9dd
commit 2174f6d0b9
No known key found for this signature in database
GPG Key ID: 8BC07FB9FEAEEF63
4 changed files with 30 additions and 4 deletions

View File

@ -164,6 +164,7 @@ func NewHeadscale(cfg *types.Config) (*Headscale, error) {
&app,
cfg.ServerURL,
&cfg.OIDC,
&cfg.Tuning,
)
if err != nil {
if cfg.OIDC.OnlyStartIfOIDCIsAvailable {

View File

@ -69,6 +69,7 @@ func NewAuthProviderOIDC(
h *Headscale,
serverURL string,
cfg *types.OIDCConfig,
tuning *types.Tuning,
) (*AuthProviderOIDC, error) {
var err error
// grab oidc config if it hasn't been already
@ -85,9 +86,19 @@ func NewAuthProviderOIDC(
Scopes: cfg.Scope,
}
cacheExpiration := registerCacheExpiration
if tuning.RegisterCacheExpiration != 0 {
cacheExpiration = tuning.RegisterCacheExpiration
}
cacheCleanup := registerCacheCleanup
if tuning.RegisterCacheCleanup != 0 {
cacheCleanup = tuning.RegisterCacheCleanup
}
registrationCache := zcache.New[string, RegistrationInfo](
registerCacheExpiration,
registerCacheCleanup,
cacheExpiration,
cacheCleanup,
)
return &AuthProviderOIDC{

View File

@ -67,9 +67,19 @@ type State struct {
// NewState creates and initializes a new State instance, setting up the database,
// IP allocator, DERP map, policy manager, and loading existing users and nodes.
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](
registerCacheExpiration,
registerCacheCleanup,
cacheExpiration,
cacheCleanup,
)
db, err := hsdb.NewHeadscaleDatabase(

View File

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