Patrick Ohly
136f89dfc5
e2e: use error wrapping with %w
...
The recently introduced failure handling in ExpectNoError depends on error
wrapping: if an error prefix gets added with `fmt.Errorf("foo: %v", err)`, then
ExpectNoError cannot detect that the root cause is an assertion failure and
then will add another useless "unexpected error" prefix and will not dump the
additional failure information (currently the backtrace inside the E2E
framework).
Instead of manually deciding on a case-by-case basis where %w is needed, all
error wrapping was updated automatically with
sed -i "s/fmt.Errorf\(.*\): '*\(%s\|%v\)'*\",\(.* err)\)/fmt.Errorf\1: %w\",\3/" $(git grep -l 'fmt.Errorf' test/e2e*)
This may be unnecessary in some cases, but it's not wrong.
2023-02-06 15:39:13 +01:00
Antonio Ojea
7f5ae1c0c1
Revert "e2e: wait for pods with gomega"
2023-02-06 12:08:22 +01:00
Patrick Ohly
222f655062
e2e: use error wrapping with %w
...
The recently introduced failure handling in ExpectNoError depends on error
wrapping: if an error prefix gets added with `fmt.Errorf("foo: %v", err)`, then
ExpectNoError cannot detect that the root cause is an assertion failure and
then will add another useless "unexpected error" prefix and will not dump the
additional failure information (currently the backtrace inside the E2E
framework).
Instead of manually deciding on a case-by-case basis where %w is needed, all
error wrapping was updated automatically with
sed -i "s/fmt.Errorf\(.*\): '*\(%s\|%v\)'*\",\(.* err)\)/fmt.Errorf\1: %w\",\3/" $(git grep -l 'fmt.Errorf' test/e2e*)
This may be unnecessary in some cases, but it's not wrong.
2023-01-31 13:01:39 +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
michael mccune
6981a1acf5
fix spelling error in e2e upgrade apps daemonset test
2022-11-29 15:56:15 -05: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
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
Dave Chen
857458cfa5
update ginkgo from v1 to v2 and gomega to 1.19.0
...
- update all the import statements
- run hack/pin-dependency.sh to change pinned dependency versions
- run hack/update-vendor.sh to update go.mod files and the vendor directory
- update the method signatures for custom reporters
Signed-off-by: Dave Chen <dave.chen@arm.com >
2022-07-08 10:44:46 +08:00
Stephen Benjamin
b351745c1c
Replace use of Sprintf with net.JoinHostPort
...
On IPv6 clusters, one of the most frequent problems I encounter is
assumptions that one can build a URL with a host and port simply by
using Sprintf, like this:
```go
fmt.Sprintf("http://%s:%d/foo ", host, port)
```
When `host` is an IPv6 address, this produces an invalid URL as it must
be bracketed, like this:
```
http://[2001:4860:4860::8888]:9443
```
This change fixes the occurences of joining a host and port with the
purpose built `net.JoinHostPort` function.
I encounter this problem often enough that I started to [write a linter
for it](https://github.com/stbenjam/go-sprintf-host-port ). I don't
think the linter is quite ready for wide use yet, but I did run it
against the Kube codebase and found these. While the host portion in
some of these changes may always be an FQDN or IPv4 IP today, it's an
easy thing that can break later on.
2022-05-04 06:37:50 -04:00
ahrtr
fe95aa614c
io/ioutil has already been deprecated in golang 1.16, so replace all ioutil with io and os
2022-02-03 05:32:12 +08:00
Davanum Srinivas
9405e9b55e
Check in OWNERS modified by update-yamlfmt.sh
...
Signed-off-by: Davanum Srinivas <davanum@gmail.com >
2021-12-09 21:31:26 -05:00
Nikhil Sharma
031dc016e6
Changed code to improve output for files under test/e2e/upgrades/apps
2021-10-27 11:41:18 +05:30
Claudiu Belu
b87cc616b5
tests: Refactors daemonset utils into framework
...
Creates test/e2e/framework/daemonset, which contains commonly
used daemonset-related operations, deduplicating the code for it.
2021-10-21 18:54:38 +03:00
Kubernetes Prow Robot
db70c2a96a
Merge pull request #99348 from chymy/e2e-rck-unused
...
Remove unused code in test/e2e/{upgrades,storage,network}
2021-04-28 21:02:50 -07:00
wojtekt
93ff0e5c68
Cleanup test/e2e/upgrades directory
2021-03-05 18:19:46 +01:00
Benjamin Elder
56e092e382
hack/update-bazel.sh
2021-02-28 15:17:29 -08:00
chymy
c32793a4c9
Remove unused code in test/e2e/{upgrades,storage,network}
...
Signed-off-by: chymy <chang.min1@zte.com.cn >
2021-02-23 02:45:51 -05:00
drfish
dfab6b637f
Update .import-aliases for e2e test framework
2020-03-25 11:40:02 +08:00
Kenichi Omichi
75ca65806d
Replace ExpectNoError(fmt.Errorf(..)) with funcs
...
There were framework.ExpectNoError(fmt.Errorf(..)) calls which just
raise an exception without actual value checks, they just raised the
specified error messages. These usages of framework.ExpectNoError()
seemed a little tricky, so this replaces them with corresponding check
functions for the readability.
2020-03-06 22:00:10 +00: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
toyoda
0c12ae5240
Modify alias of e2e/framework/job to e2ejob
2020-01-17 10:56:05 +09:00
tanjunchen
2f0e5b262a
move functions from e2e/framework/deployment/ to e2e/apps/ and e2e/upgrades
2020-01-02 13:01:09 +08:00
yuxiaobo
572c81ff53
e2e:remove func of framework/replicaset to e2e/upgrades/apps/replicasets.go
...
Signed-off-by: yuxiaobo <yuxiaobogo@163.com >
2019-12-27 16:37:57 +08:00
Kubernetes Prow Robot
82c7c86998
Merge pull request #86169 from clarklee92/move-e2e/framework/statefulset
...
e2e: move funs of framework/statefulset to e2e/apps & e2e/upgrades
2019-12-22 19:57:32 -08:00
Haosdent Huang
21e906fba6
e2e: move funs of framework/job to e2e/upgrades/apps/job
2019-12-16 00:30:42 +08:00
clarklee92
623c4f9f17
e2e: move funs of framework/statefulset to e2e/apps & e2e/upgrades
...
Signed-off-by: clarklee92 <clarklee1992@hotmail.com >
2019-12-14 02:17:00 +08:00
clarklee92
9f38753c77
Use log functions of core framework on test/e2e/upgrades
...
This makes sub packages of e2e test upgrades to use log functions
of core framework instead for avoiding circular dependencies.
Signed-off-by: clarklee92 <clarklee1992@hotmail.com >
2019-09-23 16:09:33 +08:00
Kubernetes Prow Robot
2cfd4a5eb9
Merge pull request #79168 from tnozicka/fix-sigapps-owners
...
Update Sig-Apps OWNERS to aliases in places that were missed in #76669
2019-07-08 17:30:01 -07:00
draveness
ff09cc5405
feat: use framework.ExpectEqual in upgrades and windows e2e test
2019-07-04 09:38:38 +08:00
Kubernetes Prow Robot
d1d111496a
Merge pull request #79238 from bclau/tests/reduce-to-agnhost-part-3
...
tests: Replaces images used with agnhost (part 3)
2019-06-28 12:43:19 -07:00
Claudiu Belu
c752ea8134
tests: Replaces images used with agnhost (part 3)
...
Quite a few images are only used a few times in a few tests. Thus,
the images are being centralized into the agnhost image, reducing
the number of images that have to be pulled and used.
This PR replaces the usage of the following images with agnhost:
- audit-proxy
- crd-conversion-webhook
- entrypoint-tester
- inclusterclient
- iperf
- porter
- serve-hostname
2019-06-26 13:33:55 -07:00
goodluckbot
032dde8754
Refactor statefulset e2e tests
2019-06-25 11:33:58 +08:00
Kubernetes Prow Robot
dc8b928136
Merge pull request #79162 from SataQiu/fix-test-20190619
...
Refactor: replace framework.Failf with e2elog.Failf
2019-06-21 12:17:04 -07:00
Aaron Crickenberger
03ad7d2d6f
add import-alias for k8s.io/api/batch/v1
2019-06-20 11:40:01 -07:00
Aaron Crickenberger
0aae740ede
add import-alias for k8s.io/api/apps/v1
2019-06-20 11:39:40 -07:00
Tomas Nozicka
d4261ba741
Update Sig-Apps OWNERS in places that were missed in #76669
2019-06-19 15:36:16 +02:00
SataQiu
332be4b1e3
refactor: replace framework.Failf with e2elog.Failf
2019-06-19 17:52:35 +08:00
Vikas Choudhary
cc8facda70
Pass updated deployment for comparison of replica count
2019-06-19 14:21:42 +05:30
Jordan Liggitt
899d00a529
Fix incorrect procMount defaulting
2019-06-10 22:01:54 -04:00
draveness
950f6e868c
refactor: use framework.ExpectNoError instead
2019-05-12 10:44:03 +08: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
John Schnake
afc66a5487
Move scalability, upgrade, and common packages to framework/log
...
This is part of the transition to using framework/log instead
of the Logf inside the framework package. This will help with
import size/cycles when importing the framework or subpackages.
2019-05-04 12:45:15 -05:00
Jorge Alarcon Ochoa
dc619067d9
Refeactored framework deployment utils
...
This is the continuation of the refactoring of framework/deployment_utils.go
into framework/deployment.
Signed-off-by: Jorge Alarcon Ochoa <alarcj137@gmail.com >
2019-05-03 18:00:53 -04:00
Jorge Alarcon Ochoa
8200ae6279
Refeactored framework deployment utils
...
xref: #76206
Signed-off-by: Jorge Alarcon Ochoa <alarcj137@gmail.com >
2019-04-24 19:28:03 -04: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
draveness
dee97a4e5c
refactor: cleanup e2e replicaset utils
2019-04-12 01:48:10 +08:00
danielqsj
8916ccabaf
fix golint failures for test/e2e/upgrades/apps
2019-02-25 13:32:15 +08:00
Clayton Coleman
a7dfbb99c4
updates: DaemonSet test should tolerate all taints
...
The test specifically includes all nodes, but doesn't actually ensure
the daemonset covers all nodes despite taints.
2019-02-10 23:53:57 -05:00
Morten Torkildsen
62c238b297
Fix for failing daemonset e2e test
2019-01-21 21:46:46 -08:00