@@ -34,6 +34,9 @@ import (
34
34
"k8s.io/apimachinery/pkg/util/yaml"
35
35
"k8s.io/kubernetes/pkg/api/legacyscheme"
36
36
37
+ "k8s.io/kubernetes/pkg/apis/admissionregistration"
38
+ admreg_validation "k8s.io/kubernetes/pkg/apis/admissionregistration/validation"
39
+
37
40
"k8s.io/kubernetes/pkg/apis/apps"
38
41
apps_validation "k8s.io/kubernetes/pkg/apis/apps/validation"
39
42
@@ -65,6 +68,7 @@ import (
65
68
"k8s.io/kubernetes/pkg/registry/batch/job"
66
69
67
70
// initialize install packages
71
+ _ "k8s.io/kubernetes/pkg/apis/admissionregistration/install"
68
72
_ "k8s.io/kubernetes/pkg/apis/apps/install"
69
73
_ "k8s.io/kubernetes/pkg/apis/autoscaling/install"
70
74
_ "k8s.io/kubernetes/pkg/apis/batch/install"
@@ -102,6 +106,7 @@ func (g TestGroup) Codec() runtime.Codec {
102
106
func initGroups () {
103
107
Groups = make (map [string ]TestGroup )
104
108
groupNames := []string {
109
+ admissionregistration .GroupName ,
105
110
api .GroupName ,
106
111
apps .GroupName ,
107
112
autoscaling .GroupName ,
@@ -152,7 +157,6 @@ func getCodecForObject(obj runtime.Object) (runtime.Codec, error) {
152
157
153
158
func validateObject (obj runtime.Object ) (errors field.ErrorList ) {
154
159
podValidationOptions := validation.PodValidationOptions {
155
- AllowDownwardAPIHugePages : true ,
156
160
AllowInvalidPodDeletionCost : false ,
157
161
AllowIndivisibleHugePagesValues : true ,
158
162
AllowExpandedDNSConfig : true ,
@@ -170,6 +174,10 @@ func validateObject(obj runtime.Object) (errors field.ErrorList) {
170
174
// Enable CustomPodDNS for testing
171
175
// feature.DefaultFeatureGate.Set("CustomPodDNS=true")
172
176
switch t := obj .(type ) {
177
+ case * admissionregistration.ValidatingWebhookConfiguration :
178
+ errors = admreg_validation .ValidateValidatingWebhookConfiguration (t )
179
+ case * admissionregistration.ValidatingAdmissionPolicy :
180
+ errors = admreg_validation .ValidateValidatingAdmissionPolicy (t )
173
181
case * api.ConfigMap :
174
182
if t .Namespace == "" {
175
183
t .Namespace = api .NamespaceDefault
@@ -390,7 +398,10 @@ func TestExampleObjectSchemas(t *testing.T) {
390
398
// Please help maintain the alphabeta order in the map
391
399
cases := map [string ]map [string ][]runtime.Object {
392
400
"access" : {
393
- "endpoints-aggregated" : {& rbac.ClusterRole {}},
401
+ "deployment-replicas-policy" : {& admissionregistration.ValidatingAdmissionPolicy {}},
402
+ "endpoints-aggregated" : {& rbac.ClusterRole {}},
403
+ "validating-admission-policy-audit-annotation" : {& admissionregistration.ValidatingAdmissionPolicy {}},
404
+ "validating-admission-policy-match-conditions" : {& admissionregistration.ValidatingAdmissionPolicy {}},
394
405
},
395
406
"access/certificate-signing-request" : {
396
407
"clusterrole-approve" : {& rbac.ClusterRole {}},
@@ -544,20 +555,21 @@ func TestExampleObjectSchemas(t *testing.T) {
544
555
"configure-pod" : {& api.Pod {}},
545
556
},
546
557
"controllers" : {
547
- "daemonset" : {& apps.DaemonSet {}},
548
- "fluentd-daemonset" : {& apps.DaemonSet {}},
549
- "fluentd-daemonset-update" : {& apps.DaemonSet {}},
550
- "frontend" : {& apps.ReplicaSet {}},
551
- "hpa-rs" : {& autoscaling.HorizontalPodAutoscaler {}},
552
- "job" : {& batch.Job {}},
553
- "job-pod-failure-policy-example" : {& batch.Job {}},
554
- "job-pod-failure-policy-failjob" : {& batch.Job {}},
555
- "job-pod-failure-policy-ignore" : {& batch.Job {}},
556
- "replicaset" : {& apps.ReplicaSet {}},
557
- "replication" : {& api.ReplicationController {}},
558
- "replication-nginx-1.14.2" : {& api.ReplicationController {}},
559
- "replication-nginx-1.16.1" : {& api.ReplicationController {}},
560
- "nginx-deployment" : {& apps.Deployment {}},
558
+ "daemonset" : {& apps.DaemonSet {}},
559
+ "fluentd-daemonset" : {& apps.DaemonSet {}},
560
+ "fluentd-daemonset-update" : {& apps.DaemonSet {}},
561
+ "frontend" : {& apps.ReplicaSet {}},
562
+ "hpa-rs" : {& autoscaling.HorizontalPodAutoscaler {}},
563
+ "job" : {& batch.Job {}},
564
+ "job-pod-failure-policy-config-issue" : {& batch.Job {}},
565
+ "job-pod-failure-policy-example" : {& batch.Job {}},
566
+ "job-pod-failure-policy-failjob" : {& batch.Job {}},
567
+ "job-pod-failure-policy-ignore" : {& batch.Job {}},
568
+ "replicaset" : {& apps.ReplicaSet {}},
569
+ "replication" : {& api.ReplicationController {}},
570
+ "replication-nginx-1.14.2" : {& api.ReplicationController {}},
571
+ "replication-nginx-1.16.1" : {& api.ReplicationController {}},
572
+ "nginx-deployment" : {& apps.Deployment {}},
561
573
},
562
574
"debug" : {
563
575
"counter-pod" : {& api.Pod {}},
@@ -627,6 +639,7 @@ func TestExampleObjectSchemas(t *testing.T) {
627
639
"qos-pod-2" : {& api.Pod {}},
628
640
"qos-pod-3" : {& api.Pod {}},
629
641
"qos-pod-4" : {& api.Pod {}},
642
+ "qos-pod-5" : {& api.Pod {}},
630
643
},
631
644
"pods/resource" : {
632
645
"cpu-request-limit" : {& api.Pod {}},
@@ -678,13 +691,15 @@ func TestExampleObjectSchemas(t *testing.T) {
678
691
"mysecretname" : {& api.Secret {}},
679
692
},
680
693
"security" : {
694
+ "example-baseline-pod" : {& api.Pod {}},
681
695
"podsecurity-baseline" : {& api.Namespace {}},
682
696
"podsecurity-privileged" : {& api.Namespace {}},
683
697
"podsecurity-restricted" : {& api.Namespace {}},
684
698
},
685
699
"service" : {
686
- "nginx-service" : {& api.Service {}},
687
- "load-balancer-example" : {& apps.Deployment {}},
700
+ "nginx-service" : {& api.Service {}},
701
+ "load-balancer-example" : {& apps.Deployment {}},
702
+ "pod-with-graceful-termination" : {& apps.Deployment {}},
688
703
},
689
704
"service/access" : {
690
705
"backend-deployment" : {& apps.Deployment {}},
0 commit comments