-
Notifications
You must be signed in to change notification settings - Fork 4
/
.golangci.yml
124 lines (120 loc) · 3 KB
/
.golangci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# Copyright 2021-2023 Nutanix. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
run:
timeout: 10m
build-tags:
- e2e
linters:
disable-all: true
enable:
- containedctx
- contextcheck
- depguard
- errcheck
- errchkjson
- errname
- gochecknoinits
- gci
- goconst
- gocritic
- gocyclo
- godot
- gofumpt
- gosec
- gosimple
- govet
- ineffassign
- importas
- lll
- misspell
- nolintlint
- prealloc
- staticcheck
- stylecheck
- tenv
- testifylint
- thelper
- tparallel
- unconvert
- unparam
- unused
- whitespace
linters-settings:
depguard:
rules:
main:
list-mode: lax # Allow everything unless explicitly denied below.
deny:
- pkg: k8s.io/kubernetes
desc: "do not use k8s.io/kubernetes directly"
- pkg: sigs.k8s.io/cluster-api-provider-
desc: "do not use CAPI providers directly, instead vendor necessary APIs"
- pkg: sigs.k8s.io/cluster-api-addon-provider-
desc: "do not use CAPI providers directly, instead vendor necessary APIs"
errcheck:
exclude-functions:
- encoding/json.Marshal
- encoding/json.MarshalIndent
errchkjson:
check-error-free-encoding: true
gci:
sections:
- Standard
- Default
- Prefix(github.com/nutanix-cloud-native)
- Prefix(github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix)
gocritic:
enabled-tags:
- diagnostic
- experimental
- opinionated
- performance
- style
gofumpt:
extra-rules: true
importas:
no-unaliased: false
alias:
- pkg: "sigs.k8s.io/cluster-api/api/v1beta1"
alias: clusterv1
lll:
line-length: 120
stylecheck:
# https://staticcheck.io/docs/configuration/options/#dot_import_whitelist
dot-import-whitelist:
- github.com/onsi/ginkgo/v2
- github.com/onsi/gomega
testifylint:
enable-all: true
issues:
exclude-dirs:
# Although this is actually in api/external, api is a go module
# and so need to specify the dir relative to the module root.
- external
exclude-rules:
# ignore errcheck for flags.Parse (it is expected that we flag.ExitOnError)
# ignore response.WriteError as it always returns the err it was passed
- source: "flags.Parse|response.WriteError"
linters:
- errcheck
- source: "// \\+kubebuilder:"
linters:
- lll
# Idiomatic to use pass holderRef by value
- text: "hugeParam: holderRef is heavy"
linters:
- gocritic
# Admission request interface is defined by k8s
- path: pkg/webhook
text: "hugeParam: req is heavy"
linters:
- gocritic
# This is not a problem in tests
- path: internal/test/envtest
text: "hugeParam: webhookInstallOptions is heavy"
linters:
- gocritic
- path: internal/test/envtest
text: "hugeParam: input is heavy"
linters:
- gocritic