-
Notifications
You must be signed in to change notification settings - Fork 2
/
custom_validation.go
111 lines (109 loc) · 10.2 KB
/
custom_validation.go
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
/*
* SPDX-FileCopyrightText: The terraform-provider-k8s Authors
* SPDX-License-Identifier: 0BSD
*/
package generator
var customValidations = map[string]map[string][]string{
"apps_daemon_set_v1": {
"spec.minReadySeconds": {"int64validator.AtLeast(0)"},
"spec.replicas": {"int64validator.AtLeast(0)"},
"spec.revisionHistoryLimit": {"int64validator.AtLeast(0)"},
"spec.selector.matchLabels": {"validators.LabelValidator()"},
"spec.template.metadata.annotations": {"validators.AnnotationValidator()"},
"spec.template.metadata.labels": {"validators.LabelValidator()"},
"spec.template.spec.activeDeadlineSeconds": {"int64validator.AtLeast(0)"},
"spec.template.spec.containers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.containers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.dnsPolicy": {`stringvalidator.OneOf("ClusterFirstWithHostNet", "ClusterFirst", "Default", "None")`},
"spec.updateStrategy.type": {`stringvalidator.OneOf("RollingUpdate", "OnDelete")`},
"spec.template.spec.ephemeralContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.ephemeralContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.initContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.initContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.preemptionPolicy": {`stringvalidator.OneOf("Never", "PreemptLowerPriority")`},
"spec.template.spec.restartPolicy": {`stringvalidator.OneOf("Always", "OnFailure", "Never")`},
"spec.template.spec.terminationGracePeriodSeconds": {"int64validator.AtLeast(0)"},
},
"apps_deployment_v1": {
"spec.minReadySeconds": {"int64validator.AtLeast(0)"},
"spec.replicas": {"int64validator.AtLeast(0)"},
"spec.revisionHistoryLimit": {"int64validator.AtLeast(0)"},
"spec.selector.matchLabels": {"validators.LabelValidator()"},
"spec.strategy.type": {`stringvalidator.OneOf("Recreate", "RollingUpdate")`},
"spec.template.metadata.annotations": {"validators.AnnotationValidator()"},
"spec.template.metadata.labels": {"validators.LabelValidator()"},
"spec.template.spec.activeDeadlineSeconds": {"int64validator.AtLeast(0)"},
"spec.template.spec.containers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.containers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.dnsPolicy": {`stringvalidator.OneOf("ClusterFirstWithHostNet", "ClusterFirst", "Default", "None")`},
"spec.template.spec.ephemeralContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.ephemeralContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.initContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.initContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.preemptionPolicy": {`stringvalidator.OneOf("Never", "PreemptLowerPriority")`},
"spec.template.spec.restartPolicy": {`stringvalidator.OneOf("Always", "OnFailure", "Never")`},
"spec.template.spec.terminationGracePeriodSeconds": {"int64validator.AtLeast(0)"},
},
"apps_replica_set_v1": {
"spec.minReadySeconds": {"int64validator.AtLeast(0)"},
"spec.replicas": {"int64validator.AtLeast(0)"},
"spec.selector.matchLabels": {"validators.LabelValidator()"},
"spec.template.metadata.annotations": {"validators.AnnotationValidator()"},
"spec.template.metadata.labels": {"validators.LabelValidator()"},
"spec.template.spec.activeDeadlineSeconds": {"int64validator.AtLeast(0)"},
"spec.template.spec.containers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.containers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.dnsPolicy": {`stringvalidator.OneOf("ClusterFirstWithHostNet", "ClusterFirst", "Default", "None")`},
"spec.template.spec.ephemeralContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.ephemeralContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.initContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.initContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.preemptionPolicy": {`stringvalidator.OneOf("Never", "PreemptLowerPriority")`},
"spec.template.spec.restartPolicy": {`stringvalidator.OneOf("Always", "OnFailure", "Never")`},
"spec.template.spec.terminationGracePeriodSeconds": {"int64validator.AtLeast(0)"},
},
"apps_stateful_set_v1": {
"spec.minReadySeconds": {"int64validator.AtLeast(0)"},
"spec.replicas": {"int64validator.AtLeast(0)"},
"spec.revisionHistoryLimit": {"int64validator.AtLeast(0)"},
"spec.selector.matchLabels": {"validators.LabelValidator()"},
"spec.template.metadata.annotations": {"validators.AnnotationValidator()"},
"spec.template.metadata.labels": {"validators.LabelValidator()"},
"spec.template.spec.activeDeadlineSeconds": {"int64validator.AtLeast(0)"},
"spec.template.spec.containers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.containers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.containers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.dnsPolicy": {`stringvalidator.OneOf("ClusterFirstWithHostNet", "ClusterFirst", "Default", "None")`},
"spec.template.spec.ephemeralContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.ephemeralContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.ephemeralContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.initContainers.imagePullPolicy": {`stringvalidator.OneOf("Always", "Never", "IfNotPresent")`},
"spec.template.spec.initContainers.ports.containerPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.hostPort": {"validators.PortValidator()"},
"spec.template.spec.initContainers.ports.protocol": {`stringvalidator.OneOf("UDP", "TCP", "SCTP")`},
"spec.template.spec.preemptionPolicy": {`stringvalidator.OneOf("Never", "PreemptLowerPriority")`},
"spec.template.spec.restartPolicy": {`stringvalidator.OneOf("Always", "OnFailure", "Never")`},
"spec.template.spec.terminationGracePeriodSeconds": {"int64validator.AtLeast(0)"},
"spec.updateStrategy.type": {`stringvalidator.OneOf("Recreate", "RollingUpdate")`},
},
}