Skip to content

Commit f06740a

Browse files
authored
Update license verifier (#1400)
Signed-off-by: Tamal Saha <tamal@appscode.com>
1 parent ff417d9 commit f06740a

File tree

16 files changed

+49
-217
lines changed

16 files changed

+49
-217
lines changed

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ require (
1414
github.com/robfig/cron/v3 v3.0.1
1515
github.com/spf13/cobra v1.1.3
1616
github.com/spf13/pflag v1.0.5
17-
go.bytebuilders.dev/audit v0.0.12
18-
go.bytebuilders.dev/license-verifier v0.9.5
19-
go.bytebuilders.dev/license-verifier/kubernetes v0.9.5
17+
go.bytebuilders.dev/audit v0.0.13
18+
go.bytebuilders.dev/license-verifier v0.9.6
19+
go.bytebuilders.dev/license-verifier/kubernetes v0.9.6
2020
gomodules.xyz/blobfs v0.1.7
2121
gomodules.xyz/cert v1.2.0
2222
gomodules.xyz/encoding v0.0.2
@@ -39,7 +39,7 @@ require (
3939
k8s.io/kubernetes v1.21.1
4040
kmodules.xyz/client-go v0.0.0-20211122091731-6c471b24a4ea
4141
kmodules.xyz/constants v0.0.0-20210218100002-2c304bfda278
42-
kmodules.xyz/custom-resources v0.0.0-20211007080833-72bd9e8cae6e
42+
kmodules.xyz/custom-resources v0.0.0-20211122142737-3bf3dbd8ac52
4343
kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e
4444
kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61
4545
kmodules.xyz/openshift v0.0.0-20210618001443-f2507caa512f

go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -772,13 +772,13 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
772772
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
773773
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
774774
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
775-
go.bytebuilders.dev/audit v0.0.12 h1:B8kXU/HRJ9ss2J8wEAEBjClFSOE3U4v5IkZQtRH641E=
776-
go.bytebuilders.dev/audit v0.0.12/go.mod h1:ByBiBbgRf3y+frLEWnxjJJCYn4rXN5TTb9Dc0Kfr0tI=
775+
go.bytebuilders.dev/audit v0.0.13 h1:Ne2tYw6aM7p5fbGOxQWfhQvGyv0IVZphLBAK3rMLGFE=
776+
go.bytebuilders.dev/audit v0.0.13/go.mod h1:p5z/qZKf9awnjs8mKSWiwz1OwUdzbK5SXKi+Xtww5HQ=
777777
go.bytebuilders.dev/license-verifier v0.9.3/go.mod h1:GpIW0o8O0wpiBVt7IIz4z7bcPuG8nza8/bCDkaupDn8=
778-
go.bytebuilders.dev/license-verifier v0.9.5 h1:XUbFH3LzHSpQFtVS/MiT5RN0gr/KNNBvnOm78KYoAEQ=
779-
go.bytebuilders.dev/license-verifier v0.9.5/go.mod h1:GpIW0o8O0wpiBVt7IIz4z7bcPuG8nza8/bCDkaupDn8=
780-
go.bytebuilders.dev/license-verifier/kubernetes v0.9.5 h1:KWzmh4qZ+3cR8LpBuUfufb2goK5NuULyE0uKYgt3D50=
781-
go.bytebuilders.dev/license-verifier/kubernetes v0.9.5/go.mod h1:mg5pZDweHlpTTw57kOdLj4bU107hHVP/1xTKKZ1eUNc=
778+
go.bytebuilders.dev/license-verifier v0.9.6 h1:nT4Eplu0OQWM7Re81ZQibkYKeno6nDAwOzaz14Yvadc=
779+
go.bytebuilders.dev/license-verifier v0.9.6/go.mod h1:GpIW0o8O0wpiBVt7IIz4z7bcPuG8nza8/bCDkaupDn8=
780+
go.bytebuilders.dev/license-verifier/kubernetes v0.9.6 h1:QwiUgNug1pD4cwxLuSQmSLn1WvvNreKfBajdymoRmeM=
781+
go.bytebuilders.dev/license-verifier/kubernetes v0.9.6/go.mod h1:b1oIjrDuNN1T3d1ixnr020hi2i0sXlR7CIsWrhkzga4=
782782
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
783783
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
784784
go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
@@ -1222,15 +1222,15 @@ kmodules.xyz/apiversion v0.2.0/go.mod h1:oPX8g8LvlPdPX3Yc5YvCzJHQnw3YF/X4/jdW0b1
12221222
kmodules.xyz/client-go v0.0.0-20210617233340-13d22e91512b/go.mod h1:A6GAK6xP5zBuWK6A/vUkkjKzcuywkms7fIxRf5wblO4=
12231223
kmodules.xyz/client-go v0.0.0-20210928133955-8df5bb467db6/go.mod h1:0gkPeALtYjB27OHt4rd6+ZmMgoVTHVLtEJQeU23/gtA=
12241224
kmodules.xyz/client-go v0.0.0-20211013093146-1fbfd52e78c9/go.mod h1:0gkPeALtYjB27OHt4rd6+ZmMgoVTHVLtEJQeU23/gtA=
1225-
kmodules.xyz/client-go v0.0.0-20211028132207-0cf6ea46b030/go.mod h1:ENUu8pPK19xzBkVpAJHoGCI2QRvb1SqffWRt0K2sV5I=
12261225
kmodules.xyz/client-go v0.0.0-20211107190155-5bb4090d2728/go.mod h1:ENUu8pPK19xzBkVpAJHoGCI2QRvb1SqffWRt0K2sV5I=
12271226
kmodules.xyz/client-go v0.0.0-20211122091731-6c471b24a4ea h1:z5Li57oxum0018ryWpI5w5HYVFgI2S2cVj27R76IRnU=
12281227
kmodules.xyz/client-go v0.0.0-20211122091731-6c471b24a4ea/go.mod h1:ENUu8pPK19xzBkVpAJHoGCI2QRvb1SqffWRt0K2sV5I=
12291228
kmodules.xyz/constants v0.0.0-20210218100002-2c304bfda278 h1:sFmqh4EaiZ4K2FkkGvrDFddstq8GSf6ogH24IAsuKew=
12301229
kmodules.xyz/constants v0.0.0-20210218100002-2c304bfda278/go.mod h1:DbiFk1bJ1KEO94t1SlAn7tzc+Zz95rSXgyUKa2nzPmY=
12311230
kmodules.xyz/crd-schema-fuzz v0.0.0-20210618002152-fae23aef5fb4/go.mod h1:IIkUctlfoptoci0BOrsUf8ya+MOG5uaeh1PE4uzaIbA=
1232-
kmodules.xyz/custom-resources v0.0.0-20211007080833-72bd9e8cae6e h1:0IEUFAJPgwPx3+Zb1BMcHLywKhJtXMk6YCHNsjWJwYQ=
12331231
kmodules.xyz/custom-resources v0.0.0-20211007080833-72bd9e8cae6e/go.mod h1:pGabego8q4oi/2sNjhdtFkgVaVw4AyGv14GO6VtAjTw=
1232+
kmodules.xyz/custom-resources v0.0.0-20211122142737-3bf3dbd8ac52 h1:UWVpU7y5znTUusU+JhPB+ojh26f6K2v8sNb37U1DolQ=
1233+
kmodules.xyz/custom-resources v0.0.0-20211122142737-3bf3dbd8ac52/go.mod h1:yHLFe4wVYxepTnN00CFUf29xH+jEHDokq6d2fbp9pks=
12341234
kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e h1:2QZBUcUI6r7mLU5/9+Xxd1eDClEIEkZkJlyCU91UoY8=
12351235
kmodules.xyz/objectstore-api v0.0.0-20210928135706-fdf68f88ea6e/go.mod h1:Tkcf9uTplnrJ6C8o0zlw2kpgS1SaWAiMO5P2YgLjTo8=
12361236
kmodules.xyz/offshoot-api v0.0.0-20210829122105-6f4d481b0c61 h1:J56UGmRFddu6tERRd8BELmP5QbXxievzb+6vAjFptiM=

pkg/cmds/server/options.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727

2828
"github.com/spf13/pflag"
2929
licenseapi "go.bytebuilders.dev/license-verifier/apis/licenses/v1alpha1"
30+
"go.bytebuilders.dev/license-verifier/info"
3031
license "go.bytebuilders.dev/license-verifier/kubernetes"
3132
crd_cs "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
3233
"k8s.io/apimachinery/pkg/util/sets"
@@ -114,14 +115,14 @@ func (s *ExtraOptions) ApplyTo(cfg *controller.Config) error {
114115
cfg.RestoreJobPSPNames = s.RestoreJobPSPNames
115116

116117
if cfg.LicenseFile != "" {
117-
info := license.NewLicenseEnforcer(cfg.ClientConfig, cfg.LicenseFile).LoadLicense()
118-
if info.Status != licenseapi.LicenseActive {
119-
return fmt.Errorf("license status %s, reason: %s", info.Status, info.Reason)
118+
l := license.NewLicenseEnforcer(cfg.ClientConfig, cfg.LicenseFile).LoadLicense()
119+
if l.Status != licenseapi.LicenseActive {
120+
return fmt.Errorf("license status %s, reason: %s", l.Status, l.Reason)
120121
}
121-
if !sets.NewString(info.Features...).HasAny("stash-community", "kubedb-ext-stash") {
122+
if !sets.NewString(l.Features...).HasAny(info.Features()...) {
122123
return fmt.Errorf("not a valid license for this product")
123124
}
124-
cfg.License = info
125+
cfg.License = l
125126
}
126127

127128
if cfg.KubeClient, err = kubernetes.NewForConfig(cfg.ClientConfig); err != nil {

vendor/go.bytebuilders.dev/audit/lib/nats.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func NewNatsConfig(clusterID string, LicenseFile string) (*NatsConfig, error) {
6161

6262
opts := verifier.Options{
6363
ClusterUID: clusterID,
64-
Features: info.ProductName,
64+
Features: info.Features(),
6565
CACert: []byte(info.LicenseCA),
6666
License: licenseBytes,
6767
}

vendor/go.bytebuilders.dev/license-verifier/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ BIN_PLATFORMS := $(DOCKER_PLATFORMS) windows/amd64 darwin/amd64
6161
OS := $(if $(GOOS),$(GOOS),$(shell go env GOOS))
6262
ARCH := $(if $(GOARCH),$(GOARCH),$(shell go env GOARCH))
6363

64-
BASEIMAGE_PROD ?= gcr.io/distroless/static-debian10
65-
BASEIMAGE_DBG ?= debian:buster
64+
BASEIMAGE_PROD ?= gcr.io/distroless/static-debian11
65+
BASEIMAGE_DBG ?= debian:bullseye
6666

6767
GO_VERSION ?= 1.17
6868
BUILD_IMAGE ?= appscode/golang-dev:$(GO_VERSION)

vendor/go.bytebuilders.dev/license-verifier/info/lib.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"net/url"
2121
"path"
2222
"strconv"
23+
"strings"
24+
"unicode"
2325
)
2426

2527
var (
@@ -37,6 +39,12 @@ var (
3739
registrationAPIPath = "api/v1/register"
3840
)
3941

42+
func Features() []string {
43+
return strings.FieldsFunc(ProductName, func(r rune) bool {
44+
return unicode.IsSpace(r) || r == ',' || r == ';'
45+
})
46+
}
47+
4048
func SkipLicenseVerification() bool {
4149
v, _ := strconv.ParseBool(EnforceLicense)
4250
return !v

vendor/go.bytebuilders.dev/license-verifier/kubernetes/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.16
44

55
require (
66
github.com/gogo/protobuf v1.3.2
7-
go.bytebuilders.dev/license-verifier v0.9.5
7+
go.bytebuilders.dev/license-verifier v0.9.6
88
k8s.io/api v0.21.1
99
k8s.io/apimachinery v0.21.1
1010
k8s.io/apiserver v0.21.1

vendor/go.bytebuilders.dev/license-verifier/kubernetes/lib.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func NewLicenseEnforcer(config *rest.Config, licenseFile string) *LicenseEnforce
7474
config: config,
7575
opts: &verifier.Options{
7676
CACert: []byte(info.LicenseCA),
77-
Features: info.ProductName,
77+
Features: info.Features(),
7878
},
7979
}
8080
}
@@ -227,7 +227,7 @@ func VerifyLicensePeriodically(config *rest.Config, licenseFile string, stopCh <
227227
config: config,
228228
opts: &verifier.Options{
229229
CACert: []byte(info.LicenseCA),
230-
Features: info.ProductName,
230+
Features: info.Features(),
231231
},
232232
}
233233

@@ -286,7 +286,7 @@ func CheckLicenseFile(config *rest.Config, licenseFile string) error {
286286
config: config,
287287
opts: &verifier.Options{
288288
CACert: []byte(info.LicenseCA),
289-
Features: info.ProductName,
289+
Features: info.Features(),
290290
},
291291
}
292292

vendor/go.bytebuilders.dev/license-verifier/lib.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@ import (
2020
"crypto/x509"
2121
"encoding/pem"
2222
"fmt"
23-
"strings"
24-
"unicode"
25-
2623
"go.bytebuilders.dev/license-verifier/apis/licenses/v1alpha1"
24+
"strings"
2725

2826
"github.com/pkg/errors"
2927
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -32,7 +30,7 @@ import (
3230

3331
type Options struct {
3432
ClusterUID string `json:"clusterUID"`
35-
Features string `json:"features"`
33+
Features []string `json:"features"`
3634
CACert []byte `json:"caCert,omitempty"`
3735
License []byte `json:"license"`
3836
}
@@ -165,10 +163,7 @@ func VerifyLicense(opts *Options) (v1alpha1.License, error) {
165163
license.Reason = e2.Error()
166164
return license, e2
167165
}
168-
features := strings.FieldsFunc(opts.Features, func(r rune) bool {
169-
return unicode.IsSpace(r) || r == ',' || r == ';'
170-
})
171-
if !sets.NewString(cert.Subject.Organization...).HasAny(features...) {
166+
if !sets.NewString(cert.Subject.Organization...).HasAny(opts.Features...) {
172167
e2 := fmt.Errorf("license was not issued for %s", opts.Features)
173168
license.Status = v1alpha1.LicenseExpired
174169
license.Reason = e2.Error()

vendor/kmodules.xyz/custom-resources/apis/auditor/v1alpha1/openapi_generated.go

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

0 commit comments

Comments
 (0)