|
1 | 1 | package main |
2 | | - |
3 | | -warn[msg] { |
4 | | - input.apiVersion != "v1" |
5 | | - input.kind != "List" |
6 | | - msg := _warn |
7 | | -} |
| 2 | +import rego.v1 |
8 | 3 |
|
9 | 4 | # All resources will no longer be served from rbac.authorization.k8s.io/v1alpha1 and rbac.authorization.k8s.io/v1beta1 in 1.20. Migrate to use rbac.authorization.k8s.io/v1 instead |
10 | | -_warn = msg { |
| 5 | +warn contains msg if { |
11 | 6 | apis := ["rbac.authorization.k8s.io/v1alpha1", "rbac.authorization.k8s.io/v1beta1"] |
12 | 7 | input.apiVersion == apis[_] |
13 | 8 | msg := sprintf("%s/%s: API %s is deprecated from Kubernetes 1.20, use rbac.authorization.k8s.io/v1 instead.", [input.kind, input.metadata.name, input.apiVersion]) |
14 | 9 | } |
15 | 10 |
|
16 | 11 | # All resources under apps/v1beta1 and apps/v1beta2 - use apps/v1 instead |
17 | | -_warn = msg { |
| 12 | +warn contains msg if { |
18 | 13 | apis := ["apps/v1beta1", "apps/v1beta2"] |
19 | 14 | input.apiVersion == apis[_] |
20 | 15 | msg := sprintf("%s/%s: API %s has been deprecated, use apps/v1 instead.", [input.kind, input.metadata.name, input.apiVersion]) |
21 | 16 | } |
22 | 17 |
|
23 | 18 | # daemonsets, deployments, replicasets resources under extensions/v1beta1 - use apps/v1 instead |
24 | | -_warn = msg { |
| 19 | +deny contains msg if { |
25 | 20 | resources := ["DaemonSet", "Deployment", "ReplicaSet"] |
26 | 21 | input.apiVersion == "extensions/v1beta1" |
27 | 22 | input.kind == resources[_] |
28 | 23 | msg := sprintf("%s/%s: API extensions/v1beta1 for %s has been deprecated, use apps/v1 instead.", [input.kind, input.metadata.name, input.kind]) |
29 | 24 | } |
30 | 25 |
|
31 | 26 | # Ingress resources extensions/v1beta1 will no longer be served from in v1.20. Migrate use to the networking.k8s.io/v1beta1 API, available since v1.14. |
32 | | -_warn = msg { |
| 27 | +warn contains msg if { |
33 | 28 | input.apiVersion == "extensions/v1beta1" |
34 | 29 | input.kind == "Ingress" |
35 | 30 | msg := sprintf("%s/%s: API extensions/v1beta1 for Ingress is deprecated from Kubernetes 1.14, use networking.k8s.io/v1beta1 instead.", [input.kind, input.metadata.name]) |
36 | 31 | } |
37 | 32 |
|
38 | 33 | # ref: https://kubernetes.io/blog/2021/07/14/upcoming-changes-in-kubernetes-1-22/ |
39 | | -_warn = msg { |
| 34 | +warn contains msg if { |
40 | 35 | input.apiVersion == "apiextensions.k8s.io/v1beta1" |
41 | 36 | input.kind == "CustomResourceDefinition" |
42 | 37 | msg := sprintf("%s/%s: apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition instead", [input.kind, input.metadata.name]) |
43 | 38 | } |
44 | 39 |
|
45 | | -_warn = msg { |
| 40 | +warn contains msg if { |
46 | 41 | input.apiVersion == "networking.k8s.io/v1beta1" |
47 | 42 | input.kind == "Ingress" |
48 | 43 | msg := sprintf("%s/%s: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress instead", [input.kind, input.metadata.name]) |
|
0 commit comments