From eefc6a7894e1c9d28267a7a96149a0553e1c9b94 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 30 Nov 2021 11:00:46 -0800 Subject: [PATCH] reload console certs upon SIGHUP (#1268) --- .github/workflows/compiles.yml | 2 +- .github/workflows/crosscompile-1.yml | 2 +- .github/workflows/crosscompile-2.yml | 2 +- .github/workflows/crosscompile-3.yml | 2 +- .github/workflows/crosscompile-4.yml | 2 +- .github/workflows/crosscompile-5.yml | 2 +- .github/workflows/go-test-pkg.yml | 2 +- .github/workflows/go.yml | 2 +- .github/workflows/integration.yml | 2 +- .github/workflows/lint.yml | 2 +- README.md | 6 +- cmd/console/operator.go | 5 ++ cmd/console/server.go | 5 ++ go.mod | 115 ++++++++++++++++++++++++++- go.sum | 4 +- 15 files changed, 138 insertions(+), 17 deletions(-) diff --git a/.github/workflows/compiles.yml b/.github/workflows/compiles.yml index 66ab7913f..943ac638d 100644 --- a/.github/workflows/compiles.yml +++ b/.github/workflows/compiles.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/crosscompile-1.yml b/.github/workflows/crosscompile-1.yml index 6114c0625..1e7ffdc1b 100644 --- a/.github/workflows/crosscompile-1.yml +++ b/.github/workflows/crosscompile-1.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/crosscompile-2.yml b/.github/workflows/crosscompile-2.yml index 65cebc7fe..db634cb12 100644 --- a/.github/workflows/crosscompile-2.yml +++ b/.github/workflows/crosscompile-2.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/crosscompile-3.yml b/.github/workflows/crosscompile-3.yml index 460e0bfbb..c6ae1918d 100644 --- a/.github/workflows/crosscompile-3.yml +++ b/.github/workflows/crosscompile-3.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/crosscompile-4.yml b/.github/workflows/crosscompile-4.yml index 90a5bf122..a5affb1e4 100644 --- a/.github/workflows/crosscompile-4.yml +++ b/.github/workflows/crosscompile-4.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/crosscompile-5.yml b/.github/workflows/crosscompile-5.yml index e4885299b..6553ecd3b 100644 --- a/.github/workflows/crosscompile-5.yml +++ b/.github/workflows/crosscompile-5.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/go-test-pkg.yml b/.github/workflows/go-test-pkg.yml index 38d38f4f5..d2ba68958 100644 --- a/.github/workflows/go-test-pkg.yml +++ b/.github/workflows/go-test-pkg.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index e853090d5..6f13cbae5 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x, 1.17.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index fd12a4a29..23e6a16a1 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -21,7 +21,7 @@ jobs: strategy: matrix: - go-version: [1.16.x, 1.17.x] + go-version: [1.17.x] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5f429af65..d9e561c4c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.16.x, 1.17.x] + go-version: [1.17.x] os: [ubuntu-latest] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} diff --git a/README.md b/README.md index 89c980186..1ae771aad 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ docker pull minio/console ``` ### Build from source +> You will need a working Go environment. Therefore, please follow [How to install Go](https://golang.org/doc/install). +> Minimum version required is go1.17 ``` -GO111MODULE=on go install github.com/minio/console/cmd/console@latest +go install github.com/minio/console/cmd/console@latest ``` -> You will need a working Go environment. Therefore, please follow [How to install Go](https://golang.org/doc/install). -> Minimum version required is go1.16 ## Setup diff --git a/cmd/console/operator.go b/cmd/console/operator.go index d7cd481e6..df00e95b5 100644 --- a/cmd/console/operator.go +++ b/cmd/console/operator.go @@ -21,6 +21,7 @@ import ( "io/ioutil" "path/filepath" "strconv" + "syscall" "time" "github.com/minio/console/restapi" @@ -173,6 +174,10 @@ func loadOperatorAllCerts(ctx *cli.Context) error { } } + if restapi.GlobalTLSCertsManager != nil { + restapi.GlobalTLSCertsManager.ReloadOnSignal(syscall.SIGHUP) + } + return nil } diff --git a/cmd/console/server.go b/cmd/console/server.go index 507215915..c3ab5fc8d 100644 --- a/cmd/console/server.go +++ b/cmd/console/server.go @@ -22,6 +22,7 @@ import ( "os" "path/filepath" "strconv" + "syscall" "time" "github.com/go-openapi/loads" @@ -172,6 +173,10 @@ func loadAllCerts(ctx *cli.Context) error { } } + if restapi.GlobalTLSCertsManager != nil { + restapi.GlobalTLSCertsManager.ReloadOnSignal(syscall.SIGHUP) + } + return nil } diff --git a/go.mod b/go.mod index 9dc446199..d430f14a1 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/minio/console -go 1.16 +go 1.17 require ( github.com/blang/semver/v4 v4.0.0 @@ -24,7 +24,7 @@ require ( github.com/minio/minio-go/v7 v7.0.15 github.com/minio/operator v0.0.0-20211011212245-31460bbbc4b7 github.com/minio/operator/logsearchapi v0.0.0-20211011212245-31460bbbc4b7 - github.com/minio/pkg v1.1.7 + github.com/minio/pkg v1.1.9 github.com/minio/selfupdate v0.3.1 github.com/mitchellh/go-homedir v1.1.0 github.com/rs/xid v1.3.0 @@ -40,4 +40,115 @@ require ( k8s.io/client-go v0.21.1 ) +require ( + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/StackExchange/wmi v1.2.1 // indirect + github.com/VividCortex/ewma v1.1.1 // indirect + github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/briandowns/spinner v1.16.0 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cheggaaa/pb v1.0.29 // indirect + github.com/coreos/go-semver v0.3.0 // indirect + github.com/coreos/go-systemd/v22 v22.3.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0 // indirect + github.com/docker/go-units v0.4.0 // indirect + github.com/emicklei/go-restful v2.9.5+incompatible // indirect + github.com/evanphx/json-patch v4.9.0+incompatible // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/fatih/structs v1.1.0 // indirect + github.com/georgysavva/scany v0.2.7 // indirect + github.com/go-logr/logr v0.4.0 // indirect + github.com/go-ole/go-ole v1.2.5 // indirect + github.com/go-openapi/analysis v0.20.0 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.5 // indirect + github.com/go-stack/stack v1.8.0 // indirect + github.com/goccy/go-json v0.7.9 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt v3.2.2+incompatible // indirect + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/google/go-cmp v0.5.5 // indirect + github.com/google/gofuzz v1.1.0 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/googleapis/gnostic v0.5.1 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect + github.com/lestrrat-go/blackmagic v1.0.0 // indirect + github.com/lestrrat-go/httpcc v1.0.0 // indirect + github.com/lestrrat-go/iter v1.0.1 // indirect + github.com/lestrrat-go/jwx v1.2.7 // indirect + github.com/lestrrat-go/option v1.0.0 // indirect + github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.10 // indirect + github.com/mattn/go-ieproxy v0.0.1 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/mb0/glob v0.0.0-20160210091149-1eb79d2de6c4 // indirect + github.com/minio/argon2 v1.0.0 // indirect + github.com/minio/colorjson v1.0.1 // indirect + github.com/minio/filepath v1.0.0 // indirect + github.com/minio/md5-simd v1.1.2 // indirect + github.com/minio/sha256-simd v1.0.0 // indirect + github.com/mitchellh/mapstructure v1.4.1 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/philhofer/fwd v1.1.1 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pkg/profile v1.6.0 // indirect + github.com/pkg/xattr v0.4.3 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/posener/complete v1.2.3 // indirect + github.com/prometheus/client_golang v1.11.0 // indirect + github.com/prometheus/client_model v0.2.0 // indirect + github.com/prometheus/common v0.31.1 // indirect + github.com/prometheus/procfs v0.7.3 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/rjeczalik/notify v0.9.2 // indirect + github.com/shirou/gopsutil/v3 v3.21.8 // indirect + github.com/sirupsen/logrus v1.8.1 // indirect + github.com/stretchr/objx v0.2.0 // indirect + github.com/tidwall/gjson v1.10.2 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.0 // indirect + github.com/tinylib/msgp v1.1.6 // indirect + github.com/tklauser/go-sysconf v0.3.9 // indirect + github.com/tklauser/numcpus v0.3.0 // indirect + go.etcd.io/etcd/api/v3 v3.5.0 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.0 // indirect + go.etcd.io/etcd/client/v3 v3.5.0 // indirect + go.mongodb.org/mongo-driver v1.4.6 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.7.0 // indirect + go.uber.org/zap v1.19.1 // indirect + golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 // indirect + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect + google.golang.org/appengine v1.6.6 // indirect + google.golang.org/genproto v0.0.0-20210928142010-c7af6a1a74c9 // indirect + google.golang.org/grpc v1.41.0 // indirect + google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/h2non/filetype.v1 v1.0.5 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.63.2 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + k8s.io/klog/v2 v2.8.0 // indirect + k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 // indirect + k8s.io/utils v0.0.0-20201110183641-67b214c5f920 // indirect + maze.io/x/duration v0.0.0-20160924141736-faac084b6075 // indirect + sigs.k8s.io/controller-runtime v0.8.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.1.0 // indirect + sigs.k8s.io/yaml v1.2.0 // indirect +) + replace google.golang.org/grpc => google.golang.org/grpc v1.29.1 diff --git a/go.sum b/go.sum index c4f4d36cc..1bb37d67d 100644 --- a/go.sum +++ b/go.sum @@ -929,8 +929,8 @@ github.com/minio/pkg v1.0.3/go.mod h1:obU54TZ9QlMv0TRaDgQ/JTzf11ZSXxnSfLrm4tMtBP github.com/minio/pkg v1.0.4/go.mod h1:obU54TZ9QlMv0TRaDgQ/JTzf11ZSXxnSfLrm4tMtBP8= github.com/minio/pkg v1.0.11/go.mod h1:32x/3OmGB0EOi1N+3ggnp+B5VFkSBBB9svPMVfpnf14= github.com/minio/pkg v1.1.3/go.mod h1:32x/3OmGB0EOi1N+3ggnp+B5VFkSBBB9svPMVfpnf14= -github.com/minio/pkg v1.1.7 h1:v+2/ol/h1Sl0iJdOFN1Srk4CzksMIDsfugXCZYb5L7Y= -github.com/minio/pkg v1.1.7/go.mod h1:32x/3OmGB0EOi1N+3ggnp+B5VFkSBBB9svPMVfpnf14= +github.com/minio/pkg v1.1.9 h1:NJrcrQyFCSgyF+u6v7FbPXjjNV0oSnBuBevhsTKmA2U= +github.com/minio/pkg v1.1.9/go.mod h1:32x/3OmGB0EOi1N+3ggnp+B5VFkSBBB9svPMVfpnf14= github.com/minio/selfupdate v0.3.1 h1:BWEFSNnrZVMUWXbXIgLDNDjbejkmpAmZvy/nCz1HlEs= github.com/minio/selfupdate v0.3.1/go.mod h1:b8ThJzzH7u2MkF6PcIra7KaXO9Khf6alWPvMSyTDCFM= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=