diff --git a/pkg/config/config.go b/pkg/config/config.go index 8100d7a..09bc719 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -47,6 +47,7 @@ type RedisConfig struct { Username string `yaml:"username"` Password string `yaml:"password"` DB int `yaml:"db"` + UseTLS bool `yaml:"use_tls"` } type FileOutput struct { diff --git a/pkg/messaging/bus.go b/pkg/messaging/bus.go index b87dab6..d5bb5a1 100644 --- a/pkg/messaging/bus.go +++ b/pkg/messaging/bus.go @@ -7,18 +7,31 @@ import ( "github.com/livekit/protocol/logger" "github.com/livekit/protocol/utils" "github.com/pkg/errors" + "crypto/tls" "github.com/livekit/livekit-recorder/pkg/config" ) func NewMessageBus(conf *config.Config) (utils.MessageBus, error) { logger.Infow("connecting to redis work queue", "addr", conf.Redis.Address) - rc := redis.NewClient(&redis.Options{ + rcOptions := &redis.Options{ Addr: conf.Redis.Address, Username: conf.Redis.Username, Password: conf.Redis.Password, DB: conf.Redis.DB, - }) + } + if conf.Redis.UseTLS { + rcOptions = &redis.Options{ + Addr: conf.Redis.Address, + Username: conf.Redis.Username, + Password: conf.Redis.Password, + DB: conf.Redis.DB, + TLSConfig: &tls.Config{ + MinVersion: tls.VersionTLS12, + }, + } + } + rc := redis.NewClient(rcOptions) err := rc.Ping(context.Background()).Err() if err != nil { err = errors.Wrap(err, "unable to connect to redis")