Skip to content

Commit ea065fe

Browse files
authored
Merge pull request #5 from wy65701436/release/2.8-tls
enable tls
2 parents f5abda5 + b4ae14e commit ea065fe

File tree

30 files changed

+3090
-1402
lines changed

30 files changed

+3090
-1402
lines changed

cmd/registry/config-cache.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ http:
2121
X-Content-Type-Options: [nosniff]
2222
redis:
2323
addr: localhost:6379
24+
enabletls: true
2425
pool:
2526
maxidle: 16
2627
maxactive: 64

configuration/configuration.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,8 @@ type Configuration struct {
177177
// DB specifies the database to connect to on the redis instance.
178178
DB int `yaml:"db,omitempty"`
179179

180+
EnableTLS bool `yaml:"enabletls,omitempty"`
181+
180182
DialTimeout time.Duration `yaml:"dialtimeout,omitempty"` // timeout for connect
181183
ReadTimeout time.Duration `yaml:"readtimeout,omitempty"` // timeout for reads of data
182184
WriteTimeout time.Duration `yaml:"writetimeout,omitempty"` // timeout for writes of data

registry/handlers/app.go

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import (
4141
"github.com/docker/distribution/version"
4242
"github.com/docker/go-metrics"
4343
"github.com/docker/libtrust"
44-
"github.com/garyburd/redigo/redis"
44+
"github.com/gomodule/redigo/redis"
4545
"github.com/gorilla/mux"
4646
"github.com/sirupsen/logrus"
4747
)
@@ -503,15 +503,28 @@ func (app *App) configureRedis(configuration *configuration.Configuration) {
503503

504504
var getRedisAddr func() (string, error)
505505
var testOnBorrow func(c redis.Conn, t time.Time) error
506+
507+
var redisOptions []redis.DialOption
508+
if configuration.Redis.DialTimeout > 0 {
509+
redisOptions = append(redisOptions, redis.DialConnectTimeout(configuration.Redis.DialTimeout))
510+
}
511+
if configuration.Redis.ReadTimeout > 0 {
512+
redisOptions = append(redisOptions, redis.DialReadTimeout(configuration.Redis.ReadTimeout))
513+
}
514+
if configuration.Redis.WriteTimeout > 0 {
515+
redisOptions = append(redisOptions, redis.DialWriteTimeout(configuration.Redis.WriteTimeout))
516+
}
517+
if configuration.Redis.EnableTLS {
518+
redisOptions = append(redisOptions, redis.DialUseTLS(true))
519+
}
520+
506521
if configuration.Redis.SentinelMasterSet != "" {
507522
sntnl := &sentinel.Sentinel{
508523
Addrs: strings.Split(configuration.Redis.Addr, ","),
509524
MasterName: configuration.Redis.SentinelMasterSet,
510525
Dial: func(addr string) (redis.Conn, error) {
511-
c, err := redis.DialTimeout("tcp", addr,
512-
configuration.Redis.DialTimeout,
513-
configuration.Redis.ReadTimeout,
514-
configuration.Redis.WriteTimeout)
526+
c, err := redis.Dial("tcp", addr,
527+
redisOptions...)
515528
if err != nil {
516529
return nil, err
517530
}
@@ -559,10 +572,8 @@ func (app *App) configureRedis(configuration *configuration.Configuration) {
559572
if err != nil {
560573
return nil, err
561574
}
562-
conn, err := redis.DialTimeout("tcp", redisAddr,
563-
configuration.Redis.DialTimeout,
564-
configuration.Redis.ReadTimeout,
565-
configuration.Redis.WriteTimeout)
575+
conn, err := redis.Dial("tcp", redisAddr,
576+
redisOptions...)
566577
if err != nil {
567578
dcontext.GetLogger(app).Errorf("error connecting to redis instance %s: %v",
568579
configuration.Redis.Addr, err)

registry/handlers/app_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,32 @@ func TestNewAppWithRedisSentinelCluster(t *testing.T) {
209209
runAppWithConfig(t, config)
210210
}
211211

212+
// TestNewApp covers the creation of an application via NewApp with a
213+
// configuration(with redis sentinel cluster).
214+
func TestNewAppWithRedisTLSSentinelCluster(t *testing.T) {
215+
config := configuration.Configuration{
216+
Storage: configuration.Storage{
217+
"testdriver": nil,
218+
"maintenance": configuration.Parameters{"uploadpurging": map[interface{}]interface{}{
219+
"enabled": false,
220+
}},
221+
},
222+
Auth: configuration.Auth{
223+
// For now, we simply test that new auth results in a viable
224+
// application.
225+
"silly": {
226+
"realm": "realm-test",
227+
"service": "service-test",
228+
},
229+
},
230+
}
231+
config.Redis.Addr = "192.168.0.11:26379,192.168.0.12:26379"
232+
config.Redis.DB = 0
233+
config.Redis.SentinelMasterSet = "mymaster"
234+
config.Redis.EnableTLS = true
235+
runAppWithConfig(t, config)
236+
}
237+
212238
func runAppWithConfig(t *testing.T, config configuration.Configuration) {
213239
ctx := context.Background()
214240
// Mostly, with this test, given a sane configuration, we are simply

registry/storage/cache/redis/redis.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/distribution/reference"
88
"github.com/docker/distribution"
99
"github.com/docker/distribution/registry/storage/cache"
10-
"github.com/garyburd/redigo/redis"
10+
"github.com/gomodule/redigo/redis"
1111
"github.com/opencontainers/go-digest"
1212
)
1313

registry/storage/cache/redis/redis_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"time"
88

99
"github.com/docker/distribution/registry/storage/cache/cachecheck"
10-
"github.com/garyburd/redigo/redis"
10+
"github.com/gomodule/redigo/redis"
1111
)
1212

1313
var redisAddr string

vendor.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ github.com/dgrijalva/jwt-go 4bbdd8ac624fc7a9ef7aec841c43d99b5fe65a29 https://git
1212
github.com/distribution/reference 49c28499d219290c3226822e9cfcd4ede6d75379 # v0.5.0
1313
github.com/docker/go-metrics 399ea8c73916000c64c2c76e8da00ca82f8387ab
1414
github.com/docker/libtrust fa567046d9b14f6aa788882a950d69651d230b21
15-
github.com/garyburd/redigo 535138d7bcd717d6531c701ef5933d98b1866257
15+
github.com/gomodule/redigo a83ebbeea6928a0236f332458532b8e978d51f11
1616
github.com/go-ini/ini 2ba15ac2dc9cdf88c110ec2dc0ced7fa45f5678c
1717
github.com/golang/protobuf 8d92cf5fc15a4382f8964b08e1f42a75c0591aa3
1818
github.com/gorilla/handlers 60c7bfde3e33c201519a200a4507a158cc03a17b
@@ -51,4 +51,4 @@ gopkg.in/yaml.v2 v2.2.1
5151
rsc.io/letsencrypt e770c10b0f1a64775ae91d240407ce00d1a5bdeb https://github.com/dmcgowan/letsencrypt.git
5252
github.com/opencontainers/go-digest ea51bea511f75cfa3ef6098cc253c5c3609b037a # v1.0.0
5353
github.com/opencontainers/image-spec 67d2d5658fe0476ab9bf414cec164077ebff3920 # v1.0.2
54-
github.com/FZambia/sentinel 5585739eb4b6478aa30161866ccf9ce0ef5847c7 https://github.com/jeremyxu2010/sentinel.git
54+
github.com/FZambia/sentinel f57c7b5fd3c67c6f12bf1a29d757af6e5add30b4

vendor/github.com/FZambia/sentinel/README.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/FZambia/sentinel/sentinel.go

Lines changed: 1 addition & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/garyburd/redigo/README.markdown

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)