Michal Wozniak
e50cc47a06
Improve execution time for job e2e tests
2023-10-27 19:50:04 +02:00
Kubernetes Prow Robot
e0eb5edbf9
Merge pull request #121487 from mimowo/fix-flaky-e2e-tests-for-job
...
Do not preallocate node for Job e2e tests to fix flakes
2023-10-26 01:08:32 +02:00
Michal Wozniak
69ca55f136
Do not preallocate node for Job e2e tests to fix flakes
2023-10-25 12:11:08 +02:00
Michal Wozniak
b06675724d
Add e2e test for backoffLimitPerIndex
2023-10-24 09:11:35 +02:00
Kevin Hannon
42945ea6dc
update suspend test to match other test cases
2023-10-20 13:34:37 -04:00
Kubernetes Prow Robot
3825e206cb
Merge pull request #121300 from stuton/e2e-tests-for-ready-pods
...
e2e: add test for checking ready of job status
2023-10-20 19:24:38 +02:00
Anton Stuchinskii
a913abe191
e2e test for checking ready of job status
2023-10-20 14:42:13 +02:00
bzsuni
8775d805fa
use PollUntilContextTimeout to replace PollImmediateWithContext in test
...
Signed-off-by: bzsuni <bingzhe.sun@daocloud.io >
2023-10-19 22:50:21 +08:00
SataQiu
4d2ff08bfa
e2e-framework: code cleanup for mismatched comments
2023-05-26 12:36:19 +08:00
Ed Bartosh
ff9ebfa90d
e2e framework: control k/k/pkg imports
...
Modified import restrictions for the e2e framework submodules
to enable control of the k/k/pkg imports.
2023-04-17 00:17:16 +03:00
Patrick Ohly
3e760310b2
e2e: revise import restrictions
...
- test/e2e/framework/*.go should have very minimal dependencies.
We can enforce that via import-boss.
- What each test/e2e/framework/* sub-package uses is less relevant,
although ideally it also should be as minimal as possible in each case.
Enforcing this via import-boss ensures that new dependencies get flagged as
problem and thus will get additional scrutiny. It might be okay to add them,
but it needs to be considered.
2023-02-12 14:56:45 +01:00
Patrick Ohly
2f6c4f5eab
e2e: use Ginkgo context
...
All code must use the context from Ginkgo when doing API calls or polling for a
change, otherwise the code would not return immediately when the test gets
aborted.
2022-12-16 20:14:04 +01:00
Michal Wozniak
41285a7c91
Add e2e test for job pod failure policy used to match pod disruption
2022-11-10 15:50:02 +01:00
Michal Wozniak
c803892bd8
Enable the feature into beta
2022-11-09 09:02:40 +01: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
Adhityaa Chandrasekar
a0844da8f7
batch: add suspended job
...
Signed-off-by: Adhityaa Chandrasekar <adtac@google.com >
2021-03-08 20:08:21 +00:00
Benjamin Elder
56e092e382
hack/update-bazel.sh
2021-02-28 15:17:29 -08:00
Andrew Sy Kim
6c7bb454d5
e2e/framework: remove imports to pkg/controller/job
...
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com >
2020-03-17 16:55:56 -04:00
Mike Danese
25651408ae
generated: run refactor
2020-02-08 12:30:21 -05:00
Mike Danese
3aa59f7f30
generated: run refactor
2020-02-07 18:16:47 -08:00
Kubernetes Prow Robot
9d1eb45bc6
Merge pull request #86627 from tnqn/flaky-e2e-job
...
Fix a flaky e2e test of Job completion
2020-01-11 02:43:36 -08:00
Quan Tian
c84a371f3d
Fix a flaky e2e test of Job completion
...
The test was flaky because it required the job succeeds 3 times with
pseudorandom 50% failure chance within 15 minutes, while there is an
exponential back-off delay (10s, 20s, 40s …) capped at 6 minutes before
recreating failed pods. As 7 consecutive failures (1/128 chance) could
take 20+ minutes, exceeding the timeout, the test failed intermittently
because of "timed out waiting for the condition".
This PR forces the Pods of a Job to be scheduled to a single node and
uses a hostPath volume instead of an emptyDir to persist data across new
Pods.
2020-01-10 16:04:56 +08:00
tanjunchen
c2d41fda6c
remove unused code and use framework
2020-01-04 22:24:04 +08:00
Kubernetes Prow Robot
de3be348a6
Merge pull request #86640 from tanjunchen/move-code-test/e2e/framework/job
...
move funcs from test/e2e/framework/job to test/e2e/apps
2019-12-27 19:47:51 -08:00
tanjunchen
794a8668fa
move funcs from test/e2e/framework/job to test/e2e/apps
2019-12-27 09:35:30 +08:00
danielqsj
6596a14d39
add missing alias of api errors under test
2019-12-26 17:29:38 +08:00
Haosdent Huang
21e906fba6
e2e: move funs of framework/job to e2e/upgrades/apps/job
2019-12-16 00:30:42 +08:00
Kenichi Omichi
acc0c0c980
Use log functions of core framework on sub [j-l]
...
This makes sub packages of e2e test framework to use log functions
of core framework instead for avoiding circular dependencies.
NOTE: test/e2e/framework/kubelet, test/e2e/framework/metrics and
test/e2e/framework/node will make circular dependencies if
updating them. It is necessary to solve them in advance before
this work.
2019-08-23 00:11:36 +00:00
Aaron Crickenberger
03ad7d2d6f
add import-alias for k8s.io/api/batch/v1
2019-06-20 11:40:01 -07:00
Jordan Liggitt
899d00a529
Fix incorrect procMount defaulting
2019-06-10 22:01:54 -04:00
W. Trevor King
96b04bfeac
test/e2e/upgrades/apps/job: List Pods in failure message
...
Currently, this test can fail with the not-very-helpful [1,2]:
fail [k8s.io/kubernetes/test/e2e/upgrades/apps/job.go:58]: Expected
<bool>: false
to be true
Since this test is the only CheckForAllJobPodsRunning consumer, and
has been since CheckForAllJobPodsRunning landed in 116eda0909
(Implements an upgrade test for Job, 2017-02-22, #41271 ), this commit
refactors the function to EnsureJobPodsRunning, dropping the opaque
boolean, and constructing a useful error summarizing the divergence
from the expected parallelism and the status of listed Pods.
Thanks to Maciej Szulik for the fixups [3] :).
[1]: https://storage.googleapis.com/origin-ci-test/logs/release-openshift-origin-installer-e2e-aws-upgrade/1434/build-log.txt
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1708454#c0
[3]: https://github.com/wking/kubernetes/pull/1
2019-05-10 06:09:36 -07:00
draveness
f3d444d44e
feat: add logger package in test e2e framework
2019-04-30 11:47:47 +08:00
draveness
f32352ac7e
refactor: clean up e2e framework job utils
...
1. Move job_util to e2e/framework/job package
2. Remove unused UpdateJobWithFunc
2019-04-12 21:26:33 +08:00