mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 07:16:38 +00:00
Add support for legacy IDP cache environment variable
This commit is contained in:
15
management/server/cache/store.go
vendored
15
management/server/cache/store.go
vendored
@@ -17,12 +17,15 @@ import (
|
|||||||
|
|
||||||
// RedisStoreEnvVar is the environment variable that determines if a redis store should be used.
|
// RedisStoreEnvVar is the environment variable that determines if a redis store should be used.
|
||||||
// The value should follow redis URL format. https://github.com/redis/redis-specifications/blob/master/uri/redis.txt
|
// The value should follow redis URL format. https://github.com/redis/redis-specifications/blob/master/uri/redis.txt
|
||||||
const RedisStoreEnvVar = "NB_IDP_CACHE_REDIS_ADDRESS"
|
const RedisStoreEnvVar = "NB_CACHE_REDIS_ADDRESS"
|
||||||
|
|
||||||
|
// legacyIdPCacheRedisEnvVar is the previous environment variable used for IDP cache.
|
||||||
|
const legacyIdPCacheRedisEnvVar = "NB_IDP_CACHE_REDIS_ADDRESS"
|
||||||
|
|
||||||
// NewStore creates a new cache store with the given max timeout and cleanup interval. It checks for the environment Variable RedisStoreEnvVar
|
// NewStore creates a new cache store with the given max timeout and cleanup interval. It checks for the environment Variable RedisStoreEnvVar
|
||||||
// to determine if a redis store should be used. If the environment variable is set, it will attempt to connect to the redis store.
|
// to determine if a redis store should be used. If the environment variable is set, it will attempt to connect to the redis store.
|
||||||
func NewStore(ctx context.Context, maxTimeout, cleanupInterval time.Duration, maxConn int) (store.StoreInterface, error) {
|
func NewStore(ctx context.Context, maxTimeout, cleanupInterval time.Duration, maxConn int) (store.StoreInterface, error) {
|
||||||
redisAddr := os.Getenv(RedisStoreEnvVar)
|
redisAddr := getAddrFromEnv()
|
||||||
if redisAddr != "" {
|
if redisAddr != "" {
|
||||||
return getRedisStore(ctx, redisAddr, maxConn)
|
return getRedisStore(ctx, redisAddr, maxConn)
|
||||||
}
|
}
|
||||||
@@ -30,6 +33,14 @@ func NewStore(ctx context.Context, maxTimeout, cleanupInterval time.Duration, ma
|
|||||||
return gocache_store.NewGoCache(goc), nil
|
return gocache_store.NewGoCache(goc), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getAddrFromEnv() string {
|
||||||
|
addr := os.Getenv(RedisStoreEnvVar)
|
||||||
|
if addr == "" {
|
||||||
|
addr = os.Getenv(legacyIdPCacheRedisEnvVar)
|
||||||
|
}
|
||||||
|
return addr
|
||||||
|
}
|
||||||
|
|
||||||
func getRedisStore(ctx context.Context, redisEnvAddr string, maxConn int) (store.StoreInterface, error) {
|
func getRedisStore(ctx context.Context, redisEnvAddr string, maxConn int) (store.StoreInterface, error) {
|
||||||
options, err := redis.ParseURL(redisEnvAddr)
|
options, err := redis.ParseURL(redisEnvAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user