Kubernetes Prow Robot
6be327c053
Merge pull request #113046 from jsafrane/add-multiplepv-cap
...
Add capability for tests with multiple PVs with the same VolumeHandle
2022-10-18 16:27:12 -07:00
Kubernetes Prow Robot
fe9c94ec02
Merge pull request #111957 from ii/create-resourcequota-status-test
...
Write e2e test for ResourceQuota status +3 Endpoints
2022-10-18 14:01:00 -07:00
Jan Safranek
bda42b6b53
Add capability for tests with multiple PVs with the same VolumeHandle
...
Some CSI drivers do not like multiple PVs with the same VolumeHandle,
therefore make that tests optional.
2022-10-18 13:44:54 +02:00
Maciej Szulik
f2b9479f8e
Wait for pod not running or gone in storage tests
2022-10-18 13:18:54 +02:00
Stephen Heywood
ae2312fba8
Create e2e test for ResourceQuota status endpoints
...
e2e test validates the following 3 endpoints
- patchCoreV1NamespacedResourceQuotaStatus
- readCoreV1NamespacedResourceQuotaStatus
- replaceCoreV1ResourceQuotaForAllNamespacesStatus
2022-10-18 15:16:03 +13:00
Kubernetes Prow Robot
3e06830f2d
Merge pull request #109924 from mauriciopoppe/provisioning-sync
...
Use sync in e2e storage provisioning tests
2022-10-17 15:49:17 -07:00
Kubernetes Prow Robot
4216ad3542
Merge pull request #113106 from pohly/dep-ginkgo-gomega
...
dependencies: update to gomega v1.22.1 and ginkgo v2.3.1
2022-10-17 11:09:26 -07:00
Kubernetes Prow Robot
216ba39632
Merge pull request #112987 from chrishenzie/e2e-test-rwop
...
e2e test for ReadWriteOncePod PV access mode
2022-10-17 10:01:08 -07:00
Patrick Ohly
b667933741
e2e: adapt to modified Ginkgo output
2022-10-17 15:12:41 +02:00
Patrick Ohly
3c162af45f
e2e: skip AllNodesReady when the test skipped framework initialization
...
This addresses a problem caused by
https://github.com/kubernetes/kubernetes/pull/112043 : because the AfterEach
which invokes AllNodesReady always runs, including tests that skipped early,
those tests ran into a nil pointer access. This increased the size of log
files. The tests still worked.
2022-10-17 10:27:14 +02:00
Kubernetes Prow Robot
83c2585716
Merge pull request #112891 from ii/create-namespace-finalizer-test
...
Write e2e test for replaceCoreV1NamespaceFinalize +1 Endpoints
2022-10-14 21:25:23 -07:00
Kubernetes Prow Robot
6705015101
Merge pull request #112133 from knabben/remove-kproxy-userspace
...
Remove kube-proxy userspace modes
2022-10-14 17:31:06 -07:00
Kubernetes Prow Robot
0ef0fa0e82
Merge pull request #112824 from gjkim42/promote-expandeddnsconfig-to-beta
...
Promote ExpandedDNSConfig feature to beta stage
2022-10-14 10:54:58 -07:00
Chris Henzie
f6d9c27722
e2e test for ReadWriteOncePod PV access mode
...
Adds two tests for the enforcement of the ReadWriteOncePod
PersistentVolume access mode.
1. Tests that when two Pods are scheduled that reference the same
ReadWriteOncePod PVC, the latter-scheduled Pod will be marked
unschedulable because the PVC is in-use.
2. Tests that when two Pods are scheduled on the same node (setting
Pod.Spec.NodeName to bypass scheduling for the second Pod), the
latter Pod will fail to start because the PVC is already mounted on
the Node.
Included are changes to update the hostpath CSI driver to accept new CSI
access modes. Its sidecar containers are already at supported versions
for ReadWriteOncePod and don't need updating. The GCP PD CSI driver does
not yet support the new CSI access modes, but its sidecar containers are
at supported versions and so the feature will work.
To support ReadWriteOncePod, the following CSI sidecars must be updated
to these versions or greater:
- csi-provisioner:v3.0.0+
- csi-attacher:v3.3.0+
- csi-resizer:v1.3.0+
For more details, see:
https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode/README.md
2022-10-14 09:15:36 -07:00
Kubernetes Prow Robot
be5ed7bd12
Merge pull request #113059 from ii/promote-replication-controller-scale-test
...
Promote Read, Replace ReplicationController scale endpoints Conformance - +2 Endpoints
2022-10-13 19:04:46 -07:00
Stephen Heywood
ca00b6be43
Create e2e test for Namespace endpoint
...
e2e test validates the following 1 endpoint
- replaceCoreV1NamespaceFinalize
2022-10-14 14:46:31 +13:00
Kubernetes Prow Robot
350fa3de66
Merge pull request #113061 from ii/promote-service-account-replace-test
...
Promote replaceCoreV1NamespacedServiceAccount test to Conformance - +1 Endpoint
2022-10-13 17:58:57 -07:00
Kubernetes Prow Robot
e16dbe94a6
Merge pull request #113060 from ii/promote-limitrange-test
...
Promote List, Patch and Delete LimitRange test to Conformance - +3 Endpoints
2022-10-13 17:58:46 -07:00
Kubernetes Prow Robot
c1602669a6
Merge pull request #112806 from dcbw/demote-service-affinity-timeout
...
test: demote service ClientIP affinity timeout tests from conformance
2022-10-11 14:12:40 -07:00
Patrick Ohly
1793132198
e2e storage: avoid usage of stdin for file creation
...
It turned out to be unreliable (see
https://github.com/kubernetes/kubernetes/issues/112834 ). Encoding the data
inside the command as input for base64 is a workaround that is fine for small
amounts of data. It becomes less efficient and/or unusable for large amounts.
2022-10-11 15:02:25 +02:00
Patrick Ohly
64731baffe
e2e storage: add logging to proxy
...
This is optional and can be used to capture the result of command execution in
the log output.
2022-10-11 15:02:25 +02:00
Gunju Kim
add4652352
Promote ExpandedDNSConfig feature to the beta stage
...
This adds an e2e test for the feature and promotes ExpandedDNSConfig
feature to the beta stage.
2022-10-11 21:00:00 +09:00
Stephen Heywood
5ad48780ae
Promote ServiceAccount e2e test to Conformance
2022-10-10 12:12:17 +13:00
Stephen Heywood
bf22ad1a15
Promote limitRange e2e test to Conformance
2022-10-10 11:37:57 +13:00
Stephen Heywood
84c02e370c
Promote ReplicationController scale e2e test to Conformance
2022-10-10 10:58:30 +13:00
Alexis MacAskill
d6d93788ae
remove in-tree volume limits test now that CSIMigration is GA
2022-10-09 02:47:32 +00:00
Patrick Ohly
2ba1d9e014
e2e framework: remove AddonResourceConstraints
...
According to spiffx in
https://github.com/kubernetes/kubernetes/pull/112043/files#r978031680 :
> Last in-tree tests that used it were removed in #83322 (1.17 timeframe)
> so I think it can be safely removed
2022-10-06 08:19:47 +02:00
Patrick Ohly
9b49ef433c
e2e framework: add top-level README.md
...
This documents the cleaned up package structure and explains how callbacks are
invoked. Ginkgko v2 has led to some improvements in that area.
2022-10-06 08:19:47 +02:00
Patrick Ohly
7f8831407c
e2e framework: also test BeforeEach and extension mechanism
...
This adds test coverage for NewFrameworkExtensions and shows better how
BeforeEach callbacks are invokved. The unit test is not strictly about just the
cleanup operations anymore, but that's okay(ish).
2022-10-06 08:19:47 +02:00
Patrick Ohly
dfdf88d4fa
e2e: adapt to moved code
...
This is the result of automatically editing source files like this:
go install golang.org/x/tools/cmd/goimports@latest
find ./test/e2e* -name "*.go" | xargs env PATH=$GOPATH/bin:$PATH ./e2e-framework-sed.sh
with e2e-framework-sed.sh containing this:
sed -i \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.ExecCommandInContainer(/e2epod.ExecCommandInContainer(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.ExecCommandInContainerWithFullOutput(/e2epod.ExecCommandInContainerWithFullOutput(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.ExecShellInContainer(/e2epod.ExecShellInContainer(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.ExecShellInPod(/e2epod.ExecShellInPod(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.ExecShellInPodWithFullOutput(/e2epod.ExecShellInPodWithFullOutput(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.ExecWithOptions(/e2epod.ExecWithOptions(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.MatchContainerOutput(/e2eoutput.MatchContainerOutput(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.PodClient(/e2epod.NewPodClient(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.PodClientNS(/e2epod.PodClientNS(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.TestContainerOutput(/e2eoutput.TestContainerOutput(\1, /" \
-e "s/\(f\|fr\|\w\w*\.[fF]\w*\)\.TestContainerOutputRegexp(/e2eoutput.TestContainerOutputRegexp(\1, /" \
-e "s/framework.AddOrUpdateLabelOnNode\b/e2enode.AddOrUpdateLabelOnNode/" \
-e "s/framework.AllNodes\b/e2edebug.AllNodes/" \
-e "s/framework.AllNodesReady\b/e2enode.AllNodesReady/" \
-e "s/framework.ContainerResourceGatherer\b/e2edebug.ContainerResourceGatherer/" \
-e "s/framework.ContainerResourceUsage\b/e2edebug.ContainerResourceUsage/" \
-e "s/framework.CreateEmptyFileOnPod\b/e2eoutput.CreateEmptyFileOnPod/" \
-e "s/framework.DefaultPodDeletionTimeout\b/e2epod.DefaultPodDeletionTimeout/" \
-e "s/framework.DumpAllNamespaceInfo\b/e2edebug.DumpAllNamespaceInfo/" \
-e "s/framework.DumpDebugInfo\b/e2eoutput.DumpDebugInfo/" \
-e "s/framework.DumpNodeDebugInfo\b/e2edebug.DumpNodeDebugInfo/" \
-e "s/framework.EtcdUpgrade\b/e2eproviders.EtcdUpgrade/" \
-e "s/framework.EventsLister\b/e2edebug.EventsLister/" \
-e "s/framework.ExecOptions\b/e2epod.ExecOptions/" \
-e "s/framework.ExpectNodeHasLabel\b/e2enode.ExpectNodeHasLabel/" \
-e "s/framework.ExpectNodeHasTaint\b/e2enode.ExpectNodeHasTaint/" \
-e "s/framework.GCEUpgradeScript\b/e2eproviders.GCEUpgradeScript/" \
-e "s/framework.ImagePrePullList\b/e2epod.ImagePrePullList/" \
-e "s/framework.KubectlBuilder\b/e2ekubectl.KubectlBuilder/" \
-e "s/framework.LocationParamGKE\b/e2eproviders.LocationParamGKE/" \
-e "s/framework.LogSizeDataTimeseries\b/e2edebug.LogSizeDataTimeseries/" \
-e "s/framework.LogSizeGatherer\b/e2edebug.LogSizeGatherer/" \
-e "s/framework.LogsSizeData\b/e2edebug.LogsSizeData/" \
-e "s/framework.LogsSizeDataSummary\b/e2edebug.LogsSizeDataSummary/" \
-e "s/framework.LogsSizeVerifier\b/e2edebug.LogsSizeVerifier/" \
-e "s/framework.LookForStringInLog\b/e2eoutput.LookForStringInLog/" \
-e "s/framework.LookForStringInPodExec\b/e2eoutput.LookForStringInPodExec/" \
-e "s/framework.LookForStringInPodExecToContainer\b/e2eoutput.LookForStringInPodExecToContainer/" \
-e "s/framework.MasterAndDNSNodes\b/e2edebug.MasterAndDNSNodes/" \
-e "s/framework.MasterNodes\b/e2edebug.MasterNodes/" \
-e "s/framework.MasterUpgradeGKE\b/e2eproviders.MasterUpgradeGKE/" \
-e "s/framework.NewKubectlCommand\b/e2ekubectl.NewKubectlCommand/" \
-e "s/framework.NewLogsVerifier\b/e2edebug.NewLogsVerifier/" \
-e "s/framework.NewNodeKiller\b/e2enode.NewNodeKiller/" \
-e "s/framework.NewResourceUsageGatherer\b/e2edebug.NewResourceUsageGatherer/" \
-e "s/framework.NodeHasTaint\b/e2enode.NodeHasTaint/" \
-e "s/framework.NodeKiller\b/e2enode.NodeKiller/" \
-e "s/framework.NodesSet\b/e2edebug.NodesSet/" \
-e "s/framework.PodClient\b/e2epod.PodClient/" \
-e "s/framework.RemoveLabelOffNode\b/e2enode.RemoveLabelOffNode/" \
-e "s/framework.ResourceConstraint\b/e2edebug.ResourceConstraint/" \
-e "s/framework.ResourceGathererOptions\b/e2edebug.ResourceGathererOptions/" \
-e "s/framework.ResourceUsagePerContainer\b/e2edebug.ResourceUsagePerContainer/" \
-e "s/framework.ResourceUsageSummary\b/e2edebug.ResourceUsageSummary/" \
-e "s/framework.RunHostCmd\b/e2eoutput.RunHostCmd/" \
-e "s/framework.RunHostCmdOrDie\b/e2eoutput.RunHostCmdOrDie/" \
-e "s/framework.RunHostCmdWithFullOutput\b/e2eoutput.RunHostCmdWithFullOutput/" \
-e "s/framework.RunHostCmdWithRetries\b/e2eoutput.RunHostCmdWithRetries/" \
-e "s/framework.RunKubectl\b/e2ekubectl.RunKubectl/" \
-e "s/framework.RunKubectlInput\b/e2ekubectl.RunKubectlInput/" \
-e "s/framework.RunKubectlOrDie\b/e2ekubectl.RunKubectlOrDie/" \
-e "s/framework.RunKubectlOrDieInput\b/e2ekubectl.RunKubectlOrDieInput/" \
-e "s/framework.RunKubectlWithFullOutput\b/e2ekubectl.RunKubectlWithFullOutput/" \
-e "s/framework.RunKubemciCmd\b/e2ekubectl.RunKubemciCmd/" \
-e "s/framework.RunKubemciWithKubeconfig\b/e2ekubectl.RunKubemciWithKubeconfig/" \
-e "s/framework.SingleContainerSummary\b/e2edebug.SingleContainerSummary/" \
-e "s/framework.SingleLogSummary\b/e2edebug.SingleLogSummary/" \
-e "s/framework.TimestampedSize\b/e2edebug.TimestampedSize/" \
-e "s/framework.WaitForAllNodesSchedulable\b/e2enode.WaitForAllNodesSchedulable/" \
-e "s/framework.WaitForSSHTunnels\b/e2enode.WaitForSSHTunnels/" \
-e "s/framework.WorkItem\b/e2edebug.WorkItem/" \
"$@"
for i in "$@"; do
# Import all sub packages and let goimports figure out which of those
# are redundant (= already imported) or not needed.
sed -i -e '/"k8s.io.kubernetes.test.e2e.framework"/a e2edebug "k8s.io/kubernetes/test/e2e/framework/debug"' "$i"
sed -i -e '/"k8s.io.kubernetes.test.e2e.framework"/a e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl"' "$i"
sed -i -e '/"k8s.io.kubernetes.test.e2e.framework"/a e2enode "k8s.io/kubernetes/test/e2e/framework/node"' "$i"
sed -i -e '/"k8s.io.kubernetes.test.e2e.framework"/a e2eoutput "k8s.io/kubernetes/test/e2e/framework/pod/output"' "$i"
sed -i -e '/"k8s.io.kubernetes.test.e2e.framework"/a e2epod "k8s.io/kubernetes/test/e2e/framework/pod"' "$i"
sed -i -e '/"k8s.io.kubernetes.test.e2e.framework"/a e2eproviders "k8s.io/kubernetes/test/e2e/framework/providers"' "$i"
goimports -w "$i"
done
2022-10-06 08:19:47 +02:00
Patrick Ohly
92047da152
e2e: make import blocks consistent
2022-10-06 08:16:47 +02:00
Patrick Ohly
5614a9d064
e2e framework: eliminate interim sub packages
...
The "todo" packages were necessary while moving code around to avoid hitting
cyclic dependencies. Now that any sub package can depend on the framework, they
are no longer needed and the code can be moved into the normal sub packages.
2022-10-06 08:16:47 +02:00
Patrick Ohly
2d21acb1be
e2e framework: eliminate redundant framework/[log|ginkgowrapper]
...
These sub packages were created by mistake. Logging and failure handling are
core features and must be implemented in the framework package.
2022-10-06 08:16:47 +02:00
Patrick Ohly
a46fea53e6
e2e framework: move pod exec and create into sub package
2022-10-06 08:16:47 +02:00
Patrick Ohly
8af3258526
e2e framework: move NodeKiller into framework/node
...
This removes some more dependencies from the framework.
Removing the configuration needs to be handled as part of refactoring the
TestContext.
2022-10-06 08:16:47 +02:00
Patrick Ohly
70d0824f01
e2e framework: move resource gathering into framework/debug
...
This helps getting rid of the ssh dependency. The same init package as for
dumping namespaces takes care of adding the functionality back to framework
instances.
2022-10-06 08:16:47 +02:00
Patrick Ohly
f9bc4f837b
e2e framework: move log size verification into framework/debug
...
This helps getting rid of the ssh dependency. The same init package as for
dumping namespaces takes care of adding the functionality back to framework
instances.
2022-10-06 08:16:47 +02:00
Patrick Ohly
802451b6ca
e2e framework: move metrics gathering into sub package
...
This reduces the size of the test/e2e/framework itself. Because it does not
gather metrics data anymore by default, E2E test suites must set their
callbacks function or set the original one by importing
"k8s.io/kubernetes/test/e2e/framework/todo/metrics/init".
2022-10-06 08:16:47 +02:00
Patrick Ohly
b8d28cb6c3
e2e framework: move node helper code into sub package
...
This reduces the size of the test/e2e/framework itself. Because it does not
check nodes anymore by default, E2E test suites must set their own check
function or set the original one by importing
"k8s.io/kubernetes/test/e2e/framework/todo/node/init".
2022-10-06 08:16:47 +02:00
Patrick Ohly
c45a924c5e
e2e framework: move dumping of information into sub package
...
This reduces the size of the test/e2e/framework itself. Because it does not
dump anything anymore by default, E2E test suites must set their own dump
function or set the original one by importing
"k8s.io/kubernetes/test/e2e/framework/debug/init".
2022-10-06 08:16:47 +02:00
Patrick Ohly
2c8ef492ae
e2e framework: move kubectl and pod helper code
2022-10-06 08:16:47 +02:00
Patrick Ohly
e95c2dbbe3
e2e framework: introduce todo sub packages
2022-10-06 08:16:47 +02:00
Patrick Ohly
37d562b454
e2e framework: support callbacks during framework creation and before each test
...
This will be used as mechanism for invoking some of the code which is currently
hard-coded in the framework once that code is placed in optional packages.
2022-10-06 08:16:47 +02:00
Amim Knabben
7df6c02288
Remove Linux and Windows Kube-proxy Userspace mode
2022-10-05 16:59:02 -03:00
Dan Williams
1687916844
test: demote service ClientIP affinity timeout tests from conformance
...
During the September 29th, 2022 SIG-Network meeting we decided to
demote the two affinity timeout conformance tests. This was because:
(a) there is no documented correct behavior for these tests other than
"what kube-proxy does"
(b) even the kube-proxy behavior differs depending on the backend implementation
of iptables, IPVS, or [win]userspace (and winkernel doesn't at all)
(c) iptables uses only srcip matching, while userspace and IPVS use srcip+srcport
(d) IPVS and iptables have different minimum timeouts and we had
to hack up the test itself to make IPVS pass
(e) popular 3rd party network plugins also vary in their implementation
Our plan is to deprecate the current affinity options and re-add specific
options for various behaviors so it's clear exactly what plugins support
and which behavior (if any) we want to require for conformance in the future.
Signed-off-by: Dan Williams <dcbw@redhat.com >
2022-10-05 09:08:13 -05:00
Kubernetes Prow Robot
a15ce1503c
Merge pull request #112823 from ii/create-service-account-replace-test
...
Write e2e test for replaceCoreV1NamespacedServiceAccount - +1 Endpoint
2022-10-03 19:00:14 -07:00
Stephen Heywood
a3f7da0421
Create e2e test for ServiceAccount endpoint
...
e2e test validates the following 1 endpoint
- replaceCoreV1NamespacedServiceAccount
2022-10-04 09:21:25 +13:00
Kubernetes Prow Robot
725993afce
Merge pull request #112430 from ii/create-limitrange-test
...
Write List, Patch and Delete LimitRange test +3 Endpoints
2022-10-03 10:06:26 -07:00
Kubernetes Prow Robot
9720af2ba3
Merge pull request #112306 from tkashem/v1beta3
...
add v1beta3 for Priority And Fairness
2022-10-03 10:06:14 -07:00
Kubernetes Prow Robot
ecdbb02580
Merge pull request #112790 from sonasingh46/timeout
...
use correct timeout for pod startup wait
2022-09-30 07:36:28 -07:00