Commit Graph

161 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
57e9981dc2 Merge pull request #122865 from pohly/e2e-framework-logging
e2e framework: unify logging, support skipping helpers
2024-02-01 09:37:02 -08:00
Davanum Srinivas
717a0002b7 [gce_runner] use metadata file when values have special characters
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-01-30 15:55:51 -08:00
Davanum Srinivas
4716bf8bd4 Fix issues found by linter
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-01-28 06:05:04 -05:00
Davanum Srinivas
76ea142051 Use gcloud for gce_runner
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-01-27 22:23:37 -05:00
Patrick Ohly
dd0cee4895 e2e node runner: remove dependency on e2e/framework
A stand-alone binary shouldn't import the test/e2e/framework, which is targeted
towards usage in a Ginkgo test suite. This currently works, but will break once
test/e2e/framework becomes more opinionated about how to configure logging.

The simplest solution is to duplicate the one short function that the binary
was calling in the framework.
2024-01-20 18:23:31 +01:00
Kubernetes Prow Robot
7db7824d85 Merge pull request #122178 from saschagrunert/cni-plugins
Update cni-plugins to v1.4.0
2024-01-04 18:00:07 +01:00
Sascha Grunert
1ae5594fb2 Update cni-plugins to v1.4.0
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2023-12-13 09:33:31 +01:00
upodroid
e2227a24fb switch to e2 machine types 2023-10-31 21:46:14 +00:00
Sai Ramesh Vanka
8e52fc7266 Minor fix to copy the required kubelet, service logs after the execution of the node e2e tests
* It is observed in some of the periodic job results that the kubelet along with few other logs
are not getting copied to the artifacts directory once the node e2e tests are executed
* Following is the sample error log that is displayed once the tests are run
```
I1031 13:15:49.056897   40204 ssh.go:146] Running the command ssh, with args: [-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o CheckHostIP=no -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -o LogLevel=ERROR -i /home/svanka/.ssh/google_compute_engine core@35.185.108.51 -- sudo ls core@35.185.108.51:/tmp/node-e2e-20231031T125637/results/*.log]
E1031 13:16:15.346641   40204 ssh.go:149] failed to run SSH command: out: ls: cannot access 'core@35.185.108.51:/tmp/node-e2e-20231031T125637/results/*.log': No such file or directory
, err: exit status 2
```
* This change fixes the above issue and helps in gathering the required test artifacts once the tests execution is completed

Signed-off-by: Sai Ramesh Vanka <svanka@redhat.com>
2023-10-31 15:36:39 +05:30
Sascha Grunert
7933368460 Update CNI plugins to v1.3.0
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2023-08-17 09:50:53 +02:00
upodroid
a65d207507 calculate the correct machine-type 2023-07-26 23:10:06 +00:00
upodroid
7d13c9b096 set map to nil if an empty string is passed 2023-07-26 10:32:27 +03:00
upodroid
1c99f9591b add node-env and instance-type flags to node-e2e tests 2023-07-21 21:46:37 +00:00
Davanum Srinivas
b01a4145b2 Install ecr-credential-provider during node e2e tests
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-30 09:18:44 -04:00
Davanum Srinivas
f96d83af66 Copy container logs for easier debugging
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-29 11:56:00 -04:00
Davanum Srinivas
0ef1f2f2d8 Set AWS specific credential provider when running there
NOTE: we are not installing the ecr-credential-provider binary
itself here we are, we need to do it out-of-band from the test
suite itself before it runs.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-27 07:45:59 -04:00
Ike Ma
e21cf9a54e Setup e2e_node to support testing on ARM64
* Enable dockerized build with --use-dockerized-build=true
* Build and create test artifacts for ARM64 with --target-build-arch=arm64
* Prepull multi-arch ready container image
* Download ARM64 binaries/packages if running on ARM64 machine
2023-05-20 00:07:44 +00:00
Kubernetes Prow Robot
dd43d864c1 Merge pull request #116901 from pacoxu/cleanup-KubeletCredentialProviders
remove GAed KubeletCredentialProviders (1.28)
2023-05-08 07:55:53 -07:00
Davanum Srinivas
bda73bd112 Refactor remote runners
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-04-02 16:51:39 -04:00
Paco Xu
70369bfe29 remove GAed KubeletCredentialProviders 2023-03-31 10:09:58 +08:00
Davanum Srinivas
a889cc7f79 prevent initializing the same flag more than once
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-03-13 17:07:00 -04:00
Davanum Srinivas
be42dcfd73 re-organize remote e2e test to be pluggable
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-03-13 12:33:47 -04:00
Todd Neal
23f71f0eba refactor remote test running 2023-03-12 21:26:01 -05:00
David Porter
c5a1f0188b test: Add node e2e test to verify static pod termination
Add node e2e test to verify that static pods can be started after a
previous static pod with the same config temporarily failed termination.

The scenario is:

1. Static pod is started
2. Static pod is deleted
3. Static pod termination fails (internally `syncTerminatedPod` fails)
4. At later time, pod termination should succeed
5. New static pod with the same config is (re)-added
6. New static pod is expected to start successfully

To repro this scenario, setup a pod using a NFS mount. The NFS server is
stopped which will result in volumes failing to unmount and
`syncTerminatedPod` to fail. The NFS server is later started, allowing
the volume to unmount successfully.

xref:

1. https://github.com/kubernetes/kubernetes/pull/113145#issuecomment-1289587988
2. https://github.com/kubernetes/kubernetes/pull/113065
3. https://github.com/kubernetes/kubernetes/pull/113093

Signed-off-by: David Porter <david@porter.me>
2023-03-03 10:00:48 -06:00
David Porter
e9ecdf3534 test: Emit ginkgo log for each node e2e
When running multiple node e2e with multiple machine images, the tests
are run separately for each node. The final build log has all of the
results for each of the hosts combined together which make debugging the
log difficult. To make it easier, emit a log for each host that was run.
This log will be written to the results directory and uploaded as an
artifact in prow jobs.

Signed-off-by: David Porter <david@porter.me>
2023-02-28 00:21:34 -08:00
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
Aditi Sharma
d83c37c311 Update CNI version to 1.2.0
Signed-off-by: Aditi Sharma <adi.sky17@gmail.com>
2023-01-18 13:24:40 +05:30
Kubernetes Prow Robot
6f579d3ceb Merge pull request #111616 from ndixita/credential-api-ga
Move the Kubelet Credential Provider feature to GA and Update the Credential Provider API to GA
2022-10-15 07:53:09 -07:00
Dixita Narang
1ac4fc779b Update kubelet credential provider tests to use new v1 APIs 2022-09-30 20:51:39 +00:00
Patrick Ohly
41619ace15 stop using deprecated klog flags
Some scripts and tools still relied on the deprecated flags, the ones
which are about to be removed.

This is intentionally not a complete removal of all those flags in the entire
repo. This would lead to much more code churn also in places where commands
still accept the flags because they use klog directly.
2022-09-04 21:02:43 +02:00
Davanum Srinivas
50bea1dad8 Move from k8s.gcr.io to registry.k8s.io
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-05-31 10:16:53 -04:00
Andrew Sy Kim
ef3c4fb3cd test/e2e_node: update credential provider config to use v1beta1 kubelet
APIs

Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2022-03-24 23:28:37 -04:00
Aditi Sharma
51cd36cf80 prepend credential provider flags on ubuntu also 2022-03-24 14:08:41 +05:30
Andrew Sy Kim
a4b79590eb move cluster/gce/gci/credential-provider to test/e2e_node/plugins/gcp-credential-provider
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2022-03-23 10:30:02 -04:00
Andrew Sy Kim
ddeb1e1352 cluster/gce/gci/credential-provider: add barebones GCP credential provider for testing only
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
Co-authored-by: Aditi Sharma <adi.sky17@gmail.com>
2022-03-23 10:30:01 -04:00
Andrew Sy Kim
f440a69c70 test/e2e_node: install and configure kubelet credential provider
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
Co-authored-by: Aditi Sharma <adi.sky17@gmail.com>
2022-03-23 10:30:01 -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
shuheiktgw
79484ed7b6 Check key existence in the getPrivateSSHKey function 2021-11-27 15:00:24 +09:00
shuheiktgw
db4a743b77 Check the private SSH key existence in the node e2e tests 2021-11-23 17:20:42 +09:00
Danielle Lancashire
4097a3d472 e2e_node: allow customizing the base kubeletconfig
This commit forces Kubelet Configuration files to always be generated
and when possible will use the kubeletconfig file that has been provided
by the test orchestrator
2021-11-02 15:09:56 +01:00
Danielle Lancashire
f1deb0ba2e e2e_node: remote: add kubeletconfig to archive
This commit enables the remote runner to provide a KubeletConfiguration
file to the test suite when uploading it to a remote host, thet test
runner will then use this configuration to run the Kubelet with the
provided config.
2021-11-02 15:08:39 +01:00
Danielle Lancashire
7dbbfe38e1 e2e_node: remote runner: junitFilePrefix -> junitFileName 2021-11-02 15:08:39 +01:00
Namanl2001
85d16760f0 adding defaultGceKey in remote/ssh.go
Signed-off-by: Namanl2001 <namanlakhwani@gmail.com>
2021-10-19 00:07:36 +05:30
Lennart Jern
507710b50f Update CNI plugins v0.9.1
ref: https://github.com/containernetworking/plugins/releases/tag/v0.9.1
Signed-off-by: Lennart Jern <lennart.jern@est.tech>
2021-05-26 11:02:04 +03:00
Artyom Lukianov
93ff47b05b e2e node: make possible to add additional kernel arguments
Add an option to configure additional kernel arguments during
the setup of e2e node environment.

The example:
cos-stable1:
image_family: cos-89-lts # docker v19.03.6, deprecated after 2021-06-24
project: cos-cloud
metadata: "user-data<test/e2e_node/jenkins/cos-init-live-restore.yaml,gci-update-strategy=update_disabled"
kernel_arguments:
- "numa=fake=2"
machine: n1-standard-4

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-05-11 13:49:32 +03:00
Amim Knabben
0341e4c2f3 Enabling runtime config on E2E node tests 2021-03-08 15:45:06 -05:00
Benjamin Elder
56e092e382 hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
Harshal Patil
b76abcd243 Remove the typo in the logs while configuring firewall for node e2e
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2020-11-18 14:20:59 +05:30