Kubernetes Prow Robot
d34bdeea41
Merge pull request #113853 from jsafrane/add-volumepath
...
Fix subpath disruptive tests
2022-11-15 07:56:52 -08:00
Kubernetes Prow Robot
e4d46148de
Merge pull request #113826 from jsafrane/add-openstack
...
Add CSI migration of OpenStack Cinder volumes
2022-11-11 11:00:07 -08:00
Kubernetes Prow Robot
e451cf5ffe
Merge pull request #113169 from soltysh/use_waitgroup
...
Use goroutine to speed up volume clenaups
2022-11-11 10:59:55 -08:00
Jan Safranek
3fdd4ca7a4
Fix subpath disruptive tests
...
Add volumePath parameter to all disruptive checks, so subpath tests can use
"/test-volume" and disruptive tests can use "/mnt/volume1" for their
respective Pods.
2022-11-11 14:03:33 +01:00
Jan Safranek
6005c3b512
Remove OpenStack cloud provider
...
And keep OpenStack Cinder CSI translation
2022-11-11 12:04:55 +01:00
Jan Safranek
5b284a50b7
Revert "Remove references to openstack and cinder"
...
This reverts commit 9bbf01bae9 .
2022-11-10 18:25:30 +01:00
Kubernetes Prow Robot
d94261e904
Merge pull request #113186 from ttakahashi21/KEP-3294
...
Introduce APIs to support CrossNamespaceSourceProvisioning
2022-11-10 08:06:54 -08:00
Maciej Szulik
0253397fbd
Use goroutine to speed up volume clenaups
...
This removes WaitTimeoutForPodNoLongerRunningOrNotFoundInNamespace
introduced in f2b9479f8e and changes
the test to use goroutines to speed up the cleanups.
2022-11-10 13:15:06 +01:00
Jan Safranek
ee12e3ff42
Add [Feature:SELinux] to all tests that require SELinux
...
Most CI jobs run an OS that does not support SELinux, therefore tests that
need it should be skipped by default.
* [Feature:SELinux] marks tests that need SELinux (for any feature)
* [Feature:SELinuxMountReadWriteOncePod] marks tests that need
SELinuxMountReadWriteOncePod alpha gate enabled.
Currently, all SELinux tests have both, but it will change in the future.
2022-11-10 10:18:11 +01:00
Takafumi Takahashi
87c1ca88d4
Add API and validation for CrossNamespaceVolumeDataSource
2022-11-09 20:58:25 +00:00
Hemant Kumar
8cc30f5e0b
Fix broken readwriteOncePod serial tests
...
These tests can't yet run in non-alpha clusters
2022-11-08 15:58:53 -05:00
Jan Safranek
d6c36736d5
Add mock CSI driver test for SELinux mount
2022-11-08 13:37:09 +01:00
Jan Safranek
802979c295
Add SELinux disruptive test
2022-11-08 12:42:20 +01:00
Kubernetes Prow Robot
fbde6ab05c
Merge pull request #111724 from dobsonj/csi-inline-conformance-tests
...
CSI Inline Volumes: promote API tests to conformance
2022-11-07 16:00:16 -08:00
Roman Bednar
8209066c4c
graduate RetroactiveDefaultStorageClass to beta
...
Change feature to beta and remove e2e test feature flags since they're
not needed anymore.
2022-11-02 09:25:10 +01:00
Kubernetes Prow Robot
f163fae7d5
Merge pull request #113409 from gnufied/disable-generic-ephemeral-expansion
...
Disable expansion in SC, if driver does not support it
2022-10-27 13:20:42 -07:00
Hemant Kumar
fa242ff102
Disable expansion in SC, if driver does not support it
2022-10-27 13:35:36 -04:00
Jonathan Dobson
5d1725f17b
CSI Inline Volumes: promote API tests to conformance
2022-10-26 07:41:01 -06:00
Kubernetes Prow Robot
bb12faf15b
Merge pull request #113141 from dobsonj/csi-inline-pod-test-flake
...
test: remove flaky pod update test in CSIInlineVolumes e2e
2022-10-25 16:26:45 -07:00
Jonathan Dobson
e377d071bb
test: remove flaky pod update test in CSIInlineVolumes e2e
2022-10-25 11:55:59 -06:00
Kubernetes Prow Robot
fc866d87dc
Merge pull request #113208 from soltysh/azure_timeouts
...
Set default test timeouts first, only then modify the required ones
2022-10-20 12:07:20 -07:00
Kubernetes Prow Robot
0a08757181
Merge pull request #113128 from pohly/e2e-storage-cleanup
...
e2e storage: cleanup with context
2022-10-20 10:29:00 -07:00
Maciej Szulik
24d30bf8b2
Set default test timeouts first, only then modify the required ones
2022-10-20 15:35:17 +02:00
Patrick Ohly
f15d7f6cca
e2e storage: eliminate context.TODO and cleanup callbacks
...
Tests should accept a context from Ginkgo and pass it through to all functions
which may block for a longer period of time. In particular all Kubernetes API
calls through client-go should use that context. Then if a timeout occurs,
the test returns immediately because everything that it could block on will
return.
Cleanup code then needs to run in a separate Ginkgo node, typically
DeferCleanup, which ensures that it gets a separate context which has not timed
out yet.
2022-10-20 13:56:59 +02:00
Patrick Ohly
d8d3dc9476
e2e storage: eliminate explicit test driver cleanup
...
Cleanup can be handled inside the setup code with ginkgo.DeferCleanup. This
simplifies the code.
2022-10-20 13:56:59 +02:00
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
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
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
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
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
Alexis MacAskill
d6d93788ae
remove in-tree volume limits test now that CSIMigration is GA
2022-10-09 02:47:32 +00: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
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
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
Patrick Ohly
5b63199f46
e2e storage: add Rename to PodIO
...
This is useful for atomic file creation: first create a temporary file, then
rename it.
2022-09-30 13:25:26 +02:00
Ashutosh Kumar
17ecb9f740
use correct timeout for pod startup wait
...
Signed-off-by: Ashutosh Kumar <sonasingh46@gmail.com >
2022-09-29 21:13:56 +05:30
Roman Bednar
f765e191d1
add e2e test for retroactive storage class feature
2022-09-21 10:52:28 +02:00
Humble Chirammal
9e9fc2be88
various corrections in test/e2e package
...
Signed-off-by: Humble Chirammal <hchiramm@redhat.com >
2022-09-16 18:59:30 +05:30
Kubernetes Prow Robot
148476eff1
Merge pull request #112427 from gnufied/add-zone-field-cloud-config-test
...
Add zone field to vsphere test cloudconfig
2022-09-14 11:09:25 -07:00
Hemant Kumar
30ac00eeb5
Add zone field to vsphere test cloudconfig
2022-09-13 17:19:33 -04:00
Humble Chirammal
c2a7bfd6b4
removal of glusterfs in-tree driver code from the source
...
Signed-off-by: Humble Chirammal <hchiramm@redhat.com >
2022-09-13 20:11:50 +05:30
Kubernetes Prow Robot
eedf0ed221
Merge pull request #112390 from pohly/e2e-storage-helpers
...
e2e storage: update helpers
2022-09-12 08:07:48 -07:00
Kubernetes Prow Robot
48256c55c2
Merge pull request #112251 from pohly/e2e-storage-proxy-shutdown
...
e2e storage: close all pending streams when proxy listener gets closed
2022-09-12 08:07:24 -07:00
Patrick Ohly
24230b4307
e2e storage: support creating ReplicaSet
...
This is useful for running a driver on a subset of all ready nodes:
- use e2enode.GetBoundedReadySchedulableNodes with a suitable
maximum number of nodes to determine how much nodes are available
for a test
- define pod anti-affinity in the PodTemplate:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/instance: xxxxxxx
topologyKey: kubernetes.io/hostname
- set the ReplicaSetSpec.Replicas value to the number of nodes
2022-09-12 14:38:28 +02:00
Patrick Ohly
b6b25c80de
e2e storage: add CreateFile to pod IO operations
...
This complements the other operations and will be used by some
future tests.
2022-09-12 14:38:27 +02:00
Patrick Ohly
fc092eb145
e2e: remove cleanup actions
...
The framework.AddCleanupAction API was a workaround for Ginkgo v1 not invoking
AfterEach callbacks after a test failure. Ginkgo v2 not only fixed that, but
also added a DeferCleanup API which can be used to run some code if (and only
if!) the corresponding setup code ran. In several cases that makes the test
cleanup simpler.
2022-09-09 13:51:07 +02:00