Commit Graph

16348 Commits

Author SHA1 Message Date
Claudiu Belu
b6b60f7fa5 test images: Temporarely exclude Windows test images
A previous PR (#76838) introduced the ability to build and publish
Windows Test Images to kubernetes/test/images/image-util.sh.

Additionally, that PR also configured the Image Promoter to use a
few Windows Remote Docker build nodes to build the Windows Test Images,
however, there is a minor issue: the build container has a different $HOME
folder than expected (is: /builder/home, expected: /root - since it's the
root user), and the Remote Docker credentials are mounted in /root.

Because of that, image-build.sh cannot find the credentials it needs.
This will have to be properly fixed, but for now, we can just skip
the Windows image building part.
2020-02-26 22:51:26 -08:00
Claudiu Belu
c57f20b712 tests: Replaces dnsutils image used with agnhost (part 4)
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:

- dnsutils

dnsmasq is a Linux specific binary. In order for the tests to also
pass on Windows, CoreDNS should be used instead.
2020-02-26 21:51:23 -08:00
Wei Huang
ef786c9fa2
Setting a Pod's nodeAffinity instead of setting .spec.nodeName directly 2020-02-26 19:06:05 -08:00
Wei Huang
517a41fe84
Fix an "index out of bound" issue in scheduler preemption e2e 2020-02-26 17:05:46 -08:00
Stephen Augustus
e64169d6b5 build: Enable kube-cross push/pull from K8s Infra GCR
- Search/replace Google Infra kube-cross locations for K8s Infra
- Update kube-cross make targets
  - Don't attempt to pre-pull image (docker build --pull)
    This prevents CI failures when the image under test doesn't exist
    yet in the registry.
  - 'make all' now builds and pushes the kube-cross image
  - Allow 'TAG' to be specified via env var
  - Use 'KUBE_CROSS_VERSION' to represent the kube-cross version
  - Tag kube-cross images with both a kubernetes version
    ('git describe') and a kube-cross version
- Add a GCB (Google Cloud Build) config file (cloudbuild.yaml)

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-02-26 16:51:01 -05:00
Kubernetes Prow Robot
1deac1e466
Merge pull request #88526 from alculquicondor/multiprofiles-test
Add unit and integration tests for running multiple scheduling profiles
2020-02-26 13:33:49 -08:00
Kubernetes Prow Robot
9821d0e47e
Merge pull request #88486 from Jefftree/schnake-pr
Adds custom reporter and logic to generate conformance docs and list of tests
2020-02-26 11:53:35 -08:00
Kubernetes Prow Robot
1f11cac310
Merge pull request #88315 from pohly/csi-patch-nodename
e2e: avoid setting NodeName for CSI driver deployments
2020-02-26 11:53:20 -08:00
Pulkit Goyal
10805e0452 [refactor] fold PreemptionExecutionPath into the existing top-level SIGDescribe 2020-02-26 23:17:56 +05:30
Kubernetes Prow Robot
d98975217a
Merge pull request #88525 from mborsz/bench3
Reorder conditions in FindMatchingVolume to avoid calling volumeutil.CheckNodeAffinity in trivial cases
2020-02-26 09:46:40 -08:00
Aldo Culquicondor
07c4982245 Add unit and integration tests for multiple profiles support
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-26 10:14:03 -05:00
Patrick Ohly
d71829a1fc e2e: avoid setting NodeName for CSI driver deployments
We don't want to set the name directly because then starting the pod
can fail when the node is temporarily out of resources
(https://github.com/kubernetes/kubernetes/issues/87855).

For CSI driver deployments, we have three options:
- modify the pod spec with custom code, similar
  to how the NodeSelection utility code does it
- add variants of SetNodeSelection and SetNodeAffinity which
  work with a pod spec instead of a pod
- change their parameter from pod to pod spec and then use
  them also when patching a pod spec

The last approach is used here because it seems more general. There
might be other cases in the future where there's only a pod spec that
needs to be modified.
2020-02-26 10:33:29 +01:00
Maciej Borsz
7d59ea8394 Reorder conditions in FindMatchingVolume to avoid checking NodeAffinity
in trivial cases.
2020-02-26 09:20:38 +01:00
Kubernetes Prow Robot
16a7650e2b
Merge pull request #86101 from PatrickLang/fix-cpumaximum
Fix cpu resource limit on Windows
2020-02-26 00:20:26 -08:00
Kubernetes Prow Robot
b6b494b448
Merge pull request #88552 from Huang-Wei/sched-e2e-flake-part1
Fix a scheduler e2e bug on PodTopologySpread scoring
2020-02-25 21:02:54 -08:00
Kubernetes Prow Robot
fd5f5cc285
Merge pull request #88471 from claudiubelu/tests/fix-hybrid-network
tests: Fixes Hybrid cluster network test
2020-02-25 18:32:50 -08:00
Kubernetes Prow Robot
86c8a23052
Merge pull request #88009 from davidz627/fix/pdVer
Update version of gcp-compute-persistent-disk-csi-driver used in in-tree tests
2020-02-25 18:32:26 -08:00
Kubernetes Prow Robot
f7c37d387d
Merge pull request #88285 from alculquicondor/multiprofiles-runtime
Add support for multiple scheduling profiles
2020-02-25 16:48:26 -08:00
Wei Huang
5da37d5b5e
Fix a scheduler e2e bug on PodTopologySpread scoring 2020-02-25 15:34:11 -08:00
David Zhu
c6c0bb254a Update version of GCE PD CSI Driver deployed in tests 2020-02-25 13:25:05 -08:00
Kubernetes Prow Robot
b5e95fc73d
Merge pull request #88409 from aojea/affinity
deflake e2e session affinity tests
2020-02-25 11:59:04 -08:00
Patrick Lang
33ef66b927 Updating OWNERS for Windows+Azure tests 2020-02-25 19:56:03 +00:00
Claudiu Belu
8cb84feef3 test images: Updates agnhost guestbook
A previous PR replaced the usage of Redis in the guestbook app test
with Agnhost. The replacement went well for Linux setups and Containers,
which is why the tests are green, but there is a network particularity on
Windows setups which won't allow the test to pass.

The issue was observed with another test hitting the same issue:
https://github.com/kubernetes/kubernetes/issues/83072

Here's exactly what happens during the test:

- frontend containers are created, having the /guestbook endpoint. Its main
  purpose is to forward the call to either agnhost-master (cmd=set), or
  agnhost-slave (cmd=get).
- agnhost-master container is created, having the /set endpoint, and the
  /register endpoint, through which the agnhost-slave containers would
  register to it. Its purpose is to propagate all data received through /set
  to its clients.
- agnhost-slave containers are created, having the /set and /get endpoints.
  They would register to agnhost-master, and then receive any and all updates
  from it, which was then served through the /get endpoint.

For simplicity, all 3 types have the same agnhost subcommand (agnhost guestbook), being
able to satisfy its given purpose. For this, HTTP servers were being used, including
for the /register endpoints. agnhost-master would send its /set updates as /set HTTP
requests. However, because of the issue listed above, agnhost-master did not receive
the client's IP, but rather the container host's IP, resulting in the request being
sent to the wrong destination.

This PR updates the agnhost guestbook subcommand. Now, the agnhost subscriber nodes will
send their own IP to the /register endpoint (/endpoint?host=myip).
2020-02-25 09:45:43 -08:00
Aldo Culquicondor
c048858471 Support multiple scheduling profiles in a single scheduler
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-25 11:31:20 -05:00
Kubernetes Prow Robot
fe9073b8c1
Merge pull request #88318 from mborsz/bench
Add BenchmarkSchedulingWaitForFirstConsumerPVs benchmark
2020-02-25 07:52:49 -08:00
Maciej Borsz
bd8ed0a2a7 Add BenchmarkSchedulingWaitForFirstConsumerPVs benchmark 2020-02-25 14:41:14 +01:00
Fabio Bertinatto
34206a610a Don't rely on contents of optional Condition fields in CSI mock test
In order to promote the volume limits e2e test (from CSI Mock driver)
to Conformance, we can't rely on specific output of optional Condition
fields. Thus, this commit changes the test to only check the presence
of the right condition and verify that the optional fields are not empty.
2020-02-25 13:08:57 +01:00
Kubernetes Prow Robot
6b6336e5c0
Merge pull request #88227 from tanjunchen/remove-todo-and-move-code
remove unused and repeat code and remove TODO
2020-02-25 00:52:48 -08:00
Kubernetes Prow Robot
74c0fca37e
Merge pull request #88314 from bertinatto/remove-node-labels-csimock
Avoid adding labels to nodes in CSI mock driver
2020-02-24 19:07:15 -08:00
Ernest Wong
45d69b3a5a
test: don't use hardcoded pod count for memory limit test 2020-02-24 14:34:51 -08:00
John Schnake
2683b1065c Update the conformance list and doc generation logic
The existing walk.go and conformance.txt have a few shortcomings
which we'd like to resolve:
 - difficult to get the full test name due to test context nesting
 - complicated AST logic and understanding necessary due to the
different ways a test can be invoked and written

This changes the AST parsing logic to be much more simple and simply
looks for the comments at/around a specific line. This file/line
information (and the full test name) is gathered by a custom ginkgo
reporter which dumps the SpecSummary data to a file.

Also, the SpecSummary dump can, itself, be potentially useful for
other post-processing and debugging tasks.

Signed-off-by: John Schnake <jschnake@vmware.com>
2020-02-24 14:00:44 -08:00
Kubernetes Prow Robot
607ed67754
Merge pull request #88415 from ingvagabund/readme-for-metrics-based-scheduler-perf-tests
scheduler_perf: describe how to run BenchmarkPerfScheduling manually
2020-02-24 13:11:47 -08:00
Kubernetes Prow Robot
624da8b9a3
Merge pull request #88110 from fromanirh/refactor-get-current-kubelet-conf
e2e: e2e_node: refactor getCurrentKubeletConfig
2020-02-24 13:11:36 -08:00
Patrick Lang
886214f48c Fix recent context change after rebase 2020-02-24 19:53:25 +00:00
Patrick Lang
63ff616aa8 Adding Windows CPU limit tests 2020-02-24 19:46:39 +00:00
Jan Chaloupka
0f3e0b40f6 scheduler_perf: describe how to run BenchmarkPerfScheduling manually 2020-02-24 19:12:00 +01:00
Antonio Ojea
64c4876ccd
Add e2e session affinity timeout test
The service session affinity allows to set the maximum session
sticky timeout.
This commit adds e2e tests to check that the session is sticky
before the timeout and is not after.
2020-02-24 09:48:18 +01:00
Antonio Ojea
e268f033b6
Revert "Mark session affinity tests as [Flaky]"
This reverts commit f00ac0694b.
2020-02-24 09:48:18 +01:00
Antonio Ojea
457c05feb8
deflake e2e session affinity tests
Executing commands in pods is expensive in terms of time and the
execution time is unpredictable and random.
The session affinity tests send several http requests from a pod
to check that the session is sticky. Instead of executing one
http request at a time, we can execute several requests from the
pod at one time and process the output.
2020-02-24 09:48:18 +01:00
Claudiu Belu
fdec0ee121 tests: Create pod for Windows test
A previous commit (#88471) changed the createTestPod function, but didn't update
the service.go consumer, leading to a pod not being created.
2020-02-23 02:09:14 -08:00
Kubernetes Prow Robot
9a8e869590
Merge pull request #88417 from aramase/conformance-nodeport
check ip family for node port connectivity test
2020-02-21 22:30:56 -08:00
Kubernetes Prow Robot
8ac7a5bdc1
Merge pull request #88374 from tanjunchen/remove-TODO-simplify-code
test/e2e/framework/node/:remove TODO and and make some functions private
2020-02-21 18:32:13 -08:00
Kubernetes Prow Robot
26f8535838
Merge pull request #88354 from jiahuif/nodee2e-stack-protector-flags
node-e2e testing: fix alias for stack protector kernel config.
2020-02-21 18:31:51 -08:00
Kubernetes Prow Robot
23045f9247
Merge pull request #88057 from julianvmodesto/remove-deprecated-rolling-update
Remove deprecated rolling-update command
2020-02-21 18:31:30 -08:00
Kubernetes Prow Robot
c69c91987b
Merge pull request #87811 from mborsz/pv
Remove unnecessary calls to GCE API after PD is created
2020-02-21 18:31:01 -08:00
Kubernetes Prow Robot
2e0760c659
Merge pull request #87611 from claudiubelu/test-images/updates-readme
test images: Adds Image Promoter details in the README
2020-02-21 18:30:48 -08:00
Kubernetes Prow Robot
3631887a28
Merge pull request #87215 from egernst/e2e-scheduler
E2e scheduler: introduce e2e test for PodOverhead
2020-02-21 15:44:47 -08:00
Anish Ramasekar
c811fc58ef
check ip family for node port connectivity test 2020-02-21 14:43:06 -08:00
Jiahui Feng
68b7564e7e fix alias for stack protector kernel config.
- fix YAML syntax
- alias -> aliases
- no need for CONFIG prefix
- add renamed config since 4.18
2020-02-21 11:04:48 -08:00
Eric Ernst
1d896db61c e2e-scheduling: add basic PodOverhead test
Add a test to verify that Overhead is being considered during
predication.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2020-02-21 08:42:41 -08:00
Fabio Bertinatto
cd5cf567d8 Avoid adding labels to nodes in CSI mock driver
It's unnecessary to add labels to nodes because we're already
using NodeSelection to schedule pods on specific nodes.
2020-02-21 14:33:56 +01:00
Claudiu Belu
bb0a5ab016 tests: Fixes Hybrid cluster network test
Previously, we've centralized several images into agnhost, including
test-webserver.

The Hybrid cluster network test was using the test-webserver image, and
was updated to use agnhost, but without properly making it so it behaves like
test-webserver, resulting in a failing test.
2020-02-21 04:37:45 -08:00
tanjunchen
7c3f6fa323 test/e2e/framework/node/:remove TODO and make some functions private 2020-02-21 18:45:09 +08:00
Claudiu Belu
91dc590cde test images: Adds building README
Adds a README explaining the image building process, including the
Windows Container image building process.
2020-02-21 02:11:26 -08:00
Claudiu Belu
b71fbdb364 Image Promoter: Adds Windows build nodes for Windows test images
We have added and enabled the Image Promoter on the k/k test images, which
will build the conformance images after a PR that affects kubernetes/test/images
merges.

We have added support for image-util.sh to handle external Windows Docker connections
in order to build Windows images.

This PR enables the Image Promoter to use some Windows nodes to build the necessary
Windows images.
2020-02-21 02:09:49 -08:00
Claudiu Belu
fe15a46939 test images: Use multiple Windows nodes to build images
In order to build Windows container images for multiple OS versions,
--isolation=hyperv is required. However, not all clouds / nodes supports
or have it enabled by default, which is why we're going to rely on
having multiple nodes to build the Windows images, until this issue
is addressed.
2020-02-21 02:09:49 -08:00
Claudiu Belu
3cdb7a89cb test images: Adds multiple Windows channels support
This commit adds support for building test images for multiple
Windows versions, as we have to support both LTS and SAC channels.

With this, the format for Windows images in the BASEIMAGE files is:

OS/ARCH/OS_VERSION

Also adds --isolation-hyperv to the Windows docker build command, making sure
that container images for multiple OS versions can be built using the same
Windows node.
2020-02-21 02:09:49 -08:00
Claudiu Belu
296464d968 test images: Adds Windows support (part 1)
Adds Windows support to the test/images/image-util.sh script.

A Windows node with Docker installed is required to build Windows images.
The connection URL to it must be set in the REMOTE_DOCKER_URL env variable.
Additionally, the authentication to the remote docker node is done through
certificates, which must be found in ~/.docker.

By default, the REMOTE_DOCKER_URL env variable is set to "" in the Makefile,
and because of it, the image-util.sh script will skip building and pushing
Windows images.

Added GOOS argument to the go build process in order to be able to build
Windows binaries. Additionally, the OS env variable was added to the images
Makefiles (default value is "linux") in order to maintain default behaviour.

Some images require a different Dockerfile for Windows images, since they
have different ways of installing dependencies. Because of this, if a image
needs to be built for Windows, it will first check for a Dockerfile_windows
file instead of the default one. If there isn't one, it means that the
same Dockerfile can be used for both Windows and Linux.

All Windows images will be based on the image
"mcr.microsoft.com/windows/servercore:ltsc2019". There are a couple of features
that are needed from this image, especially powershell.

Added busybox image for Windows. Most Windows images will be based on it, which
will help reduce the command line differences between Linux and Windows, but
not entirely.

Added Windows support for agnhost image.
2020-02-21 02:09:49 -08:00
Claudiu Belu
a4ceb143dd images: Changes the image naming template
Changes the image naming template from:

$REGISTRY/$image-$arch:$TAG

to

$REGISTRY/$image:$TAG-$os_name-$arch

The previous naming template would generate a plethora of images (Ai * N images,
where Ai is the number of OS/architectures for the image i and N is the number
of images), while the new naming template will reduce the number of images to N.

The new template also includes the OS name, as we plan to integrate Windows
images into the manifest lists as well.
2020-02-21 02:09:49 -08:00
Claudiu Belu
25b7a13864 images: Configurable BASEIMAGE hierarchy
When building images, their REGISTRY can be set to a custom
one, instead of the default "gcr.io/kubernetes-e2e-test-images" or
"us.gcr.io/k8s-artifacts-prod/e2e-test-images".
Some images are based on other images we're already building
(e.g.: kitten, nautilus), but their base images
are set in the default registry name, which can be undesirable.

This commit addresses this issue.
2020-02-21 02:09:49 -08:00
Claudiu Belu
efcdb929de images: Adds linux/ prefix to BASEIMAGE entries
Windows images will require other base images, and thus, we will need
to explicitly specify the OS type a base image is for in order to
avoid confusion or errors.
2020-02-21 02:09:49 -08:00
Claudiu Belu
22a5fbcfa9 test images: Bumps image versions
The way the images are built is going to be changed, and in order to avoid
overwritting and breaking the current images, the image versions are bumped.
2020-02-21 02:09:49 -08:00
Kubernetes Prow Robot
d675e55915
Merge pull request #88299 from kolyshkin/e2e-framework-log
e2e/test/framework: optimize PrunedStack()
2020-02-20 21:20:46 -08:00
Kubernetes Prow Robot
468af72a15
Merge pull request #88301 from abhiraut/e2e-except
Add e2e test to test Except clause in NetworkPolicy
2020-02-20 16:30:41 -08:00
Kubernetes Prow Robot
1591590030
Merge pull request #88292 from julianvmodesto/add-dry-run
Add --dry-run=server|client|none to more kubectl commands
2020-02-20 16:30:25 -08:00
Kubernetes Prow Robot
57764e34d4
Merge pull request #87921 from Deepthidharwar/cpu-mgr-e2etest-NUMA-nodes
e2e test CPU-Manager: Extend CPUManager e2e tests to run on MultiNUMA node with/without HT
2020-02-20 16:29:57 -08:00
Eric Ernst
e5760015d2 e2e-framework-node: add runtimeclass to dedup code
Similar functionality is required across e2e tests for RuntimeClass.
Let's create runtimeclass as part of the framework/node package.

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2020-02-20 15:58:52 -08:00
Kir Kolyshkin
78e98da1db test/e2e/framework/log: optimize PrunedStack()
Use bytes instead of strings, and slice in-place filter
(see https://github.com/golang/go/wiki/SliceTricks#filter-in-place)
to avoid copying strings around.

In my benchmark it shows almost 2x improvement:

BenchmarkString-8    	 1477207	     10198 ns/op
BenchmarkBuffer-8    	 1561291	      7622 ns/op
BenchmarkInPlace-8   	 2295714	      5202 ns/op

String is the original implementation, Buffer is an intermediary
one that uses strings.Builder, and InPlace is the one from this commit.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-02-20 12:58:26 -08:00
Abhishek Raut
a980a1fa24 Add e2e test to test Except clause in NetworkPolicy
Add a new e2e test to test the Except clauses in IPBlock CIDR
based NetworkPolicies. This test adds an egress rule which
allows client to connect to a CIDR which includes the
ServerPod's IP, however carves an except subnet which excludes
this ServerPod.
2020-02-20 11:32:00 -08:00
Kubernetes Prow Robot
3ae1b0ce80
Merge pull request #88234 from fromanirh/topomgr-e2e-tests-multicnt
e2e topology manager: single-numa-node multi container tests
2020-02-20 10:35:56 -08:00
Francesco Romani
64904d0ab8 e2e: topomgr: extend tests to all the policies
Per https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/0035-20190130-topology-manager.md#multi-numa-systems-tests
we validate only the results for single-numa node policy,
because the is no a simple and reliable way to validate
the allocation performed by the other policies.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-20 18:22:34 +01:00
Kubernetes Prow Robot
51e8cafd70
Merge pull request #88353 from roycaihw/deflake/run-crd-test
run_crd_tests: wait for pruned CR to be invisible from API
2020-02-20 03:07:14 -08:00
Francesco Romani
a249b93687 e2e: topomgr: address reviewer comments
Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-20 10:31:09 +01:00
Kubernetes Prow Robot
937008e3ac
Merge pull request #81226 from claudiubelu/tests/reduce-to-agnhost-part-4
tests: Replaces images used with agnhost (part 4)
2020-02-20 01:13:03 -08:00
Haowei Cai
aecce98a54 wait for pruned CR to be invisible from API 2020-02-19 17:41:13 -08:00
Kubernetes Prow Robot
96dfa3f605
Merge pull request #88341 from tnqn/flaky-networkpolicy-e2e
NetworkPolicy e2e test should wait for Pod ready
2020-02-19 16:12:11 -08:00
Kubernetes Prow Robot
992aa00a46
Merge pull request #85819 from nan-yu/pdb_e2etest
Add more tests for the pod disruption budget endpoints
2020-02-19 16:11:04 -08:00
Julian V. Modesto
a9ec444d74 Add --dry-run to more kubectl commands.
- delete
- taint
- replace
2020-02-19 17:53:21 -05:00
Kubernetes Prow Robot
d4c5637680
Merge pull request #88200 from liu-cong/benchmark
Make MetricCollector configurable for scheduler benchmark tests
2020-02-19 09:38:26 -08:00
Quan Tian
92759ea642 NetworkPolicy e2e test should wait for Pod ready
The test "should enforce egress policy allowing traffic to a server in a
different namespace based on PodSelector and NamespaceSelector
[Feature:NetworkPolicy]" is flaky because it doesn't wait for the server
Pod to be ready before testing traffic via its service, then even the
NetworkPolicy allows it, the SYN packets will be rejected by iptables
because the service has no endpoints at that moment.

This PR fixes it by making it wait for Pods to be ready like other
tests.
2020-02-20 00:32:12 +08:00
Francesco Romani
833519f80b e2e: topomgr: properly clean up after completion
Due to an oversight, the e2e topology manager tests
were leaking a configmap and a serviceaccount.
This patch ensures a proper cleanup

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-19 17:15:42 +01:00
Francesco Romani
7c12251c7a e2e: topomgr: add multi-container tests
Add tests to check alignment of pods which contains more than one
container.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-19 17:15:42 +01:00
Francesco Romani
8e9d76f1b9 e2e: topomgr: validate all containers in pod
Up until now, the test validated the alignment of resources
only in the first container in a pod. That was just an overlook.
With this patch, we validate all the containers in a given pod.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-19 17:15:42 +01:00
Francesco Romani
ddc18eae67 e2e: topomgr: autodetect NUMA position of VF devs
Add autodetection code to figure out on which NUMA node are
the devices attached to.
This autodetection work under the assumption all the VFs in
the system must be used for the tests.
Should not this be the case, or in general to handle non-trivial
configurations, we keep the annotations mechanism added to the
SRIOV device plugin config map.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-19 17:15:42 +01:00
Francesco Romani
0c2827cb50 e2e: topomgr: remove single-numa node hack
On single-NUMA node systems the numa_node of sriov devices was
sometimes reported as "-1" instead of, say, 0. This makes some
tests that should succeed[0] fail unexpectedly.

The reporting works as expected on real multi-NUMA node systems.

This small workaround was added to handle this corner case,
but it makes overall the code less readable and a bit too lenient,
hence we remove it.

+++

[0] on a single NUMA node system some resources are obviously
always aligned if the pod can be admitted. It boils down to the
node capacity at pod admittal time.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-19 17:15:41 +01:00
Francesco Romani
bb6beb99e5 e2e: topomgr: early check to detect VFs, not PFs
The e2e_node topology_manager check have a early, quick check
to rule out systems without sriov device, thus skipping the tests.

The first version of the ckeck detected PFs, (Physical Functions),
under the assumption that VFs (Virtual Functions) were already been
created. This works because, obviously, you can't have VFs without PFs.

However, it's a little safer and easier to understand if we check
firectly for VFs, bailing out from systems which don't provide them.

Nothing changes for properly configured test systems.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-19 17:15:41 +01:00
Kubernetes Prow Robot
507a2decf9
Merge pull request #88228 from pohly/node-podlog
podlogs: include node name in prefix
2020-02-19 03:28:25 -08:00
Patrick Ohly
0ec85320cf podlogs: include node name in prefix
This is useful for logs from daemonset pods because for those it is
often relevant which node they ran on because they interact with
resources or other pods on the host.

To keep the log prefix short, it gets limited to a maximum length of
10 characters.
2020-02-19 10:10:23 +01:00
Kubernetes Prow Robot
5cf65077ad
Merge pull request #88016 from jsafrane/wait-for-pod-deletion
Delete pod in volume tests
2020-02-18 22:40:38 -08:00
Kubernetes Prow Robot
3a828af963
Merge pull request #88247 from kolyshkin/e2e-node-selinux-fix
test/e2e/node: fix selinux test failure
2020-02-18 20:58:51 -08:00
Kubernetes Prow Robot
cc36dda7e7
Merge pull request #88288 from sbezverk/endpointslice_v1beta1
Switch EndpointSlice e2e test to use discovery v1beta1 api
2020-02-18 19:10:35 -08:00
Claudiu Belu
f7942290af tests: Replaces images used with agnhost (part 4)
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:

- resource-consumer-controller
- test-webserver
2020-02-18 16:29:49 -08:00
Kubernetes Prow Robot
5ab1f3464c
Merge pull request #88126 from johnbelamaric/behaviors-readme
Add a README describing behaviors
2020-02-18 14:04:41 -08:00
Kubernetes Prow Robot
1b2a81e6ad
Merge pull request #87578 from Jefftree/bdd-tooling
Add tooling around validation for Behavior Driven Conformance
2020-02-18 14:04:25 -08:00
Cong Liu
7f56c753b3 Make MetricCollector configurable for scheduler benchmark tests 2020-02-18 14:02:57 -08:00
Serguei Bezverkhi
5b7ae34ead Switch EndpointSlice to use discovery v1beta1 api
Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>
2020-02-18 16:52:21 -05:00
Nan Yu
b757ca16e2 Add more E2E tests for the ../poddisruptionbudgets endpoint 2020-02-18 11:19:30 -08:00
John Belamaric
ca399e6315 Add a README describing behaviors 2020-02-18 09:23:46 -08:00
Kir Kolyshkin
70a2857998 test/e2e/node: fix selinux test failure
Commit 69a473be3 broke the test case (that was checking
that a file from a volume can't be read) by adding a
(wrong) assumption that error should be nil.

Fix the assumption (we do expect the error here).
Note that we were checking file contents before; now when
we check the error from read, checking the contents is
redundant.

The other issue with the test is SELinux should be in enforcing
mode for this to work, so let's check that first to avoid
false positives.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-02-17 09:46:59 -08:00
tanjunchen
119f4df9c5 test/e2e/framework:remove unused code and move const 2020-02-17 23:31:50 +08:00
tanjunchen
9c8d4bedcc test/e2e/framework:remove TODO and make func private 2020-02-17 22:17:54 +08:00
Kubernetes Prow Robot
48def7e7c3
Merge pull request #88105 from Huang-Wei/pts-e2e
Graduate PodTopologySpread to Beta
2020-02-16 18:59:28 -08:00
Kubernetes Prow Robot
3d09d25292
Merge pull request #87992 from marosset/windows-kubelet-stats-test-serial
Run Windows kubelet stats e2e tests serially to reduce test flakes
2020-02-16 10:39:27 -08:00
Francesco Romani
53cda47913 update bazel configuration
Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-16 10:07:12 +01:00
Kubernetes Prow Robot
3b22fcc7bd
Merge pull request #88189 from skilxn-go/RemovePreScoreNodeListArguments
[Scheduler Framework]Remove `FilteredNodesStatuses` argument from `PreScore`'s interface
2020-02-15 13:29:28 -08:00
Kubernetes Prow Robot
1c60045db0
Merge pull request #88173 from BenTheElder/gives-a-whole-new-pause
upgrade pause everywhere
2020-02-15 02:11:27 -08:00
skilxn-go
8fd0d8028f Remove FilteredNodesStatuses argument from PreScore interface 2020-02-15 13:53:04 +08:00
Julian V. Modesto
d97169f59a Clean up --dry-run values.
- Clean up --dry-run values in tests, docs, and scripts
- Fix --dry-run for auth reconcile and add a test
2020-02-15 00:43:30 -05:00
Wei Huang
c93dffdfc4
E2E tests for PodTopologySpread 2020-02-14 16:48:35 -08:00
Benjamin Elder
3fb7183215 bump pause to 3.2 in test/ 2020-02-14 14:03:19 -08:00
Kubernetes Prow Robot
d462f80d1b
Merge pull request #88065 from tanjunchen/remove-TODO20200212
test/e2e/framework/:remove TODO and use framework.SingleCallTimeout
2020-02-14 13:11:42 -08:00
Kubernetes Prow Robot
4a45ae3236
Merge pull request #87645 from fromanirh/topomgr-e2e-tests
e2e-topology-manager: single-NUMA-node test
2020-02-14 08:06:19 -08:00
Kubernetes Prow Robot
4e8a7f4a4b
Merge pull request #87355 from mattjmcnaughton/mattjmcnaughton/remove-unnecessary-sudo-from-e2e
Clean up TODO around running test as sudo
2020-02-14 06:10:17 -08:00
Francesco Romani
bb770c0325 e2e: getCurrentKubeletConfig: move in subpkg
Address review comments and move the helper function
in the `framework/kubelet` package to avoid circular deps
(see https://github.com/kubernetes/kubernetes/issues/81245)

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-14 10:51:08 +01:00
Kubernetes Prow Robot
0e37bcedef
Merge pull request #88144 from gavinfish/crlf-lf
Change line terminators from CRLF to LF
2020-02-13 22:44:43 -08:00
Kubernetes Prow Robot
1e84adb6af
Merge pull request #88139 from BenTheElder/pause-manifest
switch pause to docker manifest instead of manifest-tool
2020-02-13 22:44:30 -08:00
Julian V. Modesto
932500c015 Remove deprecated rolling-update command 2020-02-13 23:52:53 -05:00
Kubernetes Prow Robot
4c08717513
Merge pull request #88143 from Huang-Wei/GetPodsInNamespace-bug
Fix a bug in e2epod function
2020-02-13 19:48:26 -08:00
Kubernetes Prow Robot
12eeb34a6d
Merge pull request #88140 from wongma7/websocket-header
Construct http Request using http.NewRequest
2020-02-13 19:48:17 -08:00
Deepthi Dharwar
3342e4a09a Extend CPUManager e2e tests to run on MultiNUMA node with/without HT 2020-02-14 07:59:13 +05:30
drfish
6e933199c9 Change line terminators from CRLF to LF 2020-02-14 09:55:45 +08:00
Kubernetes Prow Robot
e5524f5f1a
Merge pull request #88099 from cheftako/master
Fix gce-cos-master-reboot test
2020-02-13 16:55:33 -08:00
Kubernetes Prow Robot
b5af3b86ed
Merge pull request #87079 from gavinfish/drfish_typo_resetting
Fix typo from reseting to resetting
2020-02-13 16:54:32 -08:00
Kubernetes Prow Robot
176f74e370
Merge pull request #85909 from tnqn/failing-networkpolicy-test
Fix a failing test in NetworkPolicy e2e
2020-02-13 16:54:18 -08:00
Wei Huang
c83a860e9d
Fix a bug in e2epod function 2020-02-13 16:45:16 -08:00
Matthew Wong
ef8627c95e Construct http Request using http.NewRequest 2020-02-13 23:14:42 +00:00
Benjamin Elder
becc4b7d57 remove unused manifest-tool rules 2020-02-13 14:58:26 -08:00
Kubernetes Prow Robot
97dbf3a844
Merge pull request #88104 from sshukun/fix-impossible-condition
Fix impossible condition in test/e2e/framework/resource_usage_gatherer.go
2020-02-13 14:14:27 -08:00
Kubernetes Prow Robot
cf192e690b
Merge pull request #88096 from gavinfish/ginkgo-skip
Move skip method from e2e fw ginkgowrapper to e2e skipper fw
2020-02-13 14:14:16 -08:00
Kubernetes Prow Robot
35bb71d855
Merge pull request #88092 from yujuhong/rm-beta-labels
Replace Beta OS/arch labels with the GA ones
2020-02-13 14:14:02 -08:00
Kubernetes Prow Robot
98709f9821
Merge pull request #88067 from tanjunchen/remove-TODO-20200212-2
test/e2e/framework/util.go: make function LookForString private
2020-02-13 14:13:52 -08:00
Kubernetes Prow Robot
c98fc1f548
Merge pull request #88053 from liggitt/gc-timeout
Add buffer for GC resync retry to GC e2e tests
2020-02-13 14:13:40 -08:00
Kubernetes Prow Robot
b4db96464b
Merge pull request #88002 from alculquicondor/rm_affinity_weight_2
Remove HardPodAffinitySymmetricWeight from v1alpha2 Component Config
2020-02-13 14:13:25 -08:00
Kubernetes Prow Robot
a53b25ae92
Merge pull request #87923 from ingvagabund/move-direct-prometheus-metrics-under-component-base-metrics
Collect some of scheduling metrics and scheduling throughput (vol. 2)
2020-02-13 14:13:11 -08:00
Yu-Ju Hong
bcd975aa65 Replace Beta OS/arch labels with the GA ones
Beta OS/arch labels have been deprecated since 1.14.
This change replaces these labels with the GA ones.
2020-02-13 09:38:51 -08:00
tanjunchen
efec7e64ce remove TODO and use framework.SingleCallTimeout 2020-02-14 01:12:46 +08:00
Aldo Culquicondor
99bda6fac0 Remove HardPodAffinityWeight from v1alpha2
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-13 11:59:56 -05:00
Quan Tian
55b687054d Fix updated pod NetworkPolicy e2e test
The test "should allow ingress access from updated pod" fails regardless
of which CNI plugin is enabled. It's because the test assumes the client
Pod can recheck connectivity after updating its label, but the client
won't restart after the first failure, so the second check will always
fail. The PR creates a client Pod with OnFailure RestartPolicy to fix it.

In addition to the above test that checks rule selector takes effect on
updated client pod, the PR adds a test "should deny ingress access to
updated pod" to ensure network policy selector can take effect on updated
server pod.
2020-02-14 00:12:19 +08:00
Jan Chaloupka
7b5534021c Collect some of scheduling metrics and scheduling throughput
In addition to getting overall performance measurements from golang benchmark,
collect metrics that provides information about insides of the scheduler itself.
This is a first step towards improving what we collect about the scheduler.

Metrics in question:
- scheduler_scheduling_algorithm_predicate_evaluation_seconds
- scheduler_scheduling_algorithm_priority_evaluation_seconds
- scheduler_binding_duration_seconds
- scheduler_e2e_scheduling_duration_seconds

Scheduling throughput is computed on the fly inside perfScheduling.
2020-02-13 13:32:09 +01:00
tanjunchen
15bc88785a test/e2e/framework/util.go:make function LookForString private 2020-02-13 20:29:27 +08:00
Francesco Romani
08ba240c6b e2e: e2e_node: refactor getCurrentKubeletConfig
this patch moves the helper getCurrentKubeletConfig function,
used in both e2e and e2e_node tests and previously duplicated,
in the common framework.

There are no intended changes in behaviour.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2020-02-13 12:53:15 +01:00
Kubernetes Prow Robot
8ca96f3e07
Merge pull request #80724 from cceckman/provider-info-e2e
Provide OIDC discovery for service account token issuer
2020-02-13 01:38:35 -08:00
Maciej Borsz
c78c0e949d Remove unnecessary calls to GCE API after PD is created. 2020-02-13 09:57:25 +01:00
Jan Safranek
528adbefe4 Remove client cleanup from TestCleanup
All tests remove the test client pod, usually in TestVolumeClient.
Rename TestCleanup to TestServerCleanup.
In addition, remove few calls to Test(Server)Cleanup that do not do anything
useful (server pod is not used in these tests).
2020-02-13 09:55:53 +01:00
Shukun
7f9e228bd7 Fix impossible condition in test/e2e/framework/resource_usage_gatherer.go 2020-02-13 16:13:19 +09:00
Kubernetes Prow Robot
fb6f5d739b
Merge pull request #88070 from sshukun/remove-tautological-condition
Remove tautological condition in test/e2e/framework/pod/resource.go
2020-02-12 21:37:35 -08:00
Kubernetes Prow Robot
f0c14f291f
Merge pull request #87751 from skilxn-go/Rename
[Scheduler Framework] Rename `PostFilter` plugin to `PreScore`
2020-02-12 21:37:12 -08:00
Kubernetes Prow Robot
a11a8b8691
Merge pull request #87714 from julianvmodesto/use-kubectl-ss-dry-run-flag
Use --dry-run=server in kubectl commands
2020-02-12 21:36:57 -08:00
Kubernetes Prow Robot
1aa21639cf
Merge pull request #88064 from wongma7/webhook-header
Initialize http Request Header before RoundTrip to avoid panic
2020-02-12 19:54:35 -08:00
Kubernetes Prow Robot
4ab8c5393f
Merge pull request #88059 from msau42/refactor-e2e-node-selection
Refactor e2e node selection
2020-02-12 17:54:58 -08:00