Skip to content

Commit

Permalink
Add support for sentinel auth (#847)
Browse files Browse the repository at this point in the history
* Add support for sentinel auth and username as well

---------

Co-authored-by: Dmitry Melnikov <dreid@dreid.ru>
  • Loading branch information
DreidSpb and Dmitry Melnikov committed May 31, 2023
1 parent 4c21394 commit 033e8e4
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 26 deletions.
24 changes: 15 additions & 9 deletions cmd/config.go
Expand Up @@ -25,6 +25,10 @@ type RedisConfig struct {
MasterName string `yaml:"master_name"`
// Redis address list, format: {host1_name:port},{ip:port}
Addrs string `yaml:"addrs"`
// Redis Sentinel password
SentinelPassword string `yaml:"sentinel_password"`
// Redis Sentinel username
SentinelUsername string `yaml:"sentinel_username"`
// Redis username
Username string `yaml:"username"`
// Redis password
Expand All @@ -45,15 +49,17 @@ type RedisConfig struct {
// GetSettings returns redis config parsed from moira config files
func (config *RedisConfig) GetSettings() redis.Config {
return redis.Config{
MasterName: config.MasterName,
Addrs: strings.Split(config.Addrs, ","),
Username: config.Username,
Password: config.Password,
MaxRetries: config.MaxRetries,
MetricsTTL: to.Duration(config.MetricsTTL),
DialTimeout: to.Duration(config.DialTimeout),
ReadTimeout: to.Duration(config.ReadTimeout),
WriteTimeout: to.Duration(config.WriteTimeout),
MasterName: config.MasterName,
Addrs: strings.Split(config.Addrs, ","),
SentinelPassword: config.SentinelPassword,
SentinelUsername: config.SentinelUsername,
Username: config.Username,
Password: config.Password,
MaxRetries: config.MaxRetries,
MetricsTTL: to.Duration(config.MetricsTTL),
DialTimeout: to.Duration(config.DialTimeout),
ReadTimeout: to.Duration(config.ReadTimeout),
WriteTimeout: to.Duration(config.WriteTimeout),
}
}

Expand Down
20 changes: 11 additions & 9 deletions database/redis/config.go
Expand Up @@ -4,13 +4,15 @@ import "time"

// Config - Redis database connection config
type Config struct {
MasterName string
Addrs []string
Username string
Password string
MetricsTTL time.Duration
DialTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
MaxRetries int
MasterName string
Addrs []string
Username string
Password string
SentinelPassword string
SentinelUsername string
MetricsTTL time.Duration
DialTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
MaxRetries int
}
18 changes: 10 additions & 8 deletions database/redis/database.go
Expand Up @@ -49,14 +49,16 @@ type DbConnector struct {

func NewDatabase(logger moira.Logger, config Config, source DBSource) *DbConnector {
client := redis.NewUniversalClient(&redis.UniversalOptions{
MasterName: config.MasterName,
Addrs: config.Addrs,
Username: config.Username,
Password: config.Password,
DialTimeout: config.DialTimeout,
ReadTimeout: config.ReadTimeout,
WriteTimeout: config.WriteTimeout,
MaxRetries: config.MaxRetries,
MasterName: config.MasterName,
Addrs: config.Addrs,
Username: config.Username,
Password: config.Password,
SentinelPassword: config.SentinelPassword,
SentinelUsername: config.SentinelUsername,
DialTimeout: config.DialTimeout,
ReadTimeout: config.ReadTimeout,
WriteTimeout: config.WriteTimeout,
MaxRetries: config.MaxRetries,
})

ctx := context.Background()
Expand Down

0 comments on commit 033e8e4

Please sign in to comment.