forked from prometheus-operator/prometheus-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.golangci-kal.yml
More file actions
68 lines (68 loc) · 2.45 KB
/
.golangci-kal.yml
File metadata and controls
68 lines (68 loc) · 2.45 KB
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
# This file holds the Kube-API-Linter (KAL) configuration.
# KAL ensures that our Custom Resource Definitions meet the Kubernetes API
# conventions (as much as possible).
#
# The linters documentation is at
# https://github.com/kubernetes-sigs/kube-api-linter/blob/main/docs/linters.md
version: "2"
run:
go: "1.25"
allow-parallel-runners: true
linters:
default: none
enable:
- kubeapilinter
settings:
custom:
kubeapilinter:
type: module
description: KAL is the Kube-API-Linter and lints Custom Resource Definitions (CRDs) based on API conventions and best practices.
settings:
linters:
# We configure the list of enabled linters explicitly.
# Whenever a new linter is added, it should not break the backward
# compatibility of existing APIs (at least for v1 APIs).
enable:
- "nobools"
- "commentstart"
- "conflictingmarkers"
- "duplicatemarkers"
- "nofloats"
- "optionalorrequired"
- "statussubresource"
- "uniquemarkers"
- "jsontags"
- "statusoptional"
- "nophase"
- "nonullable"
- "forbiddenmarkers"
- "nomaps"
disable:
- "*"
lintersConfig:
conflictingmarkers:
conflicts:
- name: "default_vs_required"
sets:
- ["default", "kubebuilder:default"]
- ["required", "kubebuilder:validation:Required", "k8s:required"]
description: "A field with a default value cannot be required"
forbiddenmarkers:
markers:
- identifier: "+kubebuilder:pruning:PreserveUnknownFields"
- identifier: "+kubebuilder:validation:XPreserveUnknownFields"
- identifier: "+kubebuilder:validation:items:XPreserveUnknownFields"
- identifier: "+kubebuilder:validation:EmbeddedResource"
- identifier: "+kubebuilder:validation:XEmbeddedResource"
- identifier: "+kubebuilder:validation:items:XEmbeddedResource"
exclusions:
generated: strict
paths:
# Exclude test files and generated code.
- _test\.go
- zz_generated.*\.go$
rules:
# KAL only validates the API folders.
- path-except: pkg/apis/monitoring/
linters:
- kubeapilinter