Skip to content

Commit 14b1c36

Browse files
authored
Integrate golangci-lint (#114)
1 parent cd633bc commit 14b1c36

34 files changed

+206
-133
lines changed

.golangci.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
linters-settings:
2+
errcheck:
3+
check-type-assertions: true
4+
goconst:
5+
min-len: 2
6+
min-occurrences: 3
7+
govet:
8+
check-shadowing: true
9+
nolintlint:
10+
require-explanation: true
11+
require-specific: true
12+
13+
linters:
14+
enable:
15+
- dupl
16+
- goconst
17+
- gocritic
18+
- gofmt
19+
- goimports
20+
- misspell
21+
- whitespace
22+
23+
run:
24+
issues-exit-code: 1
25+
concurrency: 4
26+
skip:
27+
- .*_mock.go
28+
- mocks/
29+
- pkg/api/

Makefile

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,29 @@ fmt: ## Run go fmt against code.
5454
vet: ## Run go vet against code.
5555
go vet ./...
5656

57+
mod:
58+
go mod download
59+
60+
tidy:
61+
go mod tidy
62+
63+
golangci-lint: ## Download golangci-lint
64+
@mkdir -p $(shell pwd)/bin
65+
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(shell pwd)/bin v1.43.0
66+
67+
.PHONY: lint
68+
lint: golangci-lint ## Run linter
69+
$(shell pwd)/bin/golangci-lint run
70+
71+
.PHONY: goimports
72+
goimports: ## run goimports updating files in place
73+
goimports -w .
74+
5775
ENVTEST_ASSETS_DIR=$(shell pwd)/testbin
5876
test: manifests generate generate-mocks fmt vet test-setup ## Run tests.
5977
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; setup_envtest_env $(ENVTEST_ASSETS_DIR); go test ./... -coverprofile cover.out -covermode=atomic
6078

61-
test-setup: # setup test environment
79+
test-setup: ## setup test environment
6280
mkdir -p ${ENVTEST_ASSETS_DIR}
6381
test -f ${ENVTEST_ASSETS_DIR}/setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR}/setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/v0.7.2/hack/setup-envtest.sh
6482
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR)
@@ -80,7 +98,8 @@ integration-cleanup: kind ## Cleanup integration test resources in Cloud Map an
8098

8199
##@ Build
82100

83-
build: manifests generate generate-mocks fmt vet ## Build manager binary.
101+
.DEFAULT: build
102+
build: manifests generate generate-mocks fmt vet lint ## Build manager binary.
84103
go build -ldflags="-s -w -X ${PKG}.GitVersion=${GIT_TAG} -X ${PKG}.GitCommit=${GIT_COMMIT}" -o bin/manager main.go
85104

86105
run: manifests generate generate-mocks fmt vet ## Run a controller from your host.

config/rbac/role.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
apiVersion: rbac.authorization.k8s.io/v1
44
kind: ClusterRole
55
metadata:
6+
creationTimestamp: null
67
name: manager-role
78
rules:
89
- apiGroups:
@@ -18,22 +19,22 @@ rules:
1819
- services
1920
verbs:
2021
- create
22+
- delete
2123
- get
2224
- list
23-
- watch
2425
- update
25-
- delete
26+
- watch
2627
- apiGroups:
2728
- discovery.k8s.io
2829
resources:
2930
- endpointslices
3031
verbs:
3132
- create
33+
- delete
3234
- get
3335
- list
34-
- watch
3536
- update
36-
- delete
37+
- watch
3738
- apiGroups:
3839
- multicluster.x-k8s.io
3940
resources:

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/onsi/ginkgo v1.14.1
1212
github.com/onsi/gomega v1.10.2
1313
github.com/stretchr/testify v1.6.1
14-
gotest.tools v2.2.0+incompatible
14+
golang.org/x/tools v0.1.7 // indirect
1515
k8s.io/api v0.20.2
1616
k8s.io/apimachinery v0.20.2
1717
k8s.io/client-go v0.20.2

go.sum

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb
394394
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
395395
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
396396
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
397+
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
397398
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
398399
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
399400
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
@@ -488,8 +489,9 @@ golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLL
488489
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
489490
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
490491
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
491-
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
492492
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
493+
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d h1:20cMwl2fHAzkJMEA+8J4JgqBQcQGzbisXo31MIeenXI=
494+
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
493495
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
494496
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
495497
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -541,16 +543,19 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w
541543
golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
542544
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
543545
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
544-
golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
546+
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
545547
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
548+
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA=
549+
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
546550
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
547551
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
548552
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
549553
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
550554
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
551555
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
552-
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
553556
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
557+
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
558+
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
554559
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
555560
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
556561
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -598,8 +603,9 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK
598603
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
599604
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
600605
golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
601-
golang.org/x/tools v0.1.1 h1:wGiQel/hW0NnEkJUk8lbzkX2gFJU6PFxf1v5OlCfuOs=
602606
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
607+
golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ=
608+
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
603609
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
604610
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
605611
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -689,7 +695,6 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
689695
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
690696
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
691697
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
692-
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
693698
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
694699
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
695700
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

integration/janitor/api.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package janitor
22

33
import (
44
"context"
5+
56
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/pkg/cloudmap"
67
"github.com/aws/aws-sdk-go-v2/aws"
78
sd "github.com/aws/aws-sdk-go-v2/service/servicediscovery"

integration/janitor/api_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ package janitor
22

33
import (
44
"context"
5+
"testing"
6+
57
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/mocks/integration/janitor"
68
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/test"
79
"github.com/aws/aws-sdk-go-v2/aws"
810
sd "github.com/aws/aws-sdk-go-v2/service/servicediscovery"
911
"github.com/golang/mock/gomock"
1012
"github.com/stretchr/testify/assert"
11-
"testing"
1213
)
1314

1415
func TestNewServiceDiscoveryJanitorApiFromConfig(t *testing.T) {
@@ -20,7 +21,7 @@ func TestServiceDiscoveryJanitorApi_DeleteNamespace_HappyCase(t *testing.T) {
2021
defer mockController.Finish()
2122

2223
mocksdk := janitor.NewMockSdkJanitorFacade(mockController)
23-
jApi := getJanitorApi(t, mocksdk)
24+
jApi := getJanitorApi(mocksdk)
2425

2526
mocksdk.EXPECT().DeleteNamespace(context.TODO(), &sd.DeleteNamespaceInput{Id: aws.String(test.NsId)}).
2627
Return(&sd.DeleteNamespaceOutput{OperationId: aws.String(test.OpId1)}, nil)
@@ -35,7 +36,7 @@ func TestServiceDiscoveryJanitorApi_DeleteService_HappyCase(t *testing.T) {
3536
defer mockController.Finish()
3637

3738
mocksdk := janitor.NewMockSdkJanitorFacade(mockController)
38-
jApi := getJanitorApi(t, mocksdk)
39+
jApi := getJanitorApi(mocksdk)
3940

4041
mocksdk.EXPECT().DeleteService(context.TODO(), &sd.DeleteServiceInput{Id: aws.String(test.SvcId)}).
4142
Return(&sd.DeleteServiceOutput{}, nil)
@@ -44,7 +45,7 @@ func TestServiceDiscoveryJanitorApi_DeleteService_HappyCase(t *testing.T) {
4445
assert.Nil(t, err, "No error for happy case")
4546
}
4647

47-
func getJanitorApi(t *testing.T, sdk *janitor.MockSdkJanitorFacade) ServiceDiscoveryJanitorApi {
48+
func getJanitorApi(sdk *janitor.MockSdkJanitorFacade) ServiceDiscoveryJanitorApi {
4849
return &serviceDiscoveryJanitorApi{
4950
janitorFacade: sdk,
5051
}

integration/janitor/aws_facade.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package janitor
22

33
import (
44
"context"
5+
56
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/pkg/cloudmap"
67
"github.com/aws/aws-sdk-go-v2/aws"
78
sd "github.com/aws/aws-sdk-go-v2/service/servicediscovery"

integration/janitor/janitor.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ package janitor
33
import (
44
"context"
55
"fmt"
6+
"os"
7+
68
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/pkg/cloudmap"
79
"github.com/aws/aws-sdk-go-v2/aws"
810
"github.com/aws/aws-sdk-go-v2/config"
9-
"os"
1011
)
1112

1213
// CloudMapJanitor handles AWS Cloud Map resource cleanup during integration tests.

integration/janitor/janitor_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ package janitor
22

33
import (
44
"context"
5+
"testing"
6+
57
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/mocks/integration/janitor"
68
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/pkg/model"
79
"github.com/aws/aws-cloud-map-mcs-controller-for-k8s/test"
810
"github.com/aws/aws-sdk-go-v2/aws"
911
"github.com/aws/aws-sdk-go-v2/service/servicediscovery/types"
1012
"github.com/golang/mock/gomock"
1113
"github.com/stretchr/testify/assert"
12-
"testing"
1314
)
1415

1516
type testJanitor struct {

0 commit comments

Comments
 (0)