Skip to content

Removes PQDNs from conformance tests and places them in their own tests#70156

Merged
k8s-ci-robot merged 3 commits intokubernetes:masterfrom
nagiesek:fix_pqdn_tests
Feb 5, 2019
Merged

Removes PQDNs from conformance tests and places them in their own tests#70156
k8s-ci-robot merged 3 commits intokubernetes:masterfrom
nagiesek:fix_pqdn_tests

Conversation

@nagiesek
Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind failing-test

What this PR does / why we need it:
Windows assumes any DNS query PQDN with a "." in it to be fully qualified. It's possible to fix this, but it is likely that doing so would break expectations of applications on Windows. After consulting with SIG-Network, we came to the conclusion that conformance tests shouldn't break this assumption nor be tied to the behavioral nuances of a DNS resolver of a specific OS. We propose to separate the current DNS conformance tests as follows:"

  • Keep existing test assertions that test PQDN DNS queries not containing ".".
  • Keep existing test assertions that perform FQDN DNS queries.
  • For any test assertions that use PQDN DNS queries containing ".":
    • Replace those test assertions in the conformance test with an equivalent FQDN DNS query.
    • Move those test assertions into a new (non-conformance) test.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer:
/sig testing
/area conformance

Does this PR introduce a user-facing change?:
NONE

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

@nagiesek: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

Details

Instructions 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.

@k8s-ci-robot k8s-ci-robot added kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. sig/testing Categorizes an issue or PR as relevant to SIG Testing. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. area/conformance Issues or PRs related to kubernetes conformance tests labels Oct 24, 2018
@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Oct 24, 2018
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA.

It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.


Details

Instructions 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. I understand the commands that are listed here.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Oct 24, 2018
@nagiesek
Copy link
Copy Markdown
Contributor Author

@dineshgovindasamy
Copy link
Copy Markdown

dineshgovindasamy commented Oct 24, 2018

/sig windows

@dineshgovindasamy
Copy link
Copy Markdown

@nagiesek can you please sign the CLA?

@dineshgovindasamy
Copy link
Copy Markdown

/ok-to-test

@k8s-ci-robot k8s-ci-robot added sig/windows Categorizes an issue or PR as relevant to SIG Windows. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Oct 24, 2018
@dineshgovindasamy
Copy link
Copy Markdown

/sig network

@k8s-ci-robot k8s-ci-robot added the sig/network Categorizes an issue or PR as relevant to SIG Network. label Oct 24, 2018
@nagiesek
Copy link
Copy Markdown
Contributor Author

Should be verified now?

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Oct 24, 2018
@dineshgovindasamy
Copy link
Copy Markdown

@thockin Based on SIG-NETWORK feedback, we have split these tests into conformance and non-conformance tests. Could you please review and provide feedback?

@spiffxp
Copy link
Copy Markdown
Contributor

spiffxp commented Oct 30, 2018

/retest

@thockin thockin self-assigned this Nov 1, 2018
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 4, 2018
@daschott
Copy link
Copy Markdown
Contributor

Even with this fix-up, the 2 DNS tests will not pass because they use the dig cmdlet, which isn't honoring DNS SearchList RegKeys in Windows containers. That being said, we still rely on this getting in (otherwise we would be forced to change the behavior of the DNS resolver itself on Windows).

In a nutshell, to pass the tests on Windows after getting this in, we further need to do one of either alternatives:

  1. If possible, fix up the implementation of the dig tool on Windows to not rely on Linux-specific files (/etc/hosts, see #70189)
  2. (Better) For Windows, decouple the test from the dig cmdlet that isn't an accurate representation of default Windows DNS behavior, and migrate to a tool representative of the user experience such as resolve-dnsname while still capturing the intended test requirement.

@thockin
Copy link
Copy Markdown
Member

thockin commented Nov 14, 2018

I'm really torn about this behavior. Almost every example in the world that deals with service resolution in Kubernetes is using shortened examples like kubernetes.default. Without that ability we almost certainly need to be able to plumb the cluster suffix through downward-API.

What is the expected breakage if we actually fixed this in the Windows side?

@daschott
Copy link
Copy Markdown
Contributor

@thockin The DNS resolver is a shared component that is used by applications running on Windows OS in general, so any changes need to be carefully examined. I talked to the Windows DNS team and we filed a work-item for the next Windows release to add a configuration parameter to make the behavior consistent with Linux. I'm not 100% confident this behavior may change by default for fear of possibly breaking networking for existing applications, but there should be some configuration we can set for containers at least.

In the meanwhile, can we make [SIG-Windows] tests that are outside of conformance and use Test-NetConnection or resolve-dnsname Windows cmdlets instead of changing the official conformance tests? The alternative is that we hack around with the dig binary to make it work correctly on Windows, which probably isn't as close of a representation as possible of the use-cases for the typical Windows application :)

@thockin
Copy link
Copy Markdown
Member

thockin commented Jan 4, 2019

I guess I can cope with this. We should probably add a downwardAPI for cluster suffix.

@thockin
Copy link
Copy Markdown
Member

thockin commented Jan 4, 2019

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added lgtm "Looks good to me", indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Jan 4, 2019
@PatrickLang
Copy link
Copy Markdown
Contributor

/milestone v1.14

@k8s-ci-robot k8s-ci-robot added this to the v1.14 milestone Jan 23, 2019
@claudiubelu
Copy link
Copy Markdown
Contributor

/test pull-kubernetes-e2e-gce
/test pull-kubernetes-e2e-kops-aws
/test pull-kubernetes-integration

@claudiubelu
Copy link
Copy Markdown
Contributor

/test pull-kubernetes-e2e-gce
/test pull-kubernetes-e2e-kops-aws

@claudiubelu
Copy link
Copy Markdown
Contributor

claudiubelu commented Jan 29, 2019

/test pull-kubernetes-e2e-kops-aws
/test pull-kubernetes-godeps

@claudiubelu
Copy link
Copy Markdown
Contributor

/test pull-kubernetes-godeps

@claudiubelu
Copy link
Copy Markdown
Contributor

/test pull-kubernetes-e2e-gce
/test pull-kubernetes-e2e-kops-aws

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

k8s-ci-robot commented Jan 30, 2019

@nagiesek: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
pull-kubernetes-e2e-kops-aws 1a7e07b link /test pull-kubernetes-e2e-kops-aws

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Details

Instructions 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. I understand the commands that are listed here.

namesToResolve := []string{
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kubernetes.default.svc.cluster is not supposed to be resolvable. That would mean that local would also be a DNS suffix, which is not. Also, as you can see, you've removed only kubernetes.default and kubernetes.default.svc from should provide DNS for the cluster while you're adding 3 here.

This is causing the test to fail.

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 1, 2019
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: nagiesek, thockin

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@dims
Copy link
Copy Markdown
Member

dims commented Feb 5, 2019

/release-note-none

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Feb 5, 2019
@dims
Copy link
Copy Markdown
Member

dims commented Feb 5, 2019

re-applying lgtm from @thockin

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 5, 2019
@k8s-ci-robot k8s-ci-robot merged commit ffec911 into kubernetes:master Feb 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/conformance Issues or PRs related to kubernetes conformance tests cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesn't merit a release note. sig/network Categorizes an issue or PR as relevant to SIG Network. sig/testing Categorizes an issue or PR as relevant to SIG Testing. sig/windows Categorizes an issue or PR as relevant to SIG Windows. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants