Commit Graph

16378 Commits

Author SHA1 Message Date
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
Claudiu Belu
1a8183d262 tests: Adds configurable docker conf for test
The image "gcr.io/authenticated-image-pulling/windows-nanoserver:v1" is not a
manifest list, and it is only useful for Windows Server 1809, which means that the
test "should be able to pull from private registry with secret" will fail for
environments with Windows Server 1903, 1909, or any other future version we might
want to test.

This commit adds the the ability to have an alternative private image to pull by
using a configurable docker config file which contains the necessary credentials
needed to pull the image.
2020-02-22 22:21:28 -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