forked from kubernetes/kubernetes
/
conformance.yaml
executable file
·2556 lines (2555 loc) · 155 KB
/
conformance.yaml
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
- testname: Pod Lifecycle, post start exec hook
codename: '[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook
should execute poststart exec hook properly [NodeConformance] [Conformance]'
description: When a post start handler is specified in the container lifecycle using
a 'Exec' action, then the handler MUST be invoked after the start of the container.
A server pod is created that will serve http requests, create a second pod with
a container lifecycle specifying a post start that invokes the server pod using
ExecAction to validate that the post start is executed.
release: v1.9
file: test/e2e/common/lifecycle_hook.go
- testname: Pod Lifecycle, post start http hook
codename: '[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook
should execute poststart http hook properly [NodeConformance] [Conformance]'
description: When a post start handler is specified in the container lifecycle using
a HttpGet action, then the handler MUST be invoked after the start of the container.
A server pod is created that will serve http requests, create a second pod with
a container lifecycle specifying a post start that invokes the server pod to validate
that the post start is executed.
release: v1.9
file: test/e2e/common/lifecycle_hook.go
- testname: Pod Lifecycle, prestop exec hook
codename: '[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook
should execute prestop exec hook properly [NodeConformance] [Conformance]'
description: When a pre-stop handler is specified in the container lifecycle using
a 'Exec' action, then the handler MUST be invoked before the container is terminated.
A server pod is created that will serve http requests, create a second pod with
a container lifecycle specifying a pre-stop that invokes the server pod using
ExecAction to validate that the pre-stop is executed.
release: v1.9
file: test/e2e/common/lifecycle_hook.go
- testname: Pod Lifecycle, prestop http hook
codename: '[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook
should execute prestop http hook properly [NodeConformance] [Conformance]'
description: When a pre-stop handler is specified in the container lifecycle using
a 'HttpGet' action, then the handler MUST be invoked before the container is terminated.
A server pod is created that will serve http requests, create a second pod with
a container lifecycle specifying a pre-stop that invokes the server pod to validate
that the pre-stop is executed.
release: v1.9
file: test/e2e/common/lifecycle_hook.go
- testname: ""
codename: '[k8s.io] Container Runtime blackbox test on terminated container should
report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy
FallbackToLogsOnError is set [NodeConformance] [Conformance]'
description: 'Name: Container Runtime, TerminationMessage, from log output of succeeding
container Create a pod with an container. Container''s output is recorded in log
and container exits successfully without an error. When container is terminated,
terminationMessage MUST have no content as container succeed. [LinuxOnly]: Cannot
mount files in Windows Containers.'
release: v1.15
file: test/e2e/common/runtime.go
- testname: ""
codename: '[k8s.io] Container Runtime blackbox test on terminated container should
report termination message [LinuxOnly] from file when pod succeeds and TerminationMessagePolicy
FallbackToLogsOnError is set [NodeConformance] [Conformance]'
description: 'Name: Container Runtime, TerminationMessage, from file of succeeding
container Create a pod with an container. Container''s output is recorded in a
file and the container exits successfully without an error. When container is
terminated, terminationMessage MUST match with the content from file. [LinuxOnly]:
Cannot mount files in Windows Containers.'
release: v1.15
file: test/e2e/common/runtime.go
- testname: ""
codename: '[k8s.io] Container Runtime blackbox test on terminated container should
report termination message [LinuxOnly] from log output if TerminationMessagePolicy
FallbackToLogsOnError is set [NodeConformance] [Conformance]'
description: 'Name: Container Runtime, TerminationMessage, from container''s log
output of failing container Create a pod with an container. Container''s output
is recorded in log and container exits with an error. When container is terminated,
termination message MUST match the expected output recorded from container''s
log. [LinuxOnly]: Cannot mount files in Windows Containers.'
release: v1.15
file: test/e2e/common/runtime.go
- testname: ""
codename: '[k8s.io] Container Runtime blackbox test on terminated container should
report termination message [LinuxOnly] if TerminationMessagePath is set as non-root
user and at a non-default path [NodeConformance] [Conformance]'
description: 'Name: Container Runtime, TerminationMessagePath, non-root user and
non-default path Create a pod with a container to run it as a non-root user with
a custom TerminationMessagePath set. Pod redirects the output to the provided
path successfully. When the container is terminated, the termination message MUST
match the expected output logged in the provided custom path. [LinuxOnly]: Tagged
LinuxOnly due to use of ''uid'' and unable to mount files in Windows Containers.'
release: v1.15
file: test/e2e/common/runtime.go
- testname: Container Runtime, Restart Policy, Pod Phases
codename: '[k8s.io] Container Runtime blackbox test when starting a container that
exits should run with the expected status [NodeConformance] [Conformance]'
description: If the restart policy is set to 'Always', Pod MUST be restarted when
terminated, If restart policy is 'OnFailure', Pod MUST be started only if it is
terminated with non-zero exit code. If the restart policy is 'Never', Pod MUST
never be restarted. All these three test cases MUST verify the restart counts
accordingly.
release: v1.13
file: test/e2e/common/runtime.go
- testname: Docker containers, with arguments
codename: '[k8s.io] Docker Containers should be able to override the image''s default
arguments (docker cmd) [NodeConformance] [Conformance]'
description: Default command and from the docker image entrypoint MUST be used
when Pod does not specify the container command but the arguments from Pod spec
MUST override when specified.
release: v1.9
file: test/e2e/common/docker_containers.go
- testname: Docker containers, with command
codename: '[k8s.io] Docker Containers should be able to override the image''s default
command (docker entrypoint) [NodeConformance] [Conformance]'
description: 'Note: when you override the entrypoint, the image''s arguments (docker
cmd) are ignored. Default command from the docker image entrypoint MUST NOT be
used when Pod specifies the container command. Command from Pod spec MUST override
the command in the image.'
release: v1.9
file: test/e2e/common/docker_containers.go
- testname: Docker containers, with command and arguments
codename: '[k8s.io] Docker Containers should be able to override the image''s default
command and arguments [NodeConformance] [Conformance]'
description: Default command and arguments from the docker image entrypoint MUST
NOT be used when Pod specifies the container command and arguments. Command and
arguments from Pod spec MUST override the command and arguments in the image.
release: v1.9
file: test/e2e/common/docker_containers.go
- testname: Docker containers, without command and arguments
codename: '[k8s.io] Docker Containers should use the image defaults if command and
args are blank [NodeConformance] [Conformance]'
description: Default command and arguments from the docker image entrypoint MUST
be used when Pod does not specify the container command
release: v1.9
file: test/e2e/common/docker_containers.go
- testname: init-container-starts-app-restartalways-pod
codename: '[k8s.io] InitContainer [NodeConformance] should invoke init containers
on a RestartAlways pod [Conformance]'
description: Ensure that all InitContainers are started and all containers in pod
started and at least one container is still running or is in the process of being
restarted when Pod has restart policy as RestartAlways.
release: v1.12
file: test/e2e/common/init_container.go
- testname: init-container-starts-app-restartnever-pod
codename: '[k8s.io] InitContainer [NodeConformance] should invoke init containers
on a RestartNever pod [Conformance]'
description: Ensure that all InitContainers are started and all containers in pod
are voluntarily terminated with exit status 0, and the system is not going to
restart any of these containers when Pod has restart policy as RestartNever.
release: v1.12
file: test/e2e/common/init_container.go
- testname: init-container-fails-stops-app-restartnever-pod
codename: '[k8s.io] InitContainer [NodeConformance] should not start app containers
and fail the pod if init containers fail on a RestartNever pod [Conformance]'
description: Ensure that app container is not started when at least one InitContainer
fails to start and Pod has restart policy as RestartNever.
release: v1.12
file: test/e2e/common/init_container.go
- testname: init-container-fails-stops-app-restartalways-pod
codename: '[k8s.io] InitContainer [NodeConformance] should not start app containers
if init containers fail on a RestartAlways pod [Conformance]'
description: Ensure that app container is not started when all InitContainers failed
to start and Pod has restarted for few occurrences and pod has restart policy
as RestartAlways.
release: v1.12
file: test/e2e/common/init_container.go
- testname: Kubelet, hostAliases
codename: '[k8s.io] Kubelet when scheduling a busybox Pod with hostAliases should
write entries to /etc/hosts [LinuxOnly] [NodeConformance] [Conformance]'
description: Create a Pod with hostAliases and a container with command to output
/etc/hosts entries. Pod's logs MUST have matching entries of specified hostAliases
to the output of /etc/hosts entries. Kubernetes mounts the /etc/hosts file into
its containers, however, mounting individual files is not supported on Windows
Containers. For this reason, this test is marked LinuxOnly.
release: v1.13
file: test/e2e/common/kubelet.go
- testname: Kubelet, log output, default
codename: '[k8s.io] Kubelet when scheduling a busybox command in a pod should print
the output to logs [NodeConformance] [Conformance]'
description: By default the stdout and stderr from the process being executed in
a pod MUST be sent to the pod's logs.
release: v1.13
file: test/e2e/common/kubelet.go
- testname: Kubelet, failed pod, delete
codename: '[k8s.io] Kubelet when scheduling a busybox command that always fails
in a pod should be possible to delete [NodeConformance] [Conformance]'
description: Create a Pod with terminated state. This terminated pod MUST be able
to be deleted.
release: v1.13
file: test/e2e/common/kubelet.go
- testname: Kubelet, failed pod, terminated reason
codename: '[k8s.io] Kubelet when scheduling a busybox command that always fails
in a pod should have an terminated reason [NodeConformance] [Conformance]'
description: Create a Pod with terminated state. Pod MUST have only one container.
Container MUST be in terminated state and MUST have an terminated reason.
release: v1.13
file: test/e2e/common/kubelet.go
- testname: Kubelet, pod with read only root file system
codename: '[k8s.io] Kubelet when scheduling a read only busybox container should
not write to root filesystem [LinuxOnly] [NodeConformance] [Conformance]'
description: Create a Pod with security context set with ReadOnlyRootFileSystem
set to true. The Pod then tries to write to the /file on the root, write operation
to the root filesystem MUST fail as expected. This test is marked LinuxOnly since
Windows does not support creating containers with read-only access.
release: v1.13
file: test/e2e/common/kubelet.go
- testname: Kubelet, managed etc hosts
codename: '[k8s.io] KubeletManagedEtcHosts should test kubelet managed /etc/hosts
file [LinuxOnly] [NodeConformance] [Conformance]'
description: Create a Pod with containers with hostNetwork set to false, one of
the containers mounts the /etc/hosts file form the host. Create a second Pod with
hostNetwork set to true. 1. The Pod with hostNetwork=false MUST have /etc/hosts
of containers managed by the Kubelet. 2. The Pod with hostNetwork=false but the
container mounts /etc/hosts file from the host. The /etc/hosts file MUST not be
managed by the Kubelet. 3. The Pod with hostNetwork=true , /etc/hosts file MUST
not be managed by the Kubelet. This test is marked LinuxOnly since Windows cannot
mount individual files in Containers.
release: v1.9
file: test/e2e/common/kubelet_etc_hosts.go
- testname: lease API should be available
codename: '[k8s.io] Lease lease API should be available [Conformance]'
description: "Create Lease object, and get it; create and get MUST be successful
and Spec of the read Lease MUST match Spec of original Lease. Update the Lease
and get it; update and get MUST be successful\tand Spec of the read Lease MUST
match Spec of updated Lease. Patch the Lease and get it; patch and get MUST be
successful and Spec of the read Lease MUST match Spec of patched Lease. Create
a second Lease with labels and list Leases; create and list MUST be successful
and list MUST return both leases. Delete the labels lease via delete collection;
the delete MUST be successful and MUST delete only the labels lease. List leases;
list MUST be successful and MUST return just the remaining lease. Delete the lease;
delete MUST be successful. Get the lease; get MUST return not found error."
release: v1.17
file: test/e2e/common/lease.go
- testname: Pods, ActiveDeadlineSeconds
codename: '[k8s.io] Pods should allow activeDeadlineSeconds to be updated [NodeConformance]
[Conformance]'
description: Create a Pod with a unique label. Query for the Pod with the label
as selector MUST be successful. The Pod is updated with ActiveDeadlineSeconds
set on the Pod spec. Pod MUST terminate of the specified time elapses.
release: v1.9
file: test/e2e/common/pods.go
- testname: Pods, lifecycle
codename: '[k8s.io] Pods should be submitted and removed [NodeConformance] [Conformance]'
description: A Pod is created with a unique label. Pod MUST be accessible when queried
using the label selector upon creation. Add a watch, check if the Pod is running.
Pod then deleted, The pod deletion timestamp is observed. The watch MUST return
the pod deleted event. Query with the original selector for the Pod MUST return
empty list.
release: v1.9
file: test/e2e/common/pods.go
- testname: Pods, update
codename: '[k8s.io] Pods should be updated [NodeConformance] [Conformance]'
description: Create a Pod with a unique label. Query for the Pod with the label
as selector MUST be successful. Update the pod to change the value of the Label.
Query for the Pod with the new value for the label MUST be successful.
release: v1.9
file: test/e2e/common/pods.go
- testname: Pods, service environment variables
codename: '[k8s.io] Pods should contain environment variables for services [NodeConformance]
[Conformance]'
description: Create a server Pod listening on port 9376. A Service called fooservice
is created for the server Pod listening on port 8765 targeting port 8080. If a
new Pod is created in the cluster then the Pod MUST have the fooservice environment
variables available from this new Pod. The new create Pod MUST have environment
variables such as FOOSERVICE_SERVICE_HOST, FOOSERVICE_SERVICE_PORT, FOOSERVICE_PORT,
FOOSERVICE_PORT_8765_TCP_PORT, FOOSERVICE_PORT_8765_TCP_PROTO, FOOSERVICE_PORT_8765_TCP
and FOOSERVICE_PORT_8765_TCP_ADDR that are populated with proper values.
release: v1.9
file: test/e2e/common/pods.go
- testname: Pods, assigned hostip
codename: '[k8s.io] Pods should get a host IP [NodeConformance] [Conformance]'
description: Create a Pod. Pod status MUST return successfully and contains a valid
IP address.
release: v1.9
file: test/e2e/common/pods.go
- testname: Pods, remote command execution over websocket
codename: '[k8s.io] Pods should support remote command execution over websockets
[NodeConformance] [Conformance]'
description: A Pod is created. Websocket is created to retrieve exec command output
from this pod. Message retrieved form Websocket MUST match with expected exec
command output.
release: v1.13
file: test/e2e/common/pods.go
- testname: Pods, logs from websockets
codename: '[k8s.io] Pods should support retrieving logs from the container over
websockets [NodeConformance] [Conformance]'
description: A Pod is created. Websocket is created to retrieve log of a container
from this pod. Message retrieved form Websocket MUST match with container's output.
release: v1.13
file: test/e2e/common/pods.go
- testname: Pod liveness probe, using http endpoint, failure
codename: '[k8s.io] Probing container should *not* be restarted with a /healthz
http liveness probe [NodeConformance] [Conformance]'
description: A Pod is created with liveness probe on http endpoint '/'. Liveness
probe on this endpoint will not fail. When liveness probe does not fail then the
restart count MUST remain zero.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Pod liveness probe, using local file, no restart
codename: '[k8s.io] Probing container should *not* be restarted with a exec "cat
/tmp/health" liveness probe [NodeConformance] [Conformance]'
description: Pod is created with liveness probe that uses 'exec' command to cat
/temp/health file. Liveness probe MUST not fail to check health and the restart
count should remain 0.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Pod liveness probe, using tcp socket, no restart
codename: '[k8s.io] Probing container should *not* be restarted with a tcp:8080
liveness probe [NodeConformance] [Conformance]'
description: A Pod is created with liveness probe on tcp socket 8080. The http handler
on port 8080 will return http errors after 10 seconds, but the socket will remain
open. Liveness probe MUST not fail to check health and the restart count should
remain 0.
release: v1.18
file: test/e2e/common/container_probe.go
- testname: Pod liveness probe, using http endpoint, restart
codename: '[k8s.io] Probing container should be restarted with a /healthz http liveness
probe [NodeConformance] [Conformance]'
description: A Pod is created with liveness probe on http endpoint /healthz. The
http handler on the /healthz will return a http error after 10 seconds since the
Pod is started. This MUST result in liveness check failure. The Pod MUST now be
killed and restarted incrementing restart count to 1.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Pod liveness probe, using local file, restart
codename: '[k8s.io] Probing container should be restarted with a exec "cat /tmp/health"
liveness probe [NodeConformance] [Conformance]'
description: Create a Pod with liveness probe that uses ExecAction handler to cat
/temp/health file. The Container deletes the file /temp/health after 10 second,
triggering liveness probe to fail. The Pod MUST now be killed and restarted incrementing
restart count to 1.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Pod liveness probe, using http endpoint, multiple restarts (slow)
codename: '[k8s.io] Probing container should have monotonically increasing restart
count [NodeConformance] [Conformance]'
description: A Pod is created with liveness probe on http endpoint /healthz. The
http handler on the /healthz will return a http error after 10 seconds since the
Pod is started. This MUST result in liveness check failure. The Pod MUST now be
killed and restarted incrementing restart count to 1. The liveness probe must
fail again after restart once the http handler for /healthz enpoind on the Pod
returns an http error after 10 seconds from the start. Restart counts MUST increment
everytime health check fails, measure upto 5 restart.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Pod readiness probe, with initial delay
codename: '[k8s.io] Probing container with readiness probe should not be ready before
initial delay and never restart [NodeConformance] [Conformance]'
description: Create a Pod that is configured with a initial delay set on the readiness
probe. Check the Pod Start time to compare to the initial delay. The Pod MUST
be ready only after the specified initial delay.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Pod readiness probe, failure
codename: '[k8s.io] Probing container with readiness probe that fails should never
be ready and never restart [NodeConformance] [Conformance]'
description: Create a Pod with a readiness probe that fails consistently. When this
Pod is created, then the Pod MUST never be ready, never be running and restart
count MUST be zero.
release: v1.9
file: test/e2e/common/container_probe.go
- testname: Security Context, runAsUser=65534
codename: '[k8s.io] Security Context When creating a container with runAsUser should
run the container with uid 65534 [LinuxOnly] [NodeConformance] [Conformance]'
description: 'Container is created with runAsUser option by passing uid 65534 to
run as unpriviledged user. Pod MUST be in Succeeded phase. [LinuxOnly]: This test
is marked as LinuxOnly since Windows does not support running as UID / GID.'
release: v1.15
file: test/e2e/common/security_context.go
- testname: Security Context, privileged=false.
codename: '[k8s.io] Security Context When creating a pod with privileged should
run the container as unprivileged when false [LinuxOnly] [NodeConformance] [Conformance]'
description: 'Create a container to run in unprivileged mode by setting pod''s SecurityContext
Privileged option as false. Pod MUST be in Succeeded phase. [LinuxOnly]: This
test is marked as LinuxOnly since it runs a Linux-specific command.'
release: v1.15
file: test/e2e/common/security_context.go
- testname: Security Context, readOnlyRootFilesystem=false.
codename: '[k8s.io] Security Context When creating a pod with readOnlyRootFilesystem
should run the container with writable rootfs when readOnlyRootFilesystem=false
[NodeConformance] [Conformance]'
description: Container is configured to run with readOnlyRootFilesystem to false.
Write operation MUST be allowed and Pod MUST be in Succeeded state.
release: v1.15
file: test/e2e/common/security_context.go
- testname: Security Context, allowPrivilegeEscalation=false.
codename: '[k8s.io] Security Context when creating containers with AllowPrivilegeEscalation
should not allow privilege escalation when false [LinuxOnly] [NodeConformance]
[Conformance]'
description: 'Configuring the allowPrivilegeEscalation to false, does not allow
the privilege escalation operation. A container is configured with allowPrivilegeEscalation=false
and a given uid (1000) which is not 0. When the container is run, container''s
output MUST match with expected output verifying container ran with given uid
i.e. uid=1000. [LinuxOnly]: This test is marked LinuxOnly since Windows does not
support running as UID / GID, or privilege escalation.'
release: v1.15
file: test/e2e/common/security_context.go
- testname: Environment variables, expansion
codename: '[k8s.io] Variable Expansion should allow composing env vars into new
env vars [NodeConformance] [Conformance]'
description: Create a Pod with environment variables. Environment variables defined
using previously defined environment variables MUST expand to proper values.
release: v1.9
file: test/e2e/common/expansion.go
- testname: Environment variables, command argument expansion
codename: '[k8s.io] Variable Expansion should allow substituting values in a container''s
args [NodeConformance] [Conformance]'
description: Create a Pod with environment variables and container command arguments
using them. Container command arguments using the defined environment variables
MUST expand to proper values.
release: v1.9
file: test/e2e/common/expansion.go
- testname: Environment variables, command expansion
codename: '[k8s.io] Variable Expansion should allow substituting values in a container''s
command [NodeConformance] [Conformance]'
description: Create a Pod with environment variables and container command using
them. Container command using the defined environment variables MUST expand to
proper values.
release: v1.9
file: test/e2e/common/expansion.go
- testname: VolumeSubpathEnvExpansion, subpath expansion
codename: '[k8s.io] Variable Expansion should allow substituting values in a volume
subpath [sig-storage] [Conformance]'
description: Make sure a container's subpath can be set using an expansion of environment
variables.
release: v1.19
file: test/e2e/common/expansion.go
- testname: VolumeSubpathEnvExpansion, subpath with absolute path
codename: '[k8s.io] Variable Expansion should fail substituting values in a volume
subpath with absolute path [sig-storage][Slow] [Conformance]'
description: Make sure a container's subpath can not be set using an expansion of
environment variables when absolute path is supplied.
release: v1.19
file: test/e2e/common/expansion.go
- testname: VolumeSubpathEnvExpansion, subpath with backticks
codename: '[k8s.io] Variable Expansion should fail substituting values in a volume
subpath with backticks [sig-storage][Slow] [Conformance]'
description: Make sure a container's subpath can not be set using an expansion of
environment variables when backticks are supplied.
release: v1.19
file: test/e2e/common/expansion.go
- testname: VolumeSubpathEnvExpansion, subpath lifecycle
codename: '[k8s.io] Variable Expansion should not change the subpath mount on a
container restart if the environment variable changes [sig-storage][Slow] [Conformance]'
description: "Verify should not change the subpath mount on a container restart
if the environment variable changes 1.\tvalid subpathexpr starts a container running
2.\ttest for valid subpath writes 3.\tcontainer restarts 4.\tdelete cleanly"
release: v1.19
file: test/e2e/common/expansion.go
- testname: VolumeSubpathEnvExpansion, subpath test writes
codename: '[k8s.io] Variable Expansion should succeed in writing subpaths in container
[sig-storage][Slow] [Conformance]'
description: "Verify that a subpath expansion can be used to write files into subpaths.
1.\tvalid subpathexpr starts a container running 2.\ttest for valid subpath writes
3.\tsuccessful expansion of the subpathexpr isn't required for volume cleanup"
release: v1.19
file: test/e2e/common/expansion.go
- testname: VolumeSubpathEnvExpansion, subpath ready from failed state
codename: '[k8s.io] Variable Expansion should verify that a failing subpath expansion
can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance]'
description: Verify that a failing subpath expansion can be modified during the
lifecycle of a container.
release: v1.19
file: test/e2e/common/expansion.go
- testname: Pod events, verify event from Scheduler and Kubelet
codename: '[k8s.io] [sig-node] Events should be sent by kubelets and the scheduler
about pods scheduling and running [Conformance]'
description: Create a Pod, make sure that the Pod can be queried. Create a event
selector for the kind=Pod and the source is the Scheduler. List of the events
MUST be at least one. Create a event selector for kind=Pod and the source is the
Kubelet. List of the events MUST be at least one. Both Scheduler and Kubelet MUST
send events when scheduling and running a Pod.
release: v1.9
file: test/e2e/node/events.go
- testname: Pods, QOS
codename: '[k8s.io] [sig-node] Pods Extended [k8s.io] Pods Set QOS Class should
be set on Pods with matching resource requests and limits for memory and cpu [Conformance]'
description: Create a Pod with CPU and Memory request and limits. Pod status MUST
have QOSClass set to PodQOSGuaranteed.
release: v1.9
file: test/e2e/node/pods.go
- testname: Pods, prestop hook
codename: '[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance]'
description: Create a server pod with a rest endpoint '/write' that changes state.Received
field. Create a Pod with a pre-stop handle that posts to the /write endpoint on
the server Pod. Verify that the Pod with pre-stop hook is running. Delete the
Pod with the pre-stop hook. Before the Pod is deleted, pre-stop handler MUST be
called when configured. Verify that the Pod is deleted and a call to prestop hook
is verified by checking the status received on the server Pod.
release: v1.9
file: test/e2e/node/pre_stop.go
- testname: Admission webhook, list mutating webhooks
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing
mutating webhooks should work [Conformance]'
description: Create 10 mutating webhook configurations, all with a label. Attempt
to list the webhook configurations matching the label; all the created webhook
configurations MUST be present. Attempt to create an object; the object MUST be
mutated. Attempt to remove the webhook configurations matching the label with
deletecollection; all webhook configurations MUST be deleted. Attempt to create
an object; the object MUST NOT be mutated.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, list validating webhooks
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing
validating webhooks should work [Conformance]'
description: Create 10 validating webhook configurations, all with a label. Attempt
to list the webhook configurations matching the label; all the created webhook
configurations MUST be present. Attempt to create an object; the create MUST be
denied. Attempt to remove the webhook configurations matching the label with deletecollection;
all webhook configurations MUST be deleted. Attempt to create an object; the create
MUST NOT be denied.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, update mutating webhook
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating
a mutating webhook should work [Conformance]'
description: Register a mutating admission webhook configuration. Update the webhook
to not apply to the create operation and attempt to create an object; the webhook
MUST NOT mutate the object. Patch the webhook to apply to the create operation
again and attempt to create an object; the webhook MUST mutate the object.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, update validating webhook
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating
a validating webhook should work [Conformance]'
description: Register a validating admission webhook configuration. Update the webhook
to not apply to the create operation and attempt to create an object; the webhook
MUST NOT deny the create. Patch the webhook to apply to the create operation again
and attempt to create an object; the webhook MUST deny the create.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, deny attach
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
be able to deny attaching pod [Conformance]'
description: Register an admission webhook configuration that denies connecting
to a pod's attach sub-resource. Attempts to attach MUST be denied.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, deny custom resource create and delete
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
be able to deny custom resource creation, update and deletion [Conformance]'
description: Register an admission webhook configuration that denies creation, update
and deletion of custom resources. Attempts to create, update and delete custom
resources MUST be denied.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, deny create
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
be able to deny pod and configmap creation [Conformance]'
description: Register an admission webhook configuration that admits pod and configmap.
Attempts to create non-compliant pods and configmaps, or update/patch compliant
pods and configmaps to be non-compliant MUST be denied. An attempt to create a
pod that causes a webhook to hang MUST result in a webhook timeout error, and
the pod creation MUST be denied. An attempt to create a non-compliant configmap
in a whitelisted namespace based on the webhook namespace selector MUST be allowed.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, deny custom resource definition
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
deny crd creation [Conformance]'
description: Register a webhook that denies custom resource definition create. Attempt
to create a custom resource definition; the create request MUST be denied.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, honor timeout
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
honor timeout [Conformance]'
description: Using a webhook that waits 5 seconds before admitting objects, configure
the webhook with combinations of timeouts and failure policy values. Attempt to
create a config map with each combination. Requests MUST timeout if the configured
webhook timeout is less than 5 seconds and failure policy is fail. Requests must
not timeout if the failure policy is ignore. Requests MUST NOT timeout if configured
webhook timeout is 10 seconds (much longer than the webhook wait duration).
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, discovery document
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
include webhook resources in discovery documents [Conformance]'
description: The admissionregistration.k8s.io API group MUST exists in the /apis
discovery document. The admissionregistration.k8s.io/v1 API group/version MUST
exists in the /apis discovery document. The mutatingwebhookconfigurations and
validatingwebhookconfigurations resources MUST exist in the /apis/admissionregistration.k8s.io/v1
discovery document.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, ordered mutation
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
mutate configmap [Conformance]'
description: Register a mutating webhook configuration with two webhooks that admit
configmaps, one that adds a data key if the configmap already has a specific key,
and another that adds a key if the key added by the first webhook is present.
Attempt to create a config map; both keys MUST be added to the config map.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, mutate custom resource
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
mutate custom resource [Conformance]'
description: Register a webhook that mutates a custom resource. Attempt to create
custom resource object; the custom resource MUST be mutated.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, mutate custom resource with different stored version
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
mutate custom resource with different stored version [Conformance]'
description: Register a webhook that mutates custom resources on create and update.
Register a custom resource definition using v1 as stored version. Create a custom
resource. Patch the custom resource definition to use v2 as the stored version.
Attempt to patch the custom resource with a new field and value; the patch MUST
be applied successfully.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, mutate custom resource with pruning
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
mutate custom resource with pruning [Conformance]'
description: Register mutating webhooks that adds fields to custom objects. Register
a custom resource definition with a schema that includes only one of the data
keys added by the webhooks. Attempt to a custom resource; the fields included
in the schema MUST be present and field not included in the schema MUST NOT be
present.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, mutation with defaulting
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
mutate pod and apply defaults after mutation [Conformance]'
description: Register a mutating webhook that adds an InitContainer to pods. Attempt
to create a pod; the InitContainer MUST be added the TerminationMessagePolicy
MUST be defaulted.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, admission control not allowed on webhook configuration
objects
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
not be able to mutate or prevent deletion of webhook configuration objects [Conformance]'
description: Register webhooks that mutate and deny deletion of webhook configuration
objects. Attempt to create and delete a webhook configuration object; both operations
MUST be allowed and the webhook configuration object MUST NOT be mutated the webhooks.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: Admission webhook, fail closed
codename: '[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should
unconditionally reject operations on fail closed webhook [Conformance]'
description: Register a webhook with a fail closed policy and without CA bundle
so that it cannot be called. Attempt operations that require the admission webhook;
all MUST be denied.
release: v1.16
file: test/e2e/apimachinery/webhook.go
- testname: aggregator-supports-the-sample-apiserver
codename: '[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample
API Server using the current Aggregator [Conformance]'
description: Ensure that the sample-apiserver code from 1.17 and compiled against
1.17 will work on the current Aggregator/API-Server.
release: ""
file: test/e2e/apimachinery/aggregator.go
- testname: Custom Resource Definition Conversion Webhook, convert mixed version list
codename: '[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin]
should be able to convert a non homogeneous list of CRs [Conformance]'
description: Register a conversion webhook and a custom resource definition. Create
a custom resource stored at v1. Change the custom resource definition storage
to v2. Create a custom resource stored at v2. Attempt to list the custom resources
at v2; the list result MUST contain both custom resources at v2.
release: v1.16
file: test/e2e/apimachinery/crd_conversion_webhook.go
- testname: Custom Resource Definition Conversion Webhook, conversion custom resource
codename: '[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin]
should be able to convert from CR v1 to CR v2 [Conformance]'
description: Register a conversion webhook and a custom resource definition. Create
a v1 custom resource. Attempts to read it at v2 MUST succeed.
release: v1.16
file: test/e2e/apimachinery/crd_conversion_webhook.go
- testname: Custom Resource Definition, watch
codename: '[sig-api-machinery] CustomResourceDefinition Watch [Privileged:ClusterAdmin]
CustomResourceDefinition Watch watch on custom resource definition objects [Conformance]'
description: Create a Custom Resource Definition. Attempt to watch it; the watch
MUST observe create, modify and delete events.
release: v1.16
file: test/e2e/apimachinery/crd_watch.go
- testname: Custom Resource Definition, create
codename: '[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin]
Simple CustomResourceDefinition creating/deleting custom resource definition objects
works [Conformance]'
description: Create a API extension client and define a random custom resource definition.
Create the custom resource definition and then delete it. The creation and deletion
MUST be successful.
release: v1.9
file: test/e2e/apimachinery/custom_resource_definition.go
- testname: Custom Resource Definition, status sub-resource
codename: '[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin]
Simple CustomResourceDefinition getting/updating/patching custom resource definition
status sub-resource works [Conformance]'
description: Create a custom resource definition. Attempt to read, update and patch
its status sub-resource; all mutating sub-resource operations MUST be visible
to subsequent reads.
release: v1.16
file: test/e2e/apimachinery/custom_resource_definition.go
- testname: Custom Resource Definition, list
codename: '[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin]
Simple CustomResourceDefinition listing custom resource definition objects works [Conformance]'
description: Create a API extension client, define 10 labeled custom resource definitions
and list them using a label selector; the list result MUST contain only the labeled
custom resource definitions. Delete the labeled custom resource definitions via
delete collection; the delete MUST be successful and MUST delete only the labeled
custom resource definitions.
release: v1.16
file: test/e2e/apimachinery/custom_resource_definition.go
- testname: Custom Resource Definition, defaulting
codename: '[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin]
custom resource defaulting for requests and from storage works [Conformance]'
description: Create a custom resource definition without default. Create CR. Add
default and read CR until the default is applied. Create another CR. Remove default,
add default for another field and read CR until new field is defaulted, but old
default stays.
release: v1.17
file: test/e2e/apimachinery/custom_resource_definition.go
- testname: Custom Resource Definition, discovery
codename: '[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin]
should include custom resource definition resources in discovery documents [Conformance]'
description: Fetch /apis, /apis/apiextensions.k8s.io, and /apis/apiextensions.k8s.io/v1
discovery documents, and ensure they indicate CustomResourceDefinition apiextensions.k8s.io/v1
resources are available.
release: v1.16
file: test/e2e/apimachinery/custom_resource_definition.go
- testname: Custom Resource OpenAPI Publish, stop serving version
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
removes definition from spec when one version gets changed to not be served [Conformance]'
description: Register a custom resource definition with multiple versions. OpenAPI
definitions MUST be published for custom resource definitions. Update the custom
resource definition to not serve one of the versions. OpenAPI definitions MUST
be updated to not contain the version that is no longer served.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, version rename
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
updates the published spec when one version gets renamed [Conformance]'
description: Register a custom resource definition with multiple versions; OpenAPI
definitions MUST be published for custom resource definitions. Rename one of the
versions of the custom resource definition via a patch; OpenAPI definitions MUST
update to reflect the rename.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, with x-preserve-unknown-fields at root
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for CRD preserving unknown fields at the schema root [Conformance]'
description: Register a custom resource definition with x-preserve-unknown-fields
in the schema root. Attempt to create and apply a change a custom resource, via
kubectl; client-side validation MUST accept unknown properties. Attempt kubectl
explain; the output MUST show the custom resource KIND.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, with x-preserve-unknown-fields in embedded
object
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for CRD preserving unknown fields in an embedded object [Conformance]'
description: Register a custom resource definition with x-preserve-unknown-fields
in an embedded object. Attempt to create and apply a change a custom resource,
via kubectl; client-side validation MUST accept unknown properties. Attempt kubectl
explain; the output MUST show that x-preserve-unknown-properties is used on the
nested field.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, with validation schema
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for CRD with validation schema [Conformance]'
description: Register a custom resource definition with a validating schema consisting
of objects, arrays and primitives. Attempt to create and apply a change a custom
resource using valid properties, via kubectl; client-side validation MUST pass.
Attempt both operations with unknown properties and without required properties;
client-side validation MUST reject the operations. Attempt kubectl explain; the
output MUST explain the custom resource properties. Attempt kubectl explain on
custom resource properties; the output MUST explain the nested custom resource
properties.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, with x-preserve-unknown-fields in object
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for CRD without validation schema [Conformance]'
description: Register a custom resource definition with x-preserve-unknown-fields
in the top level object. Attempt to create and apply a change a custom resource,
via kubectl; client-side validation MUST accept unknown properties. Attempt kubectl
explain; the output MUST contain a valid DESCRIPTION stanza.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, varying groups
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for multiple CRDs of different groups [Conformance]'
description: Register multiple custom resource definitions spanning different groups
and versions; OpenAPI definitions MUST be published for custom resource definitions.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, varying kinds
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for multiple CRDs of same group and version but different kinds [Conformance]'
description: Register multiple custom resource definitions in the same group and
version but spanning different kinds; OpenAPI definitions MUST be published for
custom resource definitions.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Custom Resource OpenAPI Publish, varying versions
codename: '[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]
works for multiple CRDs of same group but different versions [Conformance]'
description: Register a custom resource definition with multiple versions; OpenAPI
definitions MUST be published for custom resource definitions.
release: v1.16
file: test/e2e/apimachinery/crd_publish_openapi.go
- testname: Garbage Collector, delete deployment, propagation policy background
codename: '[sig-api-machinery] Garbage collector should delete RS created by deployment
when not orphaning [Conformance]'
description: Create a deployment with a replicaset. Once replicaset is created ,
delete the deployment with deleteOptions.PropagationPolicy set to Background.
Deleting the deployment MUST delete the replicaset created by the deployment and
also the Pods that belong to the deployments MUST be deleted.
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: Garbage Collector, delete replication controller, propagation policy background
codename: '[sig-api-machinery] Garbage collector should delete pods created by rc
when not orphaning [Conformance]'
description: Create a replication controller with 2 Pods. Once RC is created and
the first Pod is created, delete RC with deleteOptions.PropagationPolicy set to
Background. Deleting the Replication Controller MUST cause pods created by that
RC to be deleted.
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: Garbage Collector, delete replication controller, after owned pods
codename: '[sig-api-machinery] Garbage collector should keep the rc around until
all its pods are deleted if the deleteOptions says so [Conformance]'
description: Create a replication controller with maximum allocatable Pods between
10 and 100 replicas. Once RC is created and the all Pods are created, delete RC
with deleteOptions.PropagationPolicy set to Foreground. Deleting the Replication
Controller MUST cause pods created by that RC to be deleted before the RC is deleted.
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: Garbage Collector, dependency cycle
codename: '[sig-api-machinery] Garbage collector should not be blocked by dependency
circle [Conformance]'
description: 'TODO: should be an integration test Create three pods, patch them
with Owner references such that pod1 has pod3, pod2 has pod1 and pod3 has pod2
as owner references respectively. Delete pod1 MUST delete all pods. The dependency
cycle MUST not block the garbage collection.'
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: Garbage Collector, multiple owners
codename: '[sig-api-machinery] Garbage collector should not delete dependents that
have both valid owner and owner that''s waiting for dependents to be deleted [Conformance]'
description: 'TODO: this should be an integration test Create a replication controller
RC1, with maximum allocatable Pods between 10 and 100 replicas. Create second
replication controller RC2 and set RC2 as owner for half of those replicas. Once
RC1 is created and the all Pods are created, delete RC1 with deleteOptions.PropagationPolicy
set to Foreground. Half of the Pods that has RC2 as owner MUST not be deleted
but have a deletion timestamp. Deleting the Replication Controller MUST not delete
Pods that are owned by multiple replication controllers.'
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: Garbage Collector, delete deployment, propagation policy orphan
codename: '[sig-api-machinery] Garbage collector should orphan RS created by deployment
when deleteOptions.PropagationPolicy is Orphan [Conformance]'
description: Create a deployment with a replicaset. Once replicaset is created ,
delete the deployment with deleteOptions.PropagationPolicy set to Orphan. Deleting
the deployment MUST cause the replicaset created by the deployment to be orphaned,
also the Pods created by the deployments MUST be orphaned.
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: Garbage Collector, delete replication controller, propagation policy orphan
codename: '[sig-api-machinery] Garbage collector should orphan pods created by rc
if delete options say so [Conformance]'
description: Create a replication controller with maximum allocatable Pods between
10 and 100 replicas. Once RC is created and the all Pods are created, delete RC
with deleteOptions.PropagationPolicy set to Orphan. Deleting the Replication Controller
MUST cause pods created by that RC to be orphaned.
release: v1.9
file: test/e2e/apimachinery/garbage_collector.go
- testname: namespace-deletion-removes-pods
codename: '[sig-api-machinery] Namespaces [Serial] should ensure that all pods are
removed when a namespace is deleted [Conformance]'
description: Ensure that if a namespace is deleted then all pods are removed from
that namespace.
release: ""
file: test/e2e/apimachinery/namespace.go
- testname: namespace-deletion-removes-services
codename: '[sig-api-machinery] Namespaces [Serial] should ensure that all services
are removed when a namespace is deleted [Conformance]'
description: Ensure that if a namespace is deleted then all services are removed
from that namespace.
release: ""
file: test/e2e/apimachinery/namespace.go
- testname: Namespace patching
codename: '[sig-api-machinery] Namespaces [Serial] should patch a Namespace [Conformance]'
description: A Namespace is created. The Namespace is patched. The Namespace and
MUST now include the new Label.
release: v1.18
file: test/e2e/apimachinery/namespace.go
- testname: ResourceQuota, update and delete
codename: '[sig-api-machinery] ResourceQuota should be able to update and delete
ResourceQuota. [Conformance]'
description: Create a ResourceQuota for CPU and Memory quota limits. Creation MUST
be successful. When ResourceQuota is updated to modify CPU and Memory quota limits,
update MUST succeed with updated values for CPU and Memory limits. When ResourceQuota
is deleted, it MUST not be available in the namespace.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, configmap
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture
the life of a configMap. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a ConfigMap. Its creation MUST be successful and resource usage count against
the ConfigMap object MUST be captured in ResourceQuotaStatus of the ResourceQuota.
Delete the ConfigMap. Deletion MUST succeed and resource usage count against the
ConfigMap object MUST be released from ResourceQuotaStatus of the ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, pod
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture
the life of a pod. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a Pod with resource request count for CPU, Memory, EphemeralStorage and
ExtendedResourceName. Pod creation MUST be successful and respective resource
usage count MUST be captured in ResourceQuotaStatus of the ResourceQuota. Create
another Pod with resource request exceeding remaining quota. Pod creation MUST
fail as the request exceeds ResourceQuota limits. Update the successfully created
pod's resource requests. Updation MUST fail as a Pod can not dynamically update
its resource requirements. Delete the successfully created Pod. Pod Deletion MUST
be scuccessful and it MUST release the allocated resource counts from ResourceQuotaStatus
of the ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, replicaSet
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture
the life of a replica set. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a ReplicaSet. Its creation MUST be successful and resource usage count
against the ReplicaSet object MUST be captured in ResourceQuotaStatus of the ResourceQuota.
Delete the ReplicaSet. Deletion MUST succeed and resource usage count against
the ReplicaSet object MUST be released from ResourceQuotaStatus of the ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, replicationController
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture
the life of a replication controller. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a ReplicationController. Its creation MUST be successful and resource usage
count against the ReplicationController object MUST be captured in ResourceQuotaStatus
of the ResourceQuota. Delete the ReplicationController. Deletion MUST succeed
and resource usage count against the ReplicationController object MUST be released
from ResourceQuotaStatus of the ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, secret
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture
the life of a secret. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a Secret. Its creation MUST be successful and resource usage count against
the Secret object and resourceQuota object MUST be captured in ResourceQuotaStatus
of the ResourceQuota. Delete the Secret. Deletion MUST succeed and resource usage
count against the Secret object MUST be released from ResourceQuotaStatus of the
ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, service
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture
the life of a service. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a Service. Its creation MUST be successful and resource usage count against
the Service object and resourceQuota object MUST be captured in ResourceQuotaStatus
of the ResourceQuota. Delete the Service. Deletion MUST succeed and resource usage
count against the Service object MUST be released from ResourceQuotaStatus of
the ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, object count quota, resourcequotas
codename: '[sig-api-machinery] ResourceQuota should create a ResourceQuota and ensure
its status is promptly calculated. [Conformance]'
description: Create a ResourceQuota. Creation MUST be successful and its ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, quota scope, BestEffort and NotBestEffort scope
codename: '[sig-api-machinery] ResourceQuota should verify ResourceQuota with best
effort scope. [Conformance]'
description: Create two ResourceQuotas, one with 'BestEffort' scope and another
with 'NotBestEffort' scope. Creation MUST be successful and their ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a 'BestEffort' Pod by not explicitly specifying resource limits and requests.
Pod creation MUST be successful and usage count MUST be captured in ResourceQuotaStatus
of 'BestEffort' scoped ResourceQuota but MUST NOT in 'NotBestEffort' scoped ResourceQuota.
Delete the Pod. Pod deletion MUST succeed and Pod resource usage count MUST be
released from ResourceQuotaStatus of 'BestEffort' scoped ResourceQuota. Create
a 'NotBestEffort' Pod by explicitly specifying resource limits and requests. Pod
creation MUST be successful and usage count MUST be captured in ResourceQuotaStatus
of 'NotBestEffort' scoped ResourceQuota but MUST NOT in 'BestEffort' scoped ResourceQuota.
Delete the Pod. Pod deletion MUST succeed and Pod resource usage count MUST be
released from ResourceQuotaStatus of 'NotBestEffort' scoped ResourceQuota.
release: v1.16
file: test/e2e/apimachinery/resource_quota.go
- testname: ResourceQuota, quota scope, Terminating and NotTerminating scope
codename: '[sig-api-machinery] ResourceQuota should verify ResourceQuota with terminating
scopes. [Conformance]'
description: Create two ResourceQuotas, one with 'Terminating' scope and another
'NotTerminating' scope. Request and the limit counts for CPU and Memory resources
are set for the ResourceQuota. Creation MUST be successful and their ResourceQuotaStatus
MUST match to expected used and total allowed resource quota count within namespace.
Create a Pod with specified CPU and Memory ResourceRequirements fall within quota
limits. Pod creation MUST be successful and usage count MUST be captured in ResourceQuotaStatus
of 'NotTerminating' scoped ResourceQuota but MUST NOT in 'Terminating' scoped
ResourceQuota. Delete the Pod. Pod deletion MUST succeed and Pod resource usage