Adds [LinuxOnly] tag to conformance tests that cannot be run on Windows#73204
Conversation
|
Hi @BCLAU. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
If a test is known to be using Linux-specific features (e.g.: seLinuxOptions) or is unable to run on Windows nodes, it is labeled `[LinuxOnly]`. When using Windows nodes, this tag should be added to the `skip` argument. This tag was proposed during [1][2]. Depends-On: kubernetes/kubernetes#73204 [1] https://groups.google.com/forum/#!topic/kubernetes-sig-testing/ii5584-Tkqk [2] https://docs.google.com/document/d/1z8MQpr_jTwhmjLMUaqQyBk1EYG_Y_3D4y4YdMJ7V1Kk/edit#heading=h.ukbaidczvy3r
|
/ok-to-test |
test/e2e/common/networking.go
Outdated
There was a problem hiding this comment.
These tests are spawning pods with HostNetwork enabled, which is unsuported on Windows, so they won't be able to start on Windows. Additionally, we're adding Windows-equivalent tests, which just spawns the pods without the HostNetwork set[ 1]. They are currently passing.
[1] #71468
There was a problem hiding this comment.
@BCLAU let's add a note in the description. say This test is marked LinuxOnly since HostNetwork is not supported on other platforms like Windows?
There was a problem hiding this comment.
Please see #69525
I'm concerned about changes to networking tests without review of SIG Network. We can mark this LinuxOnly for now, but I wouldn't assume that running without host networking does what the test intended
There was a problem hiding this comment.
For the time being, that PR you've mentioned is shelved in favor of another PR: #71468
The PR I mentioned adds a commit [0] which adds the same networking tests in question but spawning the pods without HostNetworking and leaving the original tests' behaviour unchanged.
Ideally, we wouldn't have to have separate tests for the same thing, but until an agreement is reached, I think it should be acceptable.
And fwiw, those tests added in the mentioned PR are passing when using Windows Server 2019 with the 3 types of networking solutions I've tried recently: azure-vnet-cni, flannel l2bridge, flannel overlay.
[0] d0ff2f4
|
/test pull-kubernetes-e2e-kops-aws |
80db9e6 to
9e95a35
Compare
test/e2e/common/runtime.go
Outdated
There was a problem hiding this comment.
Why is this LinuxOnly? The image says alpine, but doesn't actually exist
There was a problem hiding this comment.
Same question for all the following test cases also
There was a problem hiding this comment.
Good point. this passes.
|
Thank you for documenting the reasons these don't run on Windows |
|
adding a hold. this PR looks good to me, but i would like to also see answers to some questions Brian raised |
|
/hold |
|
/hold cancel |
|
/assign @timothysc |
Some of the tests cannot pass using Windows nodes due to various reasons: - seLinuxOptions are not supported on Windows. - Running as an UID / GID is not supported on Windows. - file permissions work differently on Windows, and they cannot be set in the same manner as on Linux. - individual files cannot be mounted in Windows Containers. - Cannot create container using Linux image (e.g.: alpine) on Windows. Because of this, it has been decided to use the "[LinuxOnly]" tag for the tests which cannot run on Windows because of the mentioned reasons. This way, when running tests using Windows nodes, those tests can simply be skipped by adding the "[LinuxOnly]" tag to the ginkgo.skip argument.
test/e2e/common/empty_dir.go
Outdated
There was a problem hiding this comment.
As came up in the KEP, Windows doesn't support medium = Memory, either
test/e2e/common/empty_dir.go
Outdated
test/e2e/common/empty_dir.go
Outdated
test/e2e/common/empty_dir.go
Outdated
test/e2e/common/empty_dir.go
Outdated
test/e2e/common/empty_dir.go
Outdated
test/e2e/common/empty_dir.go
Outdated
test/e2e/common/security_context.go
Outdated
There was a problem hiding this comment.
Please write this comment in a similar form as the others: This test is marked LinuxOnly since...
test/e2e/common/security_context.go
Outdated
There was a problem hiding this comment.
and does not support privilege escalation
|
@BCLAU I made another pass over the comments. I have a better understanding now after reviewing the KEP. The updates should be pretty simple. I'll approve after they are made. Thanks for your work on this. It will others on the project who don't understand windows as well to avoid making incorrect changes to the tags and/or tests. |
76624ff to
5daa088
Compare
|
@BCLAU Thanks for the changes. In the future, please wait to squash commits until after lgtm, to make it possible for reviewers to distinguish the most recent changes from already-reviewed changes. |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bclau, bgrant0607, michmike The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Considering this PR got merged: kubernetes/kubernetes#73204 we can now skip tests that don't run on Linux by just using the LinuxOnly tag.
The test "should write entries to /etc/hosts" should have the [LinuxOnly] tag as it cannot pass on Windows; individual files cannot be mounted in Windows Containers. This test was missed in the original PR (kubernetes#73204)
What type of PR is this?
/kind failing-test
/kind feature
/sig testing
/sig windows
What this PR does / why we need it:
Some of the tests cannot pass using Windows nodes due to various reasons:
the same manner as on Linux.
Because of this, it has been decided [1][2] to use the "[LinuxOnly]" tag for the
tests which cannot run on Windows because of the mentioned reasons. This way,
when running tests using Windows nodes, those tests can simply be skipped by
adding the "[LinuxOnly]" tag to the ginkgo.skip argument.
[1] https://groups.google.com/forum/#!topic/kubernetes-sig-testing/ii5584-Tkqk
[2] https://docs.google.com/document/d/1z8MQpr_jTwhmjLMUaqQyBk1EYG_Y_3D4y4YdMJ7V1Kk/edit#heading=h.ukbaidczvy3r
Which issue(s) this PR fixes:
Fixes #69871
Special notes for your reviewer:
Does this PR introduce a user-facing change?: