diff --git a/weed/command/scaffold/filer.toml b/weed/command/scaffold/filer.toml index e1aea5a72..e593b41ab 100644 --- a/weed/command/scaffold/filer.toml +++ b/weed/command/scaffold/filer.toml @@ -237,6 +237,9 @@ addresses = ["172.22.12.7:26379","172.22.12.8:26379","172.22.12.9:26379"] masterName = "master" username = "" password = "" +# credentials used to authenticate against the sentinel nodes themselves (if they require auth) +sentinel_username = "" +sentinel_password = "" database = 0 # prefix for filer redis keys keyPrefix = "" diff --git a/weed/filer/redis2/redis_sentinel_store.go b/weed/filer/redis2/redis_sentinel_store.go index 10ed62273..5cadf6a37 100644 --- a/weed/filer/redis2/redis_sentinel_store.go +++ b/weed/filer/redis2/redis_sentinel_store.go @@ -26,22 +26,26 @@ func (store *Redis2SentinelStore) Initialize(configuration util.Configuration, p configuration.GetString(prefix+"masterName"), configuration.GetString(prefix+"username"), configuration.GetString(prefix+"password"), + configuration.GetString(prefix+"sentinel_username"), + configuration.GetString(prefix+"sentinel_password"), configuration.GetInt(prefix+"database"), configuration.GetString(prefix+"keyPrefix"), ) } -func (store *Redis2SentinelStore) initialize(addresses []string, masterName string, username string, password string, database int, keyPrefix string) (err error) { +func (store *Redis2SentinelStore) initialize(addresses []string, masterName string, username string, password string, sentinelUsername string, sentinelPassword string, database int, keyPrefix string) (err error) { store.Client = redis.NewFailoverClient(&redis.FailoverOptions{ - MasterName: masterName, - SentinelAddrs: addresses, - Username: username, - Password: password, - DB: database, - MinRetryBackoff: time.Millisecond * 100, - MaxRetryBackoff: time.Minute * 1, - ReadTimeout: time.Second * 30, - WriteTimeout: time.Second * 5, + MasterName: masterName, + SentinelAddrs: addresses, + Username: username, + Password: password, + SentinelUsername: sentinelUsername, + SentinelPassword: sentinelPassword, + DB: database, + MinRetryBackoff: time.Millisecond * 100, + MaxRetryBackoff: time.Minute * 1, + ReadTimeout: time.Second * 30, + WriteTimeout: time.Second * 5, }) store.keyPrefix = keyPrefix return diff --git a/weed/filer/redis3/redis_sentinel_store.go b/weed/filer/redis3/redis_sentinel_store.go index b9b0354e0..d066342f7 100644 --- a/weed/filer/redis3/redis_sentinel_store.go +++ b/weed/filer/redis3/redis_sentinel_store.go @@ -28,21 +28,25 @@ func (store *Redis3SentinelStore) Initialize(configuration util.Configuration, p configuration.GetString(prefix+"masterName"), configuration.GetString(prefix+"username"), configuration.GetString(prefix+"password"), + configuration.GetString(prefix+"sentinel_username"), + configuration.GetString(prefix+"sentinel_password"), configuration.GetInt(prefix+"database"), ) } -func (store *Redis3SentinelStore) initialize(addresses []string, masterName string, username string, password string, database int) (err error) { +func (store *Redis3SentinelStore) initialize(addresses []string, masterName string, username string, password string, sentinelUsername string, sentinelPassword string, database int) (err error) { store.Client = redis.NewFailoverClient(&redis.FailoverOptions{ - MasterName: masterName, - SentinelAddrs: addresses, - Username: username, - Password: password, - DB: database, - MinRetryBackoff: time.Millisecond * 100, - MaxRetryBackoff: time.Minute * 1, - ReadTimeout: time.Second * 30, - WriteTimeout: time.Second * 5, + MasterName: masterName, + SentinelAddrs: addresses, + Username: username, + Password: password, + SentinelUsername: sentinelUsername, + SentinelPassword: sentinelPassword, + DB: database, + MinRetryBackoff: time.Millisecond * 100, + MaxRetryBackoff: time.Minute * 1, + ReadTimeout: time.Second * 30, + WriteTimeout: time.Second * 5, }) store.redsync = redsync.New(goredis.NewPool(store.Client)) return