Commit Graph

72 Commits

Author SHA1 Message Date
Jonathan Lebon
3ebd93cd02 test-e2e-node: support pure SSH mode
Right now, `run_remote.go` only supports GCE instances. But actually
running the tests is completely independent of GCE and could work just
as well on any SSH-accessible machine.

This patch adds a new `--mode` switch, which defaults to `gce` for
backwards compatibility, but can be set to `ssh`. In that mode, the GCE
API is not used at all, and we simply connect to the hosts given via
`--hosts`.

This is still better than `run_local.go` because the latter mixes build
environment with test environment, which doesn't fit well with
container-optimized operating systems.

This is part of an effort to setup the e2e node tests on Fedora CoreOS
(see https://github.com/coreos/fedora-coreos-tracker/issues/990).

Patch best viewed with whitespace ignored.
2021-11-22 10:13:15 -05:00
Jonathan Lebon
591f4cdb77 run_remote.go: factor out prepareGceImages()
Mostly a pure code move. Only changed the `klog.Fatalf` to `fmt.Errorf`.
Prep for future patch.
2021-11-22 10:12:29 -05:00
Jonathan Lebon
032dbd2063 run_remote.go: move registerGceHostIP() call to testImage()
I.e. don't assume that `testHost` is called on a GCE host. Prep for
future patch.
2021-11-22 10:12:28 -05:00
Jonathan Lebon
36233b985b run_remote.go: factor out registerGceHostIP()
Prep for future patch.
2021-11-22 10:12:28 -05: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
Jordan Liggitt
322bc82777 Fix buffered signal channel go vet error 2021-08-20 16:47:56 -04:00
Kubernetes Prow Robot
fa152d25d8 Merge pull request #102209 from odinuge/node-e2e-fix
Ignore first SIGINT in node-e2e tests
2021-06-15 11:31:23 -07:00
Ed Bartosh
89284a1ba7 run_remote: improve error reporting
Included more info to the error message.
2021-06-10 14:34:05 +03:00
Odin Ugedal
c0c9f1f318 Ignore first SIGINT in node-e2e tests
Node e2e tests exceeding the global timeout are sent SIGINT, resulting
in no artifacts or console output. This will ignore the first SIGINT,
and since all children processes are being stopped due to SIGINT, we can
clean up before exiting.
2021-06-09 10:12:05 +02: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
Harshal Patil
2ad5f014a1 Add a check for crio service before starting node e2e tests
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2020-09-18 18:09:54 +05:30
Sergey Kanzhelev
2baed83b5c remove stale TODO after this PR: #92204 2020-06-18 22:55:21 +00:00
Davanum Srinivas
01183e51f0 Check for either Docker or Containerd getting active for e2e_node tests
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-06-16 20:08:01 -04:00
Roy Yang
d79f0c6b39 Simplify the logic by removing dead code and enhance logging
Signed-off-by: Roy Yang <royyang@google.com>
2020-06-01 23:43:04 -07:00
Kubernetes Prow Robot
5592b5d67a Merge pull request #91470 from MHBauer/fail-0-remote-images
explicitly fail if no images are found when running remote tests
2020-06-01 20:58:14 -07:00
Kubernetes Prow Robot
30eeacbf22 Merge pull request #91384 from alejandrox1/alejandrox1-patch-1
Added cadvisor test suite to flag info message
2020-05-26 16:48:56 -07:00
Morgan Bauer
58924c2de5 explicitly fail if no images are found when running remote tests
The previous implementation succeeds if no images are run. This causes
silent failures when image matchers are provided that do not match any image.
2020-05-26 14:08:27 -07:00
Jorge Alarcon Ochoa
a069eec2bb Added cadvisor test suite to flag info message
The cadvisor test suite is not mentioned in the remote runner's
`--test-suite` flag.
This PR will mention the existence of the cadvisor test suite.
2020-05-23 19:10:32 -04:00
Davanum Srinivas
442a69c3bd switch over k/k to use klog v2
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:27 -04:00
Odin Ugedal
c04ead5fb1 Add error check for instance insert
Not all errors will happen in sync during Instances.Insert(...).Do(), so
it is important to verify the operation object to see why insert fails.
An example is when exceeding the resource quota.

Eg.
could not create instance test-cos-beta-80-12739-29-0: [&{Code:QUOTA_EXCEEDED Location: Message:Quota 'CPUS' exceeded.  Limit: 24.0 in region europe-west6. ForceSendFields:[] NullFields:[]}

This fixes the issue where tests will fail "silently" when instance
insert fails.
2020-01-09 09:49:38 +01:00
tanjunchen
29eb15c3a8 fix golint check in test/e2e_node/runner/remote 2019-12-04 18:14:52 +08:00
SataQiu
69aae3aa5a fix golint failures of test/e2e_node/remote 2019-11-29 18:11:55 +08:00
Mike Danese
a4ca9e6c93 migrate callers to g/g/uuid 2019-11-04 23:15:29 -08:00
Kubernetes Prow Robot
946df1a914 Merge pull request #81932 from palnabarun/fix-staticcheck-tests-e2e_node
Fixes static check failures in test/e2e_node/*
2019-09-20 22:55:37 -07:00
Nabarun Pal
83c443e728 Fixes static check failures in test/e2e_node/* 2019-09-14 00:39:45 +05:30
Odin Ugedal
e20c2b1f32 Add support for preemptible instances in node-e2e
Preemptible instances are cheaper, and the small chanse of a vm being
killed doesn't matter when running during development. This is a
tradeoff the user should be able to decide on.

More info here:
https://cloud.google.com/compute/docs/instances/preemptible

The default setting is false, so unless setting
PREEMPTIBLE_INSTANCES=true, everything will behave as before.

Signed-off-by: Odin Ugedal <odin@ugedal.com>
2019-08-17 13:09:45 +02:00
Kubernetes Prow Robot
d1d6f64cda Merge pull request #78198 from Random-Liu/node-e2e-service-account
Use default service account when creating test instance.
2019-05-22 20:06:23 -07:00
Lantao Liu
6bcad9cf71 Support image family in node e2e image config file.
Signed-off-by: Lantao Liu <lantaol@google.com>
2019-05-21 21:32:48 -07:00
Lantao Liu
cd33337ad9 Use default service account when creating test instance.
Signed-off-by: Lantao Liu <lantaol@google.com>
2019-05-21 21:09:04 -07:00
Zhen Wang
6df207bdaa allows configuring NPD image version in node e2e test and fix the test 2019-02-26 21:29:50 -08:00
Dmitry Rozhkov
43fce8d6e4 e2e-node-tests: fix path to system specs
e2e-node tests may use custom system specs for validating nodes to
conform the specs. The functionality is switched on when the tests
are run with this command:

    make SYSTEM_SPEC_NAME=gke test-e2e-node

Currently the command fails with the error:

    F1228 16:12:41.568836   34514 e2e_node_suite_test.go:106] Failed to load system spec: open /home/rojkov/go/src/k8s.io/kubernetes/k8s.io/kubernetes/cmd/kubeadm/app/util/system/specs/gke.yaml: no such file or directory

Move the spec file under `test/e2e_node/system/specs` and introduce a single
public constant referring the file to use instead of multiple private constants.
2019-01-10 10:37:55 +02:00
Davanum Srinivas
954996e231 Move from glog to klog
- Move from the old github.com/golang/glog to k8s.io/klog
- klog as explicit InitFlags() so we add them as necessary
- we update the other repositories that we vendor that made a similar
change from glog to klog
  * github.com/kubernetes/repo-infra
  * k8s.io/gengo/
  * k8s.io/kube-openapi/
  * github.com/google/cadvisor
- Entirely remove all references to glog
- Fix some tests by explicit InitFlags in their init() methods

Change-Id: I92db545ff36fcec83afe98f550c9e630098b3135
2018-11-10 07:50:31 -05:00
Davanum Srinivas
43f523d405 Switch to sigs.k8s.io/yaml from ghodss/yaml
Change-Id: Ic72b5131bf441d159012d67a6a3d87088d0e6d31
2018-11-07 13:17:32 -05:00
Mikhail Mazurskiy
3a243090a5 Simplify random seed initialization
There is no need to set the time zone as the result does not
depend on it
2018-10-11 21:01:15 +11:00
Yuanbin.Chen
f2eee3fe2a Fix kubeadm checks import error
kubeadm checks package import path exist "kubernetes/test",
So change the import path.

  * move "k8s.io/kubernetes/test/e2e_node/system" directory file
    to "k8s.io/kubernetes/cmd/kubeadm/app/util/system"
  * change system package import path
  * remove "k8s.io/kubernetes/test/e2e_node/system" directory

Issues report link:
https://github.com/kubernetes/kubeadm/issues/976

Signed-off-by: Yuanbin.Chen <cybing4@gmail.com>
2018-07-13 14:27:46 +08:00
Christoph Blecker
710c8563b4 Fix go vet errors 2018-04-02 17:57:44 -07:00
Di Xu
48388fec7e fix all the typos across the project 2018-02-11 11:04:14 +08:00
David Ashpole
17e8d8c040 use node-e2e framework for testing cadvisor 2018-01-31 10:14:54 -08:00
foxyriver
7d71129ff0 delete archive 2017-10-20 11:40:52 +08:00
Kubernetes Submit Queue
0f5f82fa44 Merge pull request #53416 from krzyzacy/nodeconfig-path
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add a flag to customize config relative dir

So while migrating nodee2e configs to test-infra, I found out that I'd need to have a better support for [user-data](https://github.com/kubernetes/test-infra/blob/master/jobs/e2e_node/image-config.yaml#L11). However it's not wise to use an [absolute path](https://github.com/kubernetes/test-infra/blob/master/jobs/config.json#L9309), having the config dir to be configurable will be a better solution here, and as well for later on support run local node tests from test-infra.

Currently the job references to the image configs from test-infra, but read metadata from kubernetes, which is wrong :-\


/assign @yguo0905 @Random-Liu
2017-10-12 00:57:29 -07:00
Random-Liu
6d132e8e18 Add extra log and node env support.
Signed-off-by: Random-Liu <taotaotheripper@gmail.com>
2017-10-10 18:07:08 -07:00
Sen Lu
86936539b2 Add a flag to customize config relative dir 2017-10-03 20:20:46 -07:00
Sen Lu
afec30c720 Abort if not default nor conformance 2017-09-28 16:10:33 -07:00
Sen Lu
69df66c738 Let node test subcommand be an arg 2017-09-28 13:47:51 -07:00
Kubernetes Submit Queue
0867802bbc Merge pull request #50831 from Random-Liu/instance-metadata-from-flag
Automatic merge from submit-queue (batch tested with PRs 50693, 50831, 47506, 49119, 50871)

Add instance metadata from flag even when using image config.

Also add instance metadata from flag even when we are using image config.

* Sometimes we need to dynamically generate instance metadata, it's troublesome to put them into image config.
* Sometimes we want to apply instance metadata to all images, it's duplicated to add them to each image in the image config.

/assign @yguo0905 Could you help me review this?
2017-08-21 14:29:57 -07:00
Random-Liu
2c129e4d6a Add instance metadata from flag even when using image config. 2017-08-17 16:42:25 -07:00
Nick Sardo
a0e95f9475 Fix e2e_node for changes to /api/compute/v0.beta package 2017-08-17 10:29:58 -07:00