63
63
configDir string
64
64
redisAddress string
65
65
redisPassword string
66
+ redisUsername string
66
67
redisDB int
67
68
redisPoolSize int
68
69
@@ -105,6 +106,7 @@ const (
105
106
configDirEnv = "CONFIG_DIR"
106
107
redisAddrEnv = "REDIS_ADDRESS"
107
108
redisPasswordEnv = "REDIS_PASSWORD"
109
+ redisUsernameEnv = "REDIS_USERNAME"
108
110
redisDBEnv = "REDIS_DB"
109
111
redisPoolSizeEnv = "REDIS_POOL_SIZE"
110
112
@@ -147,6 +149,7 @@ const (
147
149
offlineFlag = "offline"
148
150
redisAddressFlag = "redis-address"
149
151
redisPasswordFlag = "redis-password"
152
+ redisUsernameFlag = "redis-username"
150
153
redisDBFlag = "redis-db"
151
154
redisPoolSizeFlag = "redis-pool-size"
152
155
@@ -189,6 +192,7 @@ func init() {
189
192
flag .StringVar (& configDir , configDirFlag , "/config" , "specify a custom path to search for the offline config directory. Defaults to /config" )
190
193
flag .StringVar (& redisAddress , redisAddressFlag , "" , "Redis host:port address" )
191
194
flag .StringVar (& redisPassword , redisPasswordFlag , "" , "Optional. Redis password" )
195
+ flag .StringVar (& redisUsername , redisUsernameFlag , "" , "Optional. Redis username" )
192
196
flag .IntVar (& redisDB , redisDBFlag , 0 , "Database to be selected after connecting to the server." )
193
197
flag .IntVar (& redisPoolSize , redisPoolSizeFlag , 10 , "sets the redi connection pool size, to this value multipled by the number of CPU available. E.g if this value is 10 and you've 2 CPU the connection pool size will be 20" )
194
198
@@ -221,6 +225,7 @@ func init() {
221
225
authSecretEnv : authSecretFlag ,
222
226
redisAddrEnv : redisAddressFlag ,
223
227
redisPasswordEnv : redisPasswordFlag ,
228
+ redisUsernameEnv : redisUsernameFlag ,
224
229
redisDBEnv : redisDBFlag ,
225
230
redisPoolSizeEnv : redisPoolSizeFlag ,
226
231
metricPostDurationEnv : metricPostDurationFlag ,
@@ -312,7 +317,7 @@ func main() {
312
317
var hashCache * cache.HashCache
313
318
314
319
if redisAddress != "" && ! generateOfflineConfig { //nolint:nestif
315
- redisClient = newRedisClient (redisAddress , logger )
320
+ redisClient = newRedisClient (redisAddress , redisUsername , redisPassword , logger )
316
321
317
322
mcMetrics := cache .NewMemoizeMetrics ("proxy" , promReg )
318
323
mcCache := cache .NewMemoizeCache (redisClient , 1 * time .Minute , 2 * time .Minute , mcMetrics )
@@ -670,7 +675,7 @@ func removeRedisScheme(addr string) string {
670
675
return strings .TrimPrefix (strings .TrimPrefix (addr , "redis://" ), "rediss://" )
671
676
}
672
677
673
- func newRedisClient (addr string , logger log.Logger ) redis.UniversalClient {
678
+ func newRedisClient (addr string , username string , password string , logger log.Logger ) redis.UniversalClient {
674
679
splitAddr := strings .Split (addr , "," )
675
680
676
681
// if address does not start with redis:// or rediss:// then default to redis://
@@ -693,8 +698,8 @@ func newRedisClient(addr string, logger log.Logger) redis.UniversalClient {
693
698
opts := redis.UniversalOptions {
694
699
Addrs : splitAddr ,
695
700
DB : parsed .DB ,
696
- Username : parsed . Username ,
697
- Password : parsed . Password ,
701
+ Username : username ,
702
+ Password : password ,
698
703
PoolSize : redisPoolSize * runtime .NumCPU (),
699
704
TLSConfig : parsed .TLSConfig ,
700
705
}
0 commit comments